Je docela běžné, že administrátor upravuje sudoery soubor a umožnit uživatelům spouštět administrativní příkazy. Ale co když uděláte chybu? sudo příkaz selže, že? Přesně to jsem udělal při instalaci OpenStack na stroj Ubuntu. No, tady je to, co jsem viděl poté, co jsem udělal chybu v sudoers soubor.
#openstack@devstack:~$ sudo -s >>> /etc/sudoers.d/50_stack_sh: syntax error near line 1 <<< >>> /etc/sudoers.d/50_stack_sh: syntax error near line 2 <<< >>> /etc/sudoers.d/50_stack_sh: syntax error near line 3 <<< sudo: parse error in /etc/sudoers.d/50_stack_sh near line 2 sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin
Výše uvedená chyba nám jasně říká, že na řádku 1, 2 a 3 je chyba syntaxe! Aby toho chaosu nebylo málo, nepamatoval jsem si heslo uživatele root. Jak děsivé to je? Samozřejmě, že je, ale tady je řešení.
Opravte chyby v souboru sudoers pomocí příkazu pkexec
Řešení :Moderní systém Ubuntu a mnoho dalších distribucí Linuxu usnadnily opravu chyb v sudoers soubor. Za předpokladu, že máte oprávnění spouštět programy jako root, spusťte níže uvedený příkaz a zadejte své heslo. Příkaz pkexec spolu s vizuem bude spuštěn jako root a umožní vám upravovat sudoers soubor.
openstack@openstack-devstack:~$ pkexec visudo -f /etc/sudoers
V mém případě /etc/sudoers.d/50_stack_sh soubor měl na řádku 1, 2 a 3 chybu syntaxe. Níže je uveden příkaz k opravě chyby.
openstack@openstack-devstack:~$ pkexec visudo -f /etc/sudoers.d/50_stack_sh ==== AUTHENTICATING FOR org.freedesktop.policykit.exec === Authentication is needed to run `/usr/sbin/visudo' as the super user Authenticating as: openstack,,, (openstack) Password: