可能重複:
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以獲得正確的設置。你可能會嚴重損害你的系統的安全性...... –