chmod und chown funktionieren nicht im sudo-aufgerufenen Skript

chmod und chown funktionieren nicht im sudo-aufgerufenen Skript

Basierend aufServerfehler-Frage, mein Git-Benutzer hat in Sudoers die Berechtigung, ein Wrapper-Skript auszuführen, um Dateien mit Git in mein Webroot zu verschieben.

Bis auf die Zeilen chmod und chown funktioniert alles einwandfrei. Nach der Ausführung des Skripts sind die Dateien immer noch root:root statt 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

Da das Skript als Root ausgeführt wird, warum sollten die Befehle chmod und chown nicht funktionieren?

Antwort1

Die chmod-Zeile wird nie erreicht, wie Sie leicht überprüfen können, indem Sie touch /root/checkfiledirekt darüber einfügen. execkehrt nicht in das Skript zurück. Ich muss der letzte Befehl in einem Skript (oder einem Skriptzweig) sein.

verwandte Informationen