在我的部署文件中,我将组设置为www-data:
set :user, "root"
set :group, "www-data"
所以当使用cap:setup我希望capistrano用root:www-data
chown文件夹但是所有文件夹和文件都是root:root。
这个问题可能来自哪些想法?
信息:我正在使用system-wide-rvm。
答案 0 :(得分:8)
至于我的理解你应该手动完成,设置是做什么的 使用用户登录,而不是设置目录的权限。
我没有找到capistrano的组设置,也许你正在使用它的一些扩展名?
你可以做些什么来改变它:
after "deploy:setup", :setup_group
task :setup_group do
run "chown -R :#{group} #{deploy_to} && chmod -R g+s #{deploy_to}"
end
但首先你不应该使用 root 进行部署,因为@Julian在评论中提到更好的做法是使用单独的用户执行此任务并将他的组设置为正确的组,然后它不会需要上述任务并自动完成。
答案 1 :(得分:2)
只是简单地说:没有提到:Capistrano源代码中的组。我想这是一个货物崇拜选择。并且:user选项仅用于SSH连接。
关于你的问题,Capistrano创建的目录和文件是使用默认权限创建的,它绝不会chown
以任何方式使用它们;如果您要部署为root
,那么它们将属于root:root
。
答案 2 :(得分:2)
比解决问题更好的是首先没有它:
deployer
。set :user, 'deployer'
sudo
,因此请添加左侧将其关闭
set :use_sudo, false
deploy.rb
。