Prefacio
Esta es una pregunta bastante compleja relacionada con el archivo Sudoers y el comando sudo en general.
NOTA: He realizado estos cambios en una máquina dedicada que ejecuta Ubuntu Desktop 13.04, que uso exclusivamente con fines de aprendizaje. Entiendo que es un gran riesgo de seguridad habilitar el sudo NOPASSWD.
Pregunta
Inicialmente, mi único cambio en el archivo sudoers (/ etc / sudoers) fue una línea, una especificación de usuario que debería haber habilitado 'nicholsonjf' para ejecutar todos los comandos con sudo sin tener que ingresar una contraseña (consulte la línea que comienza con 'nicholsonjf '):
# 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"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
nicholsonjf ALL=NOPASSWD: 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
Sin embargo, esto no funcionó, y todavía se me solicitó mi contraseña cada vez que ejecuté un comando como 'nicholsonjf'. Solo pude comenzar a ejecutar comandos sudo como 'nicholsonjf' una vez que eliminé 'nicholsonjf' de los grupos sudo y admin.
¿Alguien puede explicar por qué funcionó?
¿Es porque el usuario 'nicholsonjf' estaba heredando los derechos de sudo de las dos especificaciones de grupo de 'admin' y 'sudo' (vistos a continuación en el archivo sudoers), que anulaban la especificación de usuario 'nicholsonjf' porque estaban más abajo en el ¿archivo de configuración?