chmodとchownはsudoとして呼び出されたスクリプトでは機能しません。

chmodとchownはsudoとして呼び出されたスクリプトでは機能しません。

ベースサーバー障害の問題、私の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はスクリプト(またはスクリプト分岐)の最後のコマンドでなければなりません。

おすすめ記事