Использование sudo и sudoers для перезапуска apache
Как предоставить определенному пользователю права на перезапуск apache и nginx? Данная инструкция подходит для любых служб, для примера будут использоваться службы веб сервера.
Команда sudo позволяет пользователю выполнять команды с наивысшими правами суперпользователя. Sudo позволяет решить проблемы безопасности, предоставив только тот набор команд который необходим.
Для того, что бы отредактировать файл sudoers будем использовать команду
1 |
visudo |
Выполнив данную команду мы откроем файл sudoers на редактирование. Добавим следующую строку в файл
1 |
user ALL=NOPASSWD: /sbin/service httpd start, /sbin/service httpd stop, /sbin/service httpd restart |
Для Centos7 строка конфигурации будет отличаться
1 |
user ALL=NOPASSWD: /bin/systemctl start httpd.service, /bin/systemctl stop httpd.service,/bin/systemctl reload httpd.service |
Заметим, что в данной конфигурации не будет запрашиваться пароль.
Если использовать следующую конфигурацию, то при выполнении команды будет запрашиваться пароль пользователя user (не root)
1 |
user hostname=/etc/init.d/httpd start, /etc/init.d/httpd stop,/etc/init.d/httpd restart, /sbin/services httpd restart |
Аналогично для nginx или любой другой службы
Чтобы проверить выполнения, например:
1 2 3 |
su - user sudo /bin/systemctl reload httpd.service |
Мы предоставляем услуги обслуживания серверов