У меня есть PHP-скрипт, который содержит shell_execute()
, и обычно выполняемая команда требует sudo. Я отредактировал sudoers с помощью visudo, чтобы он содержал следующее:
www-data ALL = NOPASSWD: /var/root/node/npm/node_modules/less/
%users ALL = NOPASSWD: /var/root/node/npm/node_modules/less/
Я подозреваю, что любой из них должен сработать, но я, конечно, выбрал подход с поясом и подтяжками.
Я редактирую etc / sudoers с помощью vim, поэтому после добавления этих строк я делаю: x и все работает. Мой PHP-скрипт делает то, что должен ... минут 10-15. Тогда скрипт перестает работать. В частности, shell_exec()
перестает работать.
Если я сделаю sudo visudo
снова, мои новые строки все еще там. Но только когда я снова сохраню его, скрипт снова начнет работать.
Может кто-нибудь сказать мне, почему это может происходить? У меня есть два предположения, которые не очень хороши:
- Существует некоторый льготный период, который начинается, когда я
sudo visudo
, и это то, что позволяет моему сценарию работать (но только до его истечения).
- Новые данные в etc / sudoers находятся в sudoers.tmp («Файл блокировки») ...
Ни один из них не складывается со мной.