Завершение работы Debian из PHP-скрипта


0

Я пытаюсь завершить работу моего RaspberryPi под управлением Raspbian из php-скрипта, запущенного на веб-сервере lighttpd. shell_exec("sudo /sbin/shutdown -h now 2>&1");

я добавил lighttpd ALL=(ALL) NOPASSWD: /sbin/shutdown в мой файл / etc / sudoers и проверил, что Defaults !requiretty установлено.

Я все еще получаю "sudo: tty присутствует и не задана программа askpass" при запуске сценария.

Может кто-нибудь, пожалуйста, помогите мне? Спасибо!


Я думаю, что вы можете хотеть shell_exec функция вместо exec так как это командная оболочка (думаю, так оно и есть). Я не уверен на 100% (отсюда и комментарий), но, возможно, стоит попробовать.
nerdwaller

Перенаправление вывода ( 2>&1 ) требует снаряда; попробуйте удалить это из команды и посмотрите, получите ли вы другой результат.
Aaron Miller

Спасибо за ваши комментарии. На самом деле я уже пробовал shell_exec в первую очередь. Я просто скопировал неправильную команду на мой вопрос. И exec ("sudo / sbin / shutdown -h now"); тоже не работает
frsc

Вы уверены, что lighttpd работает как пользователь lighttpd? В сценарии PHP, echo `whoami`; Это может быть www-data или http вместо
WJDev

Ответы:


1

Lighttpd может не работать как пользователь lighttpd,

В сценарии PHP напишите следующее, чтобы узнать, с каким пользователем он работает:

echo shell_exec('whoami');

Это может быть www-data или же http вместо.


Спасибо ElanMan за подсказку. Правильный пользователь был действительно www-data, а не lighttpd, как я читал где-то еще. Теперь все работает как положено.
frsc
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.