Il est assez courant pour un administrateur de modifier les sudoers fichier et permettre aux utilisateurs d'exécuter des commandes d'administration. Mais que se passe-t-il si vous faites une erreur ? Le sudo la commande va échouer n'est-ce pas? C'est exactement ce que j'ai fait lors de l'installation d'OpenStack sur une machine Ubuntu. Eh bien, voici ce que j'ai vu après avoir fait une erreur dans les sudoers fichier.
#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
L'erreur ci-dessus nous indique clairement qu'il y a une erreur de syntaxe sur les lignes 1, 2 et 3 ! Pour ajouter à ce chaos, je ne me souviens pas du mot de passe root. À quel point est-ce effrayant ? Bien sûr que oui, mais voici la solution.
Corriger les erreurs dans le fichier sudoers à l'aide de la commande pkexec
Solution :Le système Ubuntu moderne et de nombreuses autres distributions Linux ont facilité la correction des erreurs dans les sudoers dossier. En supposant que vous êtes autorisé à exécuter des programmes en tant que root, exécutez la commande ci-dessous et entrez votre mot de passe. La commande pkexec avec visudo sera exécuté en tant que root et vous permettra de modifier les sudoers fichier.
openstack@openstack-devstack:~$ pkexec visudo -f /etc/sudoers
Dans mon cas, /etc/sudoers.d/50_stack_sh Le fichier comportait une erreur de syntaxe aux lignes 1, 2 et 3. Vous trouverez ci-dessous la commande permettant de corriger l'erreur.
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: