ベースサーバー障害の問題、私のgitユーザーはsudoersでラッパースクリプトを実行し、gitを使用してファイルを自分のWebルートに移動する権限を持っています。
chmodとchownの行を除いて、すべてがうまくいきます。スクリプトが実行された後でも、ファイルはまだapache:apacheの代わりにroot:rootです。
#!/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
スクリプトがrootとして実行されているのにchmodコマンドとchownコマンドが機能しないのはなぜですか?
ベストアンサー1
touch /root/checkfile
すぐ上に挿入して簡単に確認できるので、chmod行には達しません。exec
スクリプトに戻りません。 Iはスクリプト(またはスクリプト分岐)の最後のコマンドでなければなりません。