Para desarrollar un servidor de juegos, quiero convertir git push
mi establo actual en un VPS privado. Dentro del git-hook receive
deberí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 receive
se 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/script
como <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.