pup*_*eno 7 permissions capistrano ruby-on-rails
我的服务器上有两个用户,我自己管理的Ubuntu 12.04虚拟服务器:
某些目录(如public/uploads)配置为属于projectx_rails:projectx_rails,因此rails应用程序可以编写上载的文件.
我的问题来到目录tmp.该目录位于/ var/www/projectx/shared中,并以通常的capistrano处理版本的方式链接到每个版本.问题是部署期间创建的某些文件无法由运行的rails应用程序写入,并且rails应用程序创建的文件不能被部署过程写入.
有办法处理这个吗?拥有所有文件属于projectx_rails:projectx_rails并且可写组是足够好的,但我不知道如何触发它.
我正在使用:Capistrano 3,Rails 3.2,Ruby 2.1.2,Unicorn 4.8.3,nginx.
好吧,这是我的理论。显然,很难对我进行测试,因此请考虑一下。
首先:建立两个用户都属于的组。喜欢projectx_shared。
第二:使该组成为tmp目录的组所有者:
chown projectx_rails:projectx_shared tmp
Run Code Online (Sandbox Code Playgroud)
第三:在此目录上设置setgid位:
chmod g+s tmp
Run Code Online (Sandbox Code Playgroud)
现在,添加到的文件的组所有者tmp应设置为projectx_shared自动。我认为这也将适用于capistrano任务。
我假设在部署时,文件已经rw-rw-r--自动获得权限。如果不是,则还需要将您的UMASK设置为002 .bashrc。
让我知道它是否有效...
| 归档时间: |
|
| 查看次数: |
663 次 |
| 最近记录: |