chmod 和 chown 在 sudo 呼叫的腳本中不起作用

chmod 和 chown 在 sudo 呼叫的腳本中不起作用

基於此伺服器故障問題,我的 git 用戶有權在 sudoers 中執行包裝器腳本,以使用 git 將檔案移至我的 webroot 中。

除了 chmod 和 chown 行之外,一切都正常。腳本運行後,檔案仍然是 root:root 而不是 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

由於腳本以 root 身份運行,為什麼 chmod 和 chown 命令不起作用?

答案1

chmod 行永遠不會到達,因為您可以touch /root/checkfile直接在上面插入來輕鬆檢查。exec不返回到腳本中。 I 必須是腳本(或腳本分支)中的最後一個指令。

相關內容