2016-11-22 6 views
1

Я хочу запустить сценарий sh из php. Для этого мне нужно открыть файл visudo:Предоставление разрешения только для определенного файла sh с visudo

Судо visudo

С этим:

www-data ALL=(ALL) NOPASSWD: ALL 

Это работает!

Но я не хочу включать всю команду, только конкретный сценарий sh. Так я изменил его:

www-data ALL=(ALL) NOPASSWD: /www/......./truncatefiles.sh 

путь является правильным, но shell_exec (от PHP) возвращается: Суд: нет TTY присутствует и ни одна программы askpass не указан И команда не побежит. Если строка visudo такая же, как в моем первом примере.

В чем может быть проблема?

+0

https://www.garron.me/images/2012-05/sudo-sudoers-make-me-sandwich.png – bishop

ответ

0

Я думаю, что это плохая идея, так как это может создать потенциальную проблему безопасности.

Но если вы все еще хотите сделать так, вы можете держать www-data ALL=(ALL) NOPASSWD: /www/......./truncatefiles.sh и в то же время закомментируйте строки, содержащие Defaults requiretty в /etc/sudoers (всегда с visudo, чтобы избежать ошибок).

 Смежные вопросы

  • Нет связанных вопросов^_^