Permitir a un usuario específico sudo un comando específico sin ingresar la contraseña

Permitir a un usuario específico sudo un comando específico sin ingresar la contraseña

Para desarrollar un servidor de juegos, quiero convertir git pushmi establo actual en un VPS privado. Dentro del git-hook receivedebería suceder lo siguiente

sudo systemctl stop myserver
dotnet publish --configuration release
sudo systemctl start myserver

Dentro de myserver.service, el binario compilado se ejecuta como el usuario que tiene acceso al repositorio git.

Mi idea ahora era reemplazar la primera y la última línea por scripts propiedad de root y legibles por todos para que el git-hook receivese convierta en

sudo stop-server.sh 
dotnet publish --configuration release
sudo start-server.sh

Como paso final, quiero permitir que los privilegios del usuario invoquen sudo ambos scripts pero nada más. Además, los scripts ejecutados sin que sudo soliciten la contraseña de los usuarios ya que no es posible la interacción.

Respuesta1

Puede agregar lo siguiente /etc/sudoers(o crear un nuevo archivo dentro /etc/sudoers.d/):

<username> ALL=(ALL) NOPASSWD: /path/to/script

Eso haría que ejecutar sudo /path/to/scriptcomo <username>usuario no tenga contraseña. Tenga en cuenta que no es seguro si un usuario malintencionado puede modificar el contenido del script y es mejor que intente evitar por completo la necesidad de privilegios de root.

información relacionada