Назад | Перейти на главную страницу

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

Я запускаю Ubuntu 10.04 VPS, на котором размещены 2 тонких процесса, на которых работает Ruby On Rails за Nginx. Я управляю тонкими процессами с помощью сценария запуска /etc/init.d как обычный пользователь. В моем тонком конфигурационном файле я указываю:

user: www-data
group: www-data

И в моих тонких логах, когда я запускаю сервер, я вижу

>> Changing process privilege to www-data:www-data

Хороший знак. Проблема в том, когда я бегу ps -ef мои тонкие процессы работают как пользователь, под которым я вхожу - пользователь, которого я запускаю /etc/init.d/thin start так как.

Как мне запустить тонкие процессы как www-data: www-data при запуске /etc/init.d/thin start как пользователь я вхожу на сервер как?

Вы можете использовать sudo для запуска команды от имени любой группы user: со следующими параметрами:

sudo -u www-data -g www-data /etc/init.d/thin start

-u устанавливает пользователя www-data и -g устанавливает группу www-data

Вы пытались сделать:

sudo -c www-data /etc/init.d/thin start

Но если ваш тонкий сервер прослушивает порт 80, вам потребуются привилегии root.

Если вы обычный пользователь, вы не сможете передать владение процессом другому пользователю. Для этого вам нужно будет запустить сценарий /etc/init.d/thin от имени пользователя root.

Итак, вы можете сделать что-то вроде sudo /etc/init.d/thin start.