Para desenvolver um servidor de jogos, quero que git push
meu atual estável seja um VPS privado. Dentro do git-hook receive
deve acontecer o seguinte
sudo systemctl stop myserver
dotnet publish --configuration release
sudo systemctl start myserver
Dentro do myserver.service o binário compilado é executado como o usuário que tem acesso ao repositório git.
Minha ideia agora era substituir a primeira e a última linha por scripts de propriedade do root e legíveis por todos para que o git-hook receive
se transformasse em
sudo stop-server.sh
dotnet publish --configuration release
sudo start-server.sh
Como etapa final, quero permitir que os privilégios do usuário sudo invoquem os dois scripts, mas nada mais. Além disso, os scripts executados sem sudo solicitam a senha do usuário, pois não há interação possível.
Você pode anexar o seguinte a
/etc/sudoers
(ou criar um novo arquivo dentro de/etc/sudoers.d/
):Isso tornaria a execução
sudo /path/to/script
do<username>
usuário sem senha. Observe que é inseguro se o conteúdo do script puder ser modificado por um usuário mal-intencionado, e é melhor tentar evitar a necessidade de privilégios de root.