LINUX.ORG.RU
ФорумAdmin

Деплой и настройка прав

 ,


0

1

У меня сейчас и деплой и nginx + unicorn работают из под одного пользователя, это не рут, но мой основной пользователь системы.

Я думаю что это не очень хорошо. Ладно, допустим я запущу nginx + unicorn от www-data:www-data.

Это значит что я должен поддерживать права в папке как ksevelyar:www-data.

Значит я должен после деплоя выполнять каждый раз chown -R ksevelyar:www-data /path/to/myapp.

Это может отнять некоторое время, особенно если проект большой.

Но я могу использовать для деплоя пользователя www-data. Как раз дополнительная гарантия, что он не сможет задеплоить куда не нужно.

Единственное что терзает меня:

Почему в разных гайдах советуют создать пользователя deploy, когда уже есть готовый www-data? Что такого плохого, что у www-data появится уютный домик (/home/www-data) с ssh ключами?

Какие права на группу? Возможно будет достаточно включить деплоя в группу www-data и установить chmod g+s на каталог.

at ★★
()

С правами на файлы разобрался, а вот запуск Unicorn от www-data:www-data не столь прост как я думал.

1) Либо всё же нужно деплоить от пользователя www-data. Тогда всё просто, Capistrano будет запускать Unicorn от www-data автоматом.

2) Запускать Unicorn от рута (в конфиге юникорна прописать www-data), и дать системному пользователю через sudoers права на перезапуск Unicorn без пароля.

Мастер процесс всё равно останется запущенным из под рута, но вроде бы это ок. Nginx во всяком случае работает так.

3) Разрешить системному пользователю запускать Unicorn через sudo -u www-data — не уверен, что это возможно.

ksevelyar
() автор топика
Ответ на: комментарий от ksevelyar

Не до конца понятна ситуация. Т.е. Вам необходимо дать возможность пользователю (на руту) перезапускать системный сервис? Подразумевается, что у него уже есть шел.

1) Либо всё же нужно деплоить от пользователя www-data. Тогда всё просто, Capistrano будет запускать Unicorn от www-data автоматом.

Не желательно. Причины описаны в манах, например дебы.

Честно говоря не совсем понял ситуацию. Не могли бы Вы более подробно расписать (желательно с используемой системой, версиями софта и т.д.)?

at ★★
()
Ответ на: комментарий от at

Есть рабочая станция и сервер. И там и там основной пользователь ksevelyar.

Я настроил для него вход на сервер по ключу.

Депой выполняется с рабочей станции — через этого пользователя Capistrano подключается к серверу и запускает/перезапускает Unicorn.

Поэтому Unicorn запускается от ksevelyar. Но это значит, что если злоумышленник получит доступ к серверу, то он получит доступ ко всем файлам пользователя ksevelyar, а не только к файлам веб-серверов.

Поэтому я хочу запускать Unicorn от www-data.

Не думаю что версии софта или система имееют значение. На сервере Debian/testing.

ksevelyar
() автор топика
Ответ на: комментарий от ksevelyar

Capistrano может исполнять произвольные скрипты?

Я бы положил скрипты, требующие запуска с правами администратора в /usr/local/bin и настроил через sudoers их запуск, можно без пароля. Поскольку авторизация проходит по ключу, знать пароль deploy-ю не обязательно.

Примерно так работает nagios.

at ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.