У меня есть веб-сервер, который также играет интернет-радио. Как пользователь www-data я хочу запустить несколько команд, например, я сделал это в файле /etc /sudoers :
www-data ALL=(ALL) NOPASSWD: /usr/bin/amixer
И с помощью PHP я могу манипулировать громкостью без использования пароля:
exec('sudo -u user amixer set Master 3%-');
А также:
exec('sudo -u user amixer set Master 3%+');
Но теперь я хочу иметь возможность перезапустить свой собственный сервис, выполнив команду:
exec('sudo -u user service servicename restart');
Итак, я попробовал:
www-data ALL=(ALL) NOPASSWD: /usr/bin/amixer, NOPASSWD: /bin/service
И это:
www-data ALL=(ALL) NOPASSWD: /usr/bin/amixer, /bin/service
И даже это:
www-data ALL=(ALL) NOPASSWD: /usr/bin/amixer
www-data ALL=(ALL) NOPASSWD: /bin/service
Но ни один из них, кажется, не работает. Пожалуйста, помогите мне.
Извините ребята - моя ошибка. Я сделал некоторые изменения, попытался связать форму /sbin с /bin
Теперь я изменил это на:
www-data ALL=(ALL) NOPASSWD: /usr/bin/amixer, NOPASSWD: /usr/sbin/service
И это работает! Спасибо! Тема закрыта.