Как мне запустить демоны Ruby от имени определенного пользователя?

#ruby #daemons

#ruby #демоны

Вопрос:

Я пытаюсь запустить демон Ruby, используя daemons gem.

Он будет запущен как пользователь ‘joe’, но должен измениться на ‘www-data’, как только он будет демонизирован, чтобы он мог получить доступ к файлам, с которыми он будет работать.

Я вижу, что у daemons есть change_privilege метод для класса Application, но я не могу понять, как использовать его в этом коде:

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

Комментарии:

1. просто К вашему сведению. Процесс, запущенный пользователем «joe», не сможет изменить идентификатор пользователя is на «www-data». Он должен быть запущен пользователем root.

2. Вы правы, Джо был просто примером 🙂

3. обычно я справляюсь с этим так, чтобы любой пользователь ОС мог установить его в скрипте запуска. или задайте эффективный идентификатор в чем-то вроде god.

Ответ №1:

Вы не должны запускаться от имени www-data , поскольку это конкретный пользователь apache. Однако вам следует добавить «joe» в свою группу пользователей www, которая может получить доступ к таким файлам.