在etc / sudoers中授予的权限仅持续10分钟

时间:2011-12-11 17:00:18

标签: php unix sudoers

我有一个包含shell_execute()的PHP脚本,它执行的命令通常需要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,我的新线仍在那里。但只有当我再次保存时,脚本才会重新开始工作。

谁能告诉我为什么会这样?我有两个不太好的猜测:

  1. 有一种宽限期从我sudo visudo开始,这就是允许我的脚本工作的原因(但只有在它过期之后)。
  2. etc / sudoers中的新数据保留在sudoers.tmp(“锁定文件”)中...... 这些都没有加起来。

2 个答案:

答案 0 :(得分:1)

我认为这可能会对您有所帮助:

Increase sudo time before you need to type password again

快乐的sudoing:D

答案 1 :(得分:0)

根据PHP文档中的a comment,这将有效。

system('echo "PASS" | sudo -u root -S COMMAND');

我还没有测试过。