![授予权限更改权限](https://linux22.com/image/70375/%E6%8E%88%E4%BA%88%E6%9D%83%E9%99%90%E6%9B%B4%E6%94%B9%E6%9D%83%E9%99%90.png)
我正在运行一个脚本来在服务器上部署网站。它给了我以下错误:
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
只有文件的所有者或 root 用户才能更改文件的权限。您需要更改文件的所有权,使其归用户所有deploy
,或者以 root 身份运行脚本。
答案2
让 Cap 将它们放在非全局 tmp 位置会更安全,而不是对 Capistrano 上传的 shell 脚本进行 chmod。例如:
set :tmp_dir, "/home/deploy/tmp"