Necesito sudo sin contraseña, para scripts. ¿Qué hice mal?


9

Estoy en el grupo sudo, de acuerdo:

$ id
uid=1002(molot) gid=1002(molot) groups=1002(molot),27(sudo),33(www-data)

En mis sudores parece que tengo la configuración adecuada:

sudo    ALL=(ALL:ALL) NOPASSWD: ALL

y es la última línea no comentada allí.

Pero cuando lo intento git pull, me pide que vuelva a escribir mi contraseña:

$ sudo -u www-data git --git-dir /var/www/.git --work-tree /var/www pull "origin" master
[sudo] password for molot:

No es un problema cuando estoy conectado a la consola, pero es inaceptable en los scripts. Entonces, ¿cómo puedo permitir que cualquier persona en el grupo sudo git pull como www-data sin volver a escribir la contraseña?

Cuando pongo mi nombre directamente:

molot ALL=(ALL) NOPASSWD: ALL

esto funciona para mi. Pero, obviamente, no para usuarios marianos u otros del grupo sudo. Hasta donde entendí el manual , tanto los nombres de usuario como los de grupo deberían funcionar en el primer archivo.


¿Puede usted no sudo -u www-data ./your_script.sh? ¿Cuál es el propósito del guión?
— jimbobmcgee

@jimbobmcgee es un gancho git, así que no, no puedo anteponerle nada. Es llamado por el usuario que presionó los cambios de git y no encontré ninguna forma real de evitarlo.
— Mołot

El primer campo (si mi comprensión rápida del sudoersformato de archivo es correcta) es el nombre de usuario del usuario que invoca. ¿Has intentado reemplazarlo con el comodín *o con el usuario con el que se ejecuta el git hook?
— un CVn

@ MichaelKjörling como se indica aquí , debería ser posible escribir tanto usuarios como grupos en el primer campo. *No funciona. Poner mi nombre directamente funciona para mí ... pero no para otros usuarios en sudo group, obviamente.
— Mołot

@ MichaelKjörling gracias, su comentario me hizo buscar caracteres especiales y me permitió encontrar una respuesta: D Editar: eliminó la respuesta propia y aceptó la respuesta de terceros desde el mismo momento.
— Mołot

Respuestas:


19

Parece que tienes la línea relevante en tus sudoers que falta un personaje:

sudo ALL = (ALL: ALL) NOPASSWD: ALL

coincide con un usuario llamado 'sudo'. Para 'todos los usuarios en el grupo sudo' debería ser:

% sudo ALL = (ALL: ALL) NOPASSWD: ALL

(tenga en cuenta el signo% al principio).


1
Ah, para que de lo que el %en %wheelsignificaba.
— nikhil

1

sudo visudo

Luego, suponiendo que molotsea ​​su nombre de usuario, vaya al final del archivo y:

molot ALL=(ALL) NOPASSWD: ALL

Esto debería funcionar, pero si no funciona, mantennos informados.


Esto funciona. Para mi. Pero, obviamente, no para marian o cualquier otro usuario en el grupo sudo.
— Mołot

Luego cree alias de usuario ( User_Alias) y otorgue permiso para ejecutar comandos específicos como root ( Runas_Alias). No sé cómo está configurado su grupo, puede consultar el wiki de Sudoers help.ubuntu.com/community/Sudoers Es realmente conciso. Consulte la sección "Especificaciones del usuario", esto debería ayudar.
— Jugurtha Hadjar
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.