【发布时间】:2012-06-01 05:52:23
【问题描述】:
我有一个使用Delayed Job Gem 运行后台任务的Rails 站点。后台任务获取 PDF 并将其转换为一系列图像。
Rails 应用程序以“nobody”身份运行,延迟的作业流程以“root”身份运行。
后台任务运行正常,但是当 Rails 应用程序尝试删除由延迟作业进程创建的文件时出现问题:我收到“权限被拒绝”消息。所以'nobody'不能删除'root'创建的文件。
如果我将文件/文件夹权限设置为:
chmod -R 755
但这不会影响新文件。
我正在 root 帐户下使用 Capistrano 部署我的 Rails 应用程序。
作为 linux 系统管理员,我是个菜鸟。你能建议我哪里出错了吗?
非常感谢
【问题讨论】:
-
我更喜欢使用名为 rails 的同一用户(或 www,或其他任何名称)运行我的 rails 应用程序和延迟作业。您可以使用 set :user 'username' 告诉 capistrano 与您想要的用户一起部署,我认为延迟的作业与安装 gem 的用户一起运行。
-
啊,“延迟作业与安装 gem 的用户一起运行”很有用,我必须对此进行调查,并尝试让事情在不同的帐户下工作。
标签: ruby-on-rails linux delayed-job file-permissions