2011-04-26 46 views
1

我正在尝试使用daemons gem来运行Ruby守护进程。如何以特定用户身份运行Ruby守护进程?

它将以用户'joe'开始,但一旦被妖魔化后需要更改为'www-data',以便它可以访问将要处理的文件。

我可以看到,守护进程对应用程序类change_privilege方法,但我无法弄清楚如何使用它解决此代码:

require 'daemons' 
Daemons.run(
    File.join(File.dirname(__FILE__), 'worker.rb'), 
    { 
    :backtrace => true, 
    :log_output => true, 
    :dir_mode => :script, 
    :log_dir => '/tmp', 
    :monitor => true 
    } 
) 
+0

只是FYI。用户“joe”启动的进程将无法更改为“www-data”的用户标识。它需要由root用户启动。 – Doon 2011-04-26 02:58:01

+0

你是对的,乔只是一个例子:) – Val 2011-04-26 11:58:00

+0

我通常处理上述的方式是要么使用操作系统设施setuid在启动脚本。或者像神一样设置有效的ID。 – Doon 2011-04-26 12:03:30

回答

0

你不应该运行为www-data,因为这是一个特定用户到Apache。但是,您应该向可以访问这些文件的www用户组添加“joe”。

+0

太棒了,谢谢迈克! – Val 2011-04-26 11:59:57

相关问题