Tento článek vysvětluje, jak „opravit“ sudo, které nefunguje na Linuxu, což vede k této zprávě při pokusu o jeho použití:„Vaše uživatelské jméno není v souboru sudoers. Tento incident je hlášen." na Debianu (a distribucích Linuxu založených na Debianu, jako je Ubuntu). sudo umožňuje správcům systému spouštět příkazy jako root (administrátor) nebo jiný uživatel.
Příklad z čerstvé instalace Debian 10 (10.1) Buster s nefunkčním sudo:
$ sudo apt update
[sudo] password for logix:
logix is not in the sudoers file. This incident will be reported.
sudo nefunguje ve výchozím nastavení na čerstvé instalaci Debianu, protože vaše uživatelské jméno není automaticky přidáno do skupiny sudo (v Ubuntu funguje ve výchozím nastavení). Můžete to však také vidět, pokud jste vytvořili nového uživatele, ale zapomněli jste ho přidat do skupiny sudo, nebo pokud jiný uživatel ve vašem systému odstranil uživatelské jméno ze skupiny sudo.
Zda aktuálně přihlášený uživatel patří do skupiny sudo, můžete zkontrolovat pomocí groups
Příkaz. Pokud groups
Příkaz nevrací sudo
V distribucích Linuxu založených na Debianu nemůže toto uživatelské jméno spouštět příkazy sudo
. Příklad s výstupem od uživatele Debianu, který není ve skupině sudo:
$ groups
logix cdrom floppy audio dip video pugdev netdev scanner lpadmin
Mohlo by se vám líbit toto:Jak nainstalovat nejnovější Firefox (bez ESR) na Debian 10 Buster (stabilní) nebo Bullseye (testování)
Řešením je přidat tohoto uživatele do skupiny sudo. Ale jak v tomto případě získáte root, protože jako normální uživatel nemůžete měnit ani přidávat uživatele? Použijte su -
(nebo sudo su -
) a poté přidejte uživatele do skupiny sudo.
Takže abyste získali root, přidejte svého uživatele do sudo
Skupina, použijte:
su -
usermod -aG sudo YOUR_USERNAME
exit
Kde:
-
su
změní na uživatele root při-
spustí přihlašovací shell, takže věci jako/etc/profile
,.bashrc
, a tak dále (takto se provádějí příkazy jakousermod
bude ve vašem$PATH
takže nemusíte zadávat úplnou cestu ke spustitelnému souboru). Můžete také použítsudo su -
Místosu -
- Musíte nahradit
YOUR_USERNAME
s uživatelským jménem, které chcete přidat do skupiny sudo. - Použil jsem
usermode
přidat skupinu ke stávajícímu uživateli, protože by to mělo fungovat v jakékoli distribuci Linuxu.adduser
nebouseradd
lze také použít pro (adduser USERNAME -G sudo
), ale nemusí fungovat ve všech distribucích Linuxu. Ačkoli je tento článek pro Debian, chtěl jsem to umožnit i v jiných distribucích Linuxu (všiml jsem si, žeadduser
nefunguje například na OS Solus). -
exit
existuje root shell, takže můžete znovu spouštět příkazy jako normální uživatel.
Poté sudo stále nefunguje! Musíte se odhlásit od tohoto uživatele a poté se znovu přihlásit a sudo bude fungovat.
To opravuje „Uživatelské jméno není v souboru sudoers. Tento incident je hlášen“ na vašem počítači Debian, ale v některých případech můžete narazit na jiný problém – sudo není ve výchozím nastavení vůbec nainstalováno. To je případ například minimální instalace Debianu. V tomto případě se při pokusu o spuštění příkazu pomocí sudo zobrazí podobná chyba:
$ sudo apt update
bash: sudo: command not found
V tomto případě nainstalujte sudo
na Debianu takto:
su - #or 'sudo su -'
apt install sudo
exit
Některé další články o Debianu, které by se vám mohly líbit:
- Jak downgradovat balíčky na konkrétní verzi pomocí apt v Debianu, Ubuntu nebo Linux Mintu
- Jak zobrazit historii nainstalovaných, aktualizovaných nebo odebraných balíčků v Debianu, Ubuntu nebo Linux Mintu [dpkg]
- Jak vypsat všechny balíčky v úložišti na Ubuntu, Debian nebo Linux Mint [APT]
- Jak najít balíček, který poskytuje soubor (nainstalovaný nebo ne) na Ubuntu, Debian nebo Linux Mint