Мне нужен мой код 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
, что, очевидно, не является отличным решением. Кто-нибудь знает, почему это происходит / как это исправить.