我有一个包含 a 的 PHP 脚本,shell_execute()
它执行的命令通常需要 sudo。我用 visudo 编辑了 sudoers 以包含以下内容:
www-data ALL = NOPASSWD: /var/root/node/npm/node_modules/less/
%users ALL = NOPASSWD: /var/root/node/npm/node_modules/less/
我怀疑任何一个都应该起作用,但我采用了腰带和吊带的方法来确定。
我正在用 vim 编辑 etc/sudoers,所以在添加这些行之后,我执行 :x 并且一切正常。我的 PHP 脚本做了它应该做的事情......大约 10-15 分钟。然后脚本停止工作。具体来说,shell_exec()
停止工作。
如果我再做sudo visudo
一次,我的新台词仍然存在。但只有当我再次保存它时,脚本才会再次开始工作。
谁能告诉我为什么会发生这种情况?我有两个不太好的猜测:
- 有某种宽限期从我开始
sudo visudo
,这就是允许我的脚本工作的原因(但只在它到期之前)。 - etc/sudoers 中的新数据保留在 sudoers.tmp (“锁定文件”)中......这些都不适合我。