기반서버 장애 문제, 내 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
스크립트로 돌아가지 않습니다. I는 스크립트(또는 스크립트 분기)의 마지막 명령이어야 합니다.