A linha chmod nunca é alcançada, pois você pode verificar facilmente inserindo touch /root/checkfile
diretamente acima. exec
não retorna ao script. Eu devo ser o último comando em um script (ou ramo do script).
Com base nesta pergunta de falha do servidor , meu usuário git tem permissão em sudoers para executar um script wrapper para mover arquivos para o meu webroot com git.
Tudo está funcionando bem, exceto pelas linhas chmod e chown. Depois que o script é executado, os arquivos ainda são root: root em vez de apache: apache.
#!/bin/sh
echo
echo "**** Pulling changes into Prime [Hub's post-update hook]"
echo
cd /usr/local/apache/htdocs || exit
unset GIT_DIR
git pull hub master
exec /usr/libexec/git-core/git-update-server-info
chmod -R 0644 /usr/local/apache/htdocs
chown -R apache:apache /usr/local/apache/htdocs
Como o script está sendo executado como root, por que os comandos chmod e chown não funcionariam?
Tags sudo chmod chown shell-script