
Basado en estoPregunta de error del servidor, mi usuario de git tiene permiso en sudoers para ejecutar un script contenedor para mover archivos a mi webroot con git.
Todo funciona bien excepto las líneas chmod y chown. Una vez ejecutado el script, los archivos siguen siendo root:root en lugar 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
Dado que el script se ejecuta como root, ¿por qué no funcionan los comandos chmod y chown?
Respuesta1
Nunca se llega a la línea chmod, como puede verificar fácilmente insertando touch /root/checkfile
directamente arriba. exec
no vuelve al guión. Debo ser el último comando en un script (o rama del script).