chmod 및 chown이 스크립트라는 sudo에서 작동하지 않습니다.

chmod 및 chown이 스크립트라는 sudo에서 작동하지 않습니다.

이를 바탕으로서버 결함 질문, 내 git 사용자는 sudoers에서 래퍼 스크립트를 실행하여 git을 사용하여 파일을 내 웹 루트로 이동할 수 있는 권한을 가지고 있습니다.

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

스크립트가 루트로 실행 중인데 chmod 및 chown 명령이 작동하지 않는 이유는 무엇입니까?

답변1

touch /root/checkfile바로 위에 삽입하여 쉽게 확인할 수 있으므로 chmod 행에 도달하지 않습니다 . exec스크립트로 돌아오지 않습니다. 나는 스크립트(또는 스크립트의 분기)에서 마지막 명령이어야 합니다.

관련 정보