Es bastante común que un administrador edite sudoers archivo y permitir a los usuarios ejecutar comandos administrativos. Pero, ¿y si cometes un error? El sudo el comando va a fallar, ¿no? Eso es exactamente lo que hice al instalar OpenStack en una máquina con Ubuntu. Bueno, esto es lo que vi después de cometer un error en los sudoers archivo.
#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
¡El error anterior nos dice claramente que hay un error de sintaxis en las líneas 1, 2 y 3! Para agregar a este caos, no recordaba la contraseña de root. ¿Qué tan aterrador es eso? Por supuesto que lo es, pero aquí está el trabajo.
Corregir errores en el archivo sudoers usando el comando pkexec
Solución :El moderno sistema Ubuntu y muchas otras distribuciones de Linux han facilitado la corrección de errores en sudoers expediente. Suponiendo que está autorizado para ejecutar programas como root, ejecute el siguiente comando e ingrese su contraseña. El comando pkexec junto con visudo se ejecutará como root y le permitirá editar sudoers archivo.
openstack@openstack-devstack:~$ pkexec visudo -f /etc/sudoers
En mi caso, /etc/sudoers.d/50_stack_sh el archivo tenía el error de sintaxis en las líneas 1, 2 y 3. A continuación se muestra el comando para corregir el error.
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: