He escrito muchos artículos sobre sudoers en el pasado, como las mejores prácticas, y resolví muchos errores relacionados con los archivos sudoers. Esta vez, uno de mis lectores me pidió que verificara su archivo sudoers. A continuación se muestra el archivo sudoers de los usuarios. Este artículo explica cómo verificar la sintaxis de sudoers.
# # 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/sbin:/usr/bin:/sbin:/bin:/snap/bin” # 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
Aunque fui línea por línea y verifiqué todas las líneas, no pude encontrar el problema. Es posible que algunos de los errores no sean visibles para el ojo humano, como la eliminación de un carácter y no cerrar las llaves correctamente, etc. Entonces, la pregunta es ¿cómo se verifica la sintaxis de un archivo sudoers?
La mejor práctica para editar el archivo sudoers directamente es usar visudo
ya que tiene una bandera que realizará una verificación de sintaxis en el archivo sudoers. Puede ejecutar el siguiente comando después de realizar los cambios para verificar que la sintaxis sea correcta.
Hasta que confirme que su archivo sudoers es correcto, NO abandone su sesión ROOT. Inicie sesión en el mismo servidor por separado y pruebe los comandos de Sudo para verificar.
# visudo -c /etc/sudoers: parsed OK
Otra característica impresionante de visudo
es que puede decirle que verifique un archivo específico en lugar de solo el /etc/sudoers
expediente. Esto ayuda a verificar la sintaxis del archivo en cualquier servidor antes de implementarlo en el servidor de producción.
# visudo -cf /tmp/sudoers /tmp/sudoers: parsed OK