Попытаюсь объяснить:
у пользователя www-data, под которым работает "мажордомо", нет, и не должно быть, прав администратора, которые позволяли бы ему в том числе перезапускать сервисы.
Однако мы можем дать ему право только управлять сервисами, с этим не должно быть проблем. Причём это надо обязательно делать без пароля, иначе кто будет его вводить?
Подробнее о том, как это сделать, написано
тут.
Чтобы ничего не сломать, нужно использовать только команду
sudo EDITOR=nano visudo
.
Об этом написано
чуть выше на той же странице.
Итак, какую строчку нужно добавить в /etc/sudoers , чтобы дать право пользователю www-data управлять сервисами без пароля?
Для начала выясним, где "лежит" команда service
$ which service
/usr/sbin/service
У меня - в /usr/sbin/service . У вас, вероятнее всего, тоже. Можете проверить.
Затем с помощью
sudo EDITOR=nano visudo
добавляем строку в конец файла (в конце - наивысший приоритет):
www-data ALL= NOPASSWD: /usr/sbin/service
здесь:
www-data - пользователь
ALL - разрешение выполнять на любой "машине"
NOPASSWD - без пароля
/usr/sbin/service - только эту программу
сохраняем (Ctrl + O и Enter)
выходим (Ctrl + X)
у меня система перезагрузилась и ошибок нет
Пользователь добавил сообщение 08 Мая 2019, 19:28:13:
И я немного перемудрил с содержимым файла restart.sh
Там должно быть:
#!/bin/bash
sudo service majordomo restart