Вот и пытаюсь запустить Supervisor (http://supervisord.org/) как пользователь без полномочий root. Однако процесс выводит журналы в /var/log
каталог, который принадлежит пользователю root и имеет 755 разрешений. Поэтому запуск процесса от имени пользователя без полномочий root вызывает ошибку отказа в разрешении. Как лучше всего решить эту проблему? У меня есть одна идея - рекурсивно изменить группу /var
каталог к тому пользователя, который запускает процесс супервизора, и дает /var
каталог 775 разрешений. Допустимо ли это с точки зрения безопасности?
Попробуйте создать файлы журнала и использовать chown
чтобы сменить владельца на соответствующего пользователя. Если возможно, измените расположение журнала на подкаталог, принадлежащий соответствующему пользователю.
я использую logrotate
для периодической ротации журналов. Он может обрабатывать разрешения при ротации журналов.
Использовать user=
директива в supervisord.conf
, так что супервизор запускается как root, выполняет все необходимые открытия файлов, а затем отбрасывает привилегии.
Если вы еще этого не сделали, вы можете создать пользователя специально для запуска supervisord и использовать ACL, чтобы предоставить этому пользователю права записи в / var / log.
setfacl -m u:$USER:rwx /var/log
Вы также можете сделать своего супервизора членом sys. (Думаю, у меня поблизости нет Linux-бокса, чтобы проверить, есть ли у группы / var / log права записи.)