서버에 웹사이트를 배포하는 스크립트를 실행하고 있습니다. 그것은 나에게 다음과 같은 오류를 제공합니다 :
DEBUG [4223cc8a] Command: /usr/bin/env chmod +x /tmp/mysite_staging/git-ssh.sh
DEBUG [4223cc8a] changing permissions of `/tmp/mysite_staging/git-ssh.sh'
DEBUG [4223cc8a] : Operation not permitted
배포 사용자가 파일에 대한 권한을 변경할 수 없다고 불평합니다. 해당 사용자가 배포 그룹에 속해 있으므로 배포 사용자가 파일을 읽고, 쓰고, 실행할 수 있도록 설정했습니다.
$ ls -l
total 4
-rwxrwx--x. 1 root deploy 93 Aug 5 09:22 git-ssh.sh
그렇다면 배포 사용자가 이 파일의 권한을 변경하도록 하려면 어떻게 해야 할까요? 이것은 CentOS에 있습니다. 내 임시 해결책은 배포 사용자를 파일의 소유자로 만드는 것이었습니다.
답변1
파일 소유자 또는 루트 사용자만 파일 권한을 변경할 수 있습니다. 파일이 사용자에게 속하도록 파일의 소유권을 변경 deploy
하거나 루트로 스크립트를 실행해야 합니다.
답변2
Capistrano가 업로드하는 쉘 스크립트를 chmod하는 것보다 Cap이 비전역 tmp 위치에 두는 것이 더 안전할 것입니다. 예를 들어:
set :tmp_dir, "/home/deploy/tmp"