¿Cómo configurar `sudo` sin contraseña en Linux?

157

¿Cómo se sudopuede configurar el acceso sin contraseña en las distribuciones RHEL (Fedora, CentOS, etc.) o Ubuntu? (Si es lo mismo en todas las distribuciones, ¡eso es aún mejor!)

Configuración: equipo personal y / o de laboratorio / capacitación sin preocupación por el acceso no autorizado (es decir, los dispositivos están en redes no públicas, y cualquiera / todos los usuarios son totalmente confiables, y el contenido de los dispositivos es "simple") .

madriguera
fuente
1
La respuesta de @Richipal es actullay el que funciona mejor con el menor esfuerzo: parece que las reglas de sudoers se aplican en orden inverso.
a1an
2
@ a1an las reglas se aplican en el mismo orden que se enumeran en el archivo sudoers y, a medida que se aplican, se anulan mutuamente. Por lo tanto, si no quiero que una regla cambie en absoluto, la pondría hacia el final del archivo para que se aplique al final y no se pueda anular.
rsjethani

Respuestas:

173

EDITAR gracias al comentario de medina: de acuerdo con la página del manual, debería poder escribir

ALL            ALL = (ALL) NOPASSWD: ALL

para permitir que todos los usuarios ejecuten todos los comandos sin contraseña.


Como referencia, estoy dejando mi respuesta anterior:

Si agrega una línea del formulario

%wheel         ALL = (ALL) NOPASSWD: ALL

a /etc/sudoers(utilizando el visudocomando, por supuesto), que permitirá a todos en el grupo wheelejecutar cualquier comando sin proporcionar una contraseña. Entonces, creo que la mejor solución es poner a todos sus usuarios en algún grupo y poner una línea como esa sudoers, obviamente, debe reemplazar wheelcon el grupo real que usa.

Alternativamente, puede definir un alias de usuario,

User_Alias     EVERYONE = user1, user2, user3, ...

y usa eso:

EVERYONE       ALL = (ALL) NOPASSWD: ALL

aunque tendría que actualizar /etc/sudoerscada vez que agrega o elimina un usuario.

David Z
fuente
2
¿No ALLfunciona en lugar de *especificar a todos los usuarios? Ver el ejemplo en sudoers(5).
medina
1
@medina: así es, lo extrañé cuando estaba leyendo la página del manual. Lo editaré
David Z
66
bajo Ubuntu, creando un archivo bajo /etc/sudoers.d y colocando estas entradas en él, entonces evitará que tengas que editar sudoers
Xetius
1
En CentOS7, esta entrada está allí por defecto, solo comentada.
killjoy
1
Solo logró usarlo en centOS copiando / pegando, falló cada intento de escribir directamente la configuración. Pero el resultado parece idéntico a excepción de los espacios ...
MUY Bélgica
97

Probé las soluciones anteriores en vano. La siguiente solución funcionó para mí Edite el archivo / etc / sudoers y agregue la siguiente línea

username ALL=(ALL) NOPASSWD: ALL

La clave es agregarlo después de la última línea que dice

#includedir /etc/sudoers.d
Richipal
fuente
1
//, esta parece ser la mejor manera de hacerlo, especialmente cuando ciertas aplicaciones agregarán sus propias reglas para los usuarios del sistema, Richipal. Más información sobre sudoers.d: sudo.ws/man/1.8.13/sudoers.man.html
Nathan Basanese
1
//, ¿Estarías dispuesto a agregar algunos de los diagnósticos de Gearoid Murphy a tu respuesta?
Nathan Basanese
1
Gracias por esta aclaración. Agregarlo después de la línea #includedir /etc/sudoers.d parece importante en CentOS 7, mientras que parece funcionar bien tener la línea anterior en el archivo en CentOS 6.
dmohr
3
El problema de ignorar el NOPASSWD de% wheel parece surgir al /etc/sudoers.d/USERNAMEanular el permiso NOPASSWD del grupo. Aplicando NOPASSWD en /etc/sudoers.d/USERNAMEresuelve el problema.
eel ghEEz
1
Big ups a este, después de la inclusión es importante
Theodore Howell
27

Intenté todas las respuestas en esta página, sin resultados útiles. Finalmente lo descubrí, use este comando para enumerar sus derechos de sudo:

sudo -l

Esto debería darte una salida como esta:

User gmurphy may run the following commands on this host:
    (root) NOPASSWD: ALL
    (ALL) ALL

Muestra que estoy configurado con privilegios de root, pero que todavía soy parte de un grupo (administrador) que coincide con una regla de sudo que espera la contraseña ("(ALL) ALL"). Esto estaba obligando a sudo a preguntarme. La regla en cuestión era los usuarios administradores:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Una vez que comenté esto, pude sudo sin contraseña. Espero que esto sea de utilidad para alguien más.

Gearoid Murphy
fuente
1
Ahhh, gracias! Esto me estaba volviendo loco ... en mi caso, mi usuario era parte del grupo "sudo", así como "admin" (que creé), y los permisos de cada uno no coincidían, como en su caso . ¡Ahora esto funciona! :)
neezer
14
Comentar una línea es un instrumento contundente. Puede que le interese escuchar que "sudo lee el archivo sudoers y aplica los permisos en orden de arriba a abajo. Entonces, la última línea del archivo sobrescribirá cualquier conflicto anterior", según ubuntuforums.org/showthread.php?t=1132821 - - Y esto funcionó para mí.
David J.
10

Dentro /etc/sudoershay un ejemplo de eso justo al final del archivo:

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
Ignacio Vazquez-Abrams
fuente
2
esa muestra no estaba en la mía, ¡pero gracias!
Warren
1
Como su respuesta sucinta
Sr. Pei
6

Hay otra forma de hacerlo sin tocar el archivo sudoers.

  • Edite /etc/pam.d/suy descomente la línea a continuación:

    auth           sufficient      pam_wheel.so trust use_uid
    
  • Agregue el usuario al wheelgrupo.

mandamás
fuente
2

Hay otra forma de hacerlo sin tocar el archivo sudoers.

  • Edite /etc/pam.d/sudoy agregue la siguiente línea:

    auth suficiente pam_wheel.so confíe use_uid
  • Agregue el usuario al wheelgrupo.

Apoya a "topdog" y "Daniel Serodio" para la respuesta original con respecto a "su" en lugar de "sudo". Lo usé como referencia y copié descaradamente y modifiqué su publicación.

noabody
fuente
1
Creo que en lugar de copiar al pie de la letra, sería mejor acreditarlos, pero tenga claro cómo difieren exactamente sus respuestas. ¿Supongo que esto permite sin contraseña su, en lugar de / así como sin contraseña sudo? La adición de Daniel es solo formateo, por cierto.
mwfearnley