Oprava „Uživatelské jméno není v souboru Sudoers. Tento incident bude nahlášen
V systémech Unix/Linux je uživatelský účet root superuživatelským účtem a lze jej tedy použít k provádění čehokoli a všeho, co je v systému dosažitelné.
To však může být v mnoha ohledech velmi nebezpečné – jedním by mohlo být, že uživatel root mohl zadat nesprávný příkaz a narušit celý systém nebo by útočník mohl získat přístup k účtu uživatele root a převzít kontrolu. celého systému a kdo ví, co umí.
Na základě tohoto pozadí je v Ubuntu a derivátech Ubuntu uživatelský účet root ve výchozím nastavení uzamčen, běžní uživatelé (správci systému nebo ne) mohou získat oprávnění superuživatele pouze pomocí příkaz sudo.
A jedna z nejhorších věcí, která se může stát správci systému Ubuntu, je ztráta oprávnění používat příkaz sudo, což je situace běžně označovaná jako „rozbité sudo“. To může být naprosto zničující.
Nefunkční sudo může být způsobeno některou z následujících příčin:
- Uživatel by neměl být odebrán ze skupiny sudo nebo admin.
- Soubor /etc/sudoers byl změněn, aby uživatelé ve skupině sudo nebo admin nemohli povýšit svá oprávnění na oprávnění root< pomocí příkazu sudo.
- Oprávnění k souboru /etc/sudoers není nastaveno na 0440.
Abyste mohli na svém systému provádět zásadní úkoly, jako je prohlížení nebo změna důležitých systémových souborů nebo aktualizace systému, potřebujete příkaz sudo k získání oprávnění superuživatele. Co když vám bude odepřeno použití sudo z jednoho nebo více důvodů, které jsme uvedli výše.
Níže je obrázek znázorňující případ, kdy je uživateli výchozího systému zabráněno spustit příkaz sudo:
tecmint@TecMint ~ $ sudo visudo
[ sudo ] password for aaronkilik:
aaronkilik is not in the sudoers file. This incident will be reported.
tecmint@TecMint ~ $ sudo apt install vim
[ sudo ] password for aaronkilik:
aaronkilik is not in the sudoers file. This incident will be reported.
Jak opravit Broken sudo Command v Ubuntu
Pokud na svém počítači používáte pouze Ubuntu, po jeho zapnutí stiskněte na několik sekund klávesu Shift
, čímž spustíte Grub Jídelní lístek. Na druhou stranu, pokud používáte dual-boot (Ubuntu vedle Windows nebo Mac OS X), měli byste ve výchozím nastavení vidět spouštěcí nabídku Grub.
Pomocí šipky dolů
vyberte „Pokročilé možnosti pro Ubuntu“ a stiskněte Enter.
Budete v rozhraní níže, vyberte jádro s možností „recovery mode “, jak je uvedeno níže, a stisknutím Enter přejděte do „nabídky Recovery > “.
Níže je „Nabídka obnovení“, která označuje, že kořenový souborový systém je připojen jako pouze pro čtení. Přejděte na řádek „root Drop to root shell prompt“ a stiskněte Enter.
Poté stiskněte Enter pro údržbu:
V tomto okamžiku byste měli být u příkazového řádku kořenového shellu. Jak jsme viděli dříve, souborový systém je připojen jako pouze pro čtení, a proto, abychom mohli provést změny v systému, který musíme znovu připojit, je jako čtení/zápis spuštěním příkazu níže:
mount -o rw,remount /
Řešení případu #1 – Přidejte uživatele do skupiny sudo nebo admin
Za předpokladu, že byl uživatel odebrán ze skupiny sudo, pro přidání uživatele zpět do skupiny sudo zadejte příkaz níže:
adduser username sudo
Poznámka: Nezapomeňte použít skutečné uživatelské jméno v systému, v mém případě je to aaronkilik.
Nebo pod podmínkou, že uživatel byl odebrán ze skupiny administrátorů, spusťte následující příkaz:
adduser username admin
Řešení případu č. 2 – Udělení práv sudo uživatelům
Za předpokladu, že soubor /etc/sudoers
byl změněn, aby zabránil uživatelům ve skupině sudo nebo admin povýšit svá oprávnění na super uživatel, poté proveďte zálohu souborů sudoers následovně:
cp /etc/sudoers /etc/sudoers.orginal
Následně otevřete soubor sudoers.
visudo
a přidejte obsah níže:
#
This file MUST be edited with the 'visudo' command as root.
#
Please consider adding local content in /etc/sudoers.d/ instead of
directly modifying this file.
#
See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbi$
Host alias specification
User alias specification
Cmnd alias specification
User privilege specification
root ALL=(ALL:ALL) ALL
Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
Řešení případu č. 3 – Nastavení správného oprávnění pro soubor sudoers
Předpokládejme, že oprávnění k souboru /etc/sudoers není nastaveno na 0440, pak spusťte následující příkaz, abyste to napravili:
chmod 0440 /etc/sudoers
V neposlední řadě po spuštění všech potřebných příkazů zadejte příkaz exit
a vraťte se do „nabídky obnovení “:
exit
Pomocí šipky doprava
vyberte
a stiskněte Enter:
Stisknutím
pokračujte v normální zaváděcí sekvenci:
souhrn
Tato metoda by měla fungovat dobře, zejména pokud se jedná o administrativní uživatelský účet, kde není jiná možnost než použít režim obnovení.
Pokud však pro vás selže, zkuste se k nám vrátit tím, že vyjádříte své zkušenosti prostřednictvím sekce zpětné vazby níže. Můžete také nabídnout jakékoli návrhy nebo jiné možné způsoby, jak vyřešit daný problém nebo tuto příručku celkově vylepšit.