PHP Разрешения Sudo работают только для команд 'ALL' при использовании exe c () - PullRequest
0 голосов
/ 27 мая 2020

Мне нужен мой код PHP для запуска скриптов от имени другого пользователя с exe c (), поэтому в файле sudoers я добавил: www-data ALL=(csgo) NOPASSWD: WWW_COMMANDS где WWW_COMMANDS - список псевдонимов скриптов, которые мне нужны бежать. Хотя это отлично работает, когда я использую su -s /bin/bash www-data для входа в систему как php и проверяю, работает ли он через s sh, когда я пытаюсь отправить команду на свой сайт с помощью exec("sudo -u csgo sh /path/to/script.sh") и распечатать результат, он сообщает мне sudo: no tty present and no askpass program specified, и скрипт не запустится. Я также добавил Defaults:www-data !requiretty в свой файл sudoers, но безрезультатно. Единственный способ заставить его работать при запуске exe c () на моей странице - это установить www-data ALL=(csgo) NOPASSWD: ALL, что, очевидно, не является отличным решением. Кто-нибудь знает, почему это происходит / как это исправить.

1 Ответ

1 голос
/ 29 мая 2020

Я даже не знал, что сценарий будет работать без расширения. или sh. Комментарий meuh сработал, удалив sh до того, как команда устранила проблему.

...