可能重复:
How to call shell script from php that requires SUDO?通过PHP exec运行SUDO?
我有需要SU权(Ubuntu的服务器)上运行Python文件。
无法弄清楚如何去做。
从PHP运行它像这样:
$command = "python /path/to/my/file.py params";
$temp = exec($command, $output);
var_dump($output);
不工作。 (Xvfb来无法启动非root)
尝试:
$command = "echo 'root_pwd' | sudo -S python /program.py params"
...
没有工作。
尝试:编辑/ etc/sudoers文件:
Cmnd_Alias BUNDLE = /path/to/myprog.py
nobody ALL=(ALL) NOPASSWD:BUNDLE
然后:
$command = "sudo -u nobody python myprog.py params";
...
没有工作。
当我说“没有工作” - 我的意思是var_dump($ output)返回空数组,服务器上没有成功的结果(myprog.py应该在服务器上生成一个文件),或者页面只需加载几分钟直到它超时。
基本的.py文件(不需要特殊权限)工作。
请帮忙。
PS: .Py文件制作URL的截图,所以使用webkitgtk,Xvfb和其他一些东西。
许多(大多数?)sudo的配置包括了'requiretty'指令,它防止'被称为sudo'通过非用户终端进程。您可能在运行时禁用了'requiretty',但我强烈建议您咨询serverfault.com以获得正确的设置。你可能会严重损害你的系统的安全性...... –