Es ist durchaus üblich, dass ein Administrator sudoers bearbeitet -Datei und erlauben Benutzern, Verwaltungsbefehle auszuführen. Aber was ist, wenn Sie einen Fehler machen? Das sudo Der Befehl wird fehlschlagen, oder? Genau das habe ich bei der Installation von OpenStack auf einem Ubuntu-Rechner gemacht. Nun, hier ist, was ich gesehen habe, nachdem ich einen Fehler in den Sudoern gemacht hatte Datei.
#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
Der obige Fehler sagt uns deutlich, dass in Zeile 1, 2 und 3 ein Syntaxfehler vorliegt! Um dieses Chaos noch zu verstärken, habe ich mich nicht an das Root-Passwort erinnert. Wie beängstigend ist das? Natürlich ist es das, aber hier ist die Problemumgehung.
Fehler in der sudoers-Datei mit dem pkexec-Befehl beheben
Lösung :Das moderne Ubuntu-System und viele andere Linux-Distributionen haben es einfach gemacht, Fehler in Sudoern zu beheben Datei. Angenommen, Sie sind berechtigt, Programme als Root auszuführen, führen Sie den folgenden Befehl aus und geben Sie Ihr Passwort ein. Der Befehl pkexec zusammen mit visudo wird als root ausgeführt und erlaubt Ihnen, sudoers zu bearbeiten Datei.
openstack@openstack-devstack:~$ pkexec visudo -f /etc/sudoers
In meinem Fall /etc/sudoers.d/50_stack_sh Datei hatte den Syntaxfehler in Zeile 1, 2 und 3. Unten ist der Befehl zum Beheben des Fehlers.
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: