chmod e chown não está funcionando no script chamado sudo

1

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?

    
por Ian 14.04.2013 / 04:21

1 resposta

7

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).

    
por 14.04.2013 / 04:31