У меня есть веб-страница с кнопкой, когда пользователь нажимает на кнопку, restart.sh
выполняется скрипт на сервере. Этот скрипт содержит:
#!/bin/bash
systemctl restart rspamd.service
После нажатия на кнопку restart.sh
выполняется, но rspamd.service не перезапускается:«Не удалось перезапустить rspamd.service: Доступ запрещен»Поскольку скрипт выполняется нажатием кнопки на веб-странице, реальный пользователь, который запускает его на сервере, — www-data
. Я пытался установить бит suid для запуска скрипта от имени пользователя root, но это не работает. Как мне перезапустить rspamd.service от имени www-data
пользователя?
решение1
Решено ссудо. Я пробовал раньше, но я написал в неправильном порядке. Редактироватьsudoersи visudo
добавьте это в конец файла:
www-data ALL = NOPASSWD: /bin/systemctl restart rspamd.service
Тогда я смогу просто бежать sudo systemctl restart rspamd.service
и все будет хорошо. Спасибо.