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

Лучший способ разрешить учетной записи пользователя запускать supervisorctl?

Я только что закончил настройку руководитель для запуска моих экземпляров Gunicorn, и мне было интересно, есть ли способ по умолчанию, позволяющий обычному пользователю запускать supervisorctl для запуска / остановки веб-сайтов. Я думал добавить некоторую конфигурацию sudo, которая позволила бы этому пользователю запускать его, но потом я думаю, что это может открыть некоторую лазейку, через которую злоумышленник может запускать вещи от имени root. Я знаю, что могу установить user = someuser в разделе конфигурации [supervisord], но тогда мне пришлось бы дать разрешение этому пользователю для файлов по всей файловой системе, для журналов, создания сокетов и т. Д. Это было бы проблемой, потому что стандартное развертывание пакета ubuntu предполагает, что супервизор будет запущен от имени пользователя root.

Итак, что лучше, или есть другая альтернатива?

Разверните свои веб-сайты в buildout, создайте супервизор внутри него, и тогда bin / supervisorctl start / stop будет идентификатором пользователя, вся конфигурация будет в buildout, и для нее не потребуется root.

sudo - действительно лучшая альтернатива здесь. Если вы боитесь, что они могут передать аргументы supervisorctl Кроме как start/stop, возможно, создать два небольших двоичных файла (не скрипты!), которые ничего не делают, кроме вызова supervisorctl start/stop (и не используя system(3) но exec(3)) и разрешить вызов только этих двух конкретных двоичных файлов для пользователя.