Предоставить разрешение только для определенного файла sh с visudo

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

sudo visudo

С этим:

www-data ALL=(ALL) NOPASSWD: ALL

Оно работает!

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

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

Путь правильный, но shell_exec (из php) возвращает: sudo: tty отсутствует и не задана программа askpass
И команда не запустится.
Если линия visudo такая же, как мой первый пример.

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

1

Решение

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]