archivo Sudoers, habilite NOPASSWD para el usuario, todos los comandos

104

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 utilizo exclusivamente con fines de aprendizaje. Entiendo que es un enorme riesgo para la seguridad habilitar sudo NOPASSWD.

Pregunta

Inicialmente, mi único cambio en el archivo sudoers (/ etc / sudoers) fue una línea, una especificación del 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 aún me solicitaron 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' heredaba los derechos de sudo de las dos especificaciones grupales de 'admin' y 'sudo' (vistas a continuación en el archivo sudoers), que anulaban la especificación del usuario 'nicholsonjf' porque estaban más allá abajo en el archivo de configuración?

    

pregunta James Nicholson 19.08.2013 - 02:45

3 respuestas

101

Su línea agregada fue anulada. De man sudoers :

  

Cuando coinciden varias entradas para un usuario, se aplican en orden.   Donde hay múltiples coincidencias, se usa la última coincidencia (que no es   necesariamente la combinación más específica).

En tu caso, nicholsonjf era un miembro del grupo sudo , así que para él esta línea se aplicó:

%sudo   ALL=(ALL:ALL) ALL

Si desea anular las entradas en /etc/sudoers simplemente coloque las nuevas entradas después de ellas.

La nueva entrada debería verse como

myuser ALL=(ALL) NOPASSWD:ALL para un solo usuario, o

%sudo ALL=(ALL) NOPASSWD:ALL para un grupo.

    
respondido por el pabouk 03.09.2013 - 02:55
109

Para un usuario único:

superuser ALL=(ALL) NOPASSWD:ALL

Para un grupo:

%supergroup  ALL=(ALL) NOPASSWD:ALL
    
respondido por el Fedir RYKHTIK 16.01.2015 - 16:28
-1

Como Vince tiene mencionado en un comentario , puede usar esta línea:

%sudo ALL=NOPASSWD: ALL

(Esto es diferente de las líneas que se muestran en aquellos responde , y me solucionó el problema.)

    
respondido por el E. Fortes 04.10.2017 - 11:53

Lea otras preguntas en las etiquetas