Primeiro, escreva um script que execute as etapas exatas de implantação necessárias. Então dê www-data
os direitos para rodar aquele script específico via sudo. Por exemplo, usando a seguinte regra de sudoers:
www-data ALL=(someuser) /path/to/deploy.sh
(Substitua "someuser" pela conta que realmente possui os arquivos da webapp.)
O manipulador do webhook seria então executado:
sudo -u someuser /path/to/deploy.sh
Dessa forma, seu servidor da Web pode executar atualizações exatamente como em script , mas ainda não tem acesso desnecessário para excluir arquivos ou instalar malware no site.