我想使用由php執行的shell腳本來更改目錄的權限,因此它在apache
用戶下運行。 不幸的是,有些目錄的權限設置爲root
。使用apache/php以超級用戶身份運行shell腳本
有沒有辦法將這個腳本運行爲root
或者有其他的選擇我可以考慮嗎?
我想使用由php執行的shell腳本來更改目錄的權限,因此它在apache
用戶下運行。 不幸的是,有些目錄的權限設置爲root
。使用apache/php以超級用戶身份運行shell腳本
有沒有辦法將這個腳本運行爲root
或者有其他的選擇我可以考慮嗎?
您正在尋找名爲sudo
的工具:https://en.wikipedia.org/wiki/Sudo但最有可能的是,您應該重新考慮您的應用程序體系結構,因爲一旦您的httpd受到攻擊,攻擊者可以輕鬆獲得root權限。
我最近發佈了一個項目,該項目允許PHP獲取並與真正的Bash shell進行交互。在這裏獲得:https://github.com/merlinthemagic/MTS
下載您只需使用下面的代碼後:
$shell = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true);
$return1 = $shell->exeCmd("/path/to/script");
//the return will be a string containing the return of the script
echo $return1;
,或者你可以簡單地繞過腳本,只是發出直接通過在PHP中殼的原始命令。這種方法可以讓你處理異常情況。
嗯,我決定使用CGI腳本suid。 Thanx的答覆。 – Nissanka