2012-05-10 49 views
0

我只是想知道是否可以從Apache上的CGI腳本運行系統調用。以下是部分代碼:CGI Python os.system

print "<input type = 'submit' value = 'Launch Job!'>" 
print "</form>" 
print "</body>" 
print "</html>" 
system('command') 

我試圖在託管網頁的同一臺計算機上運行此命令。問題是,當這個函數執行時,命令不能成功運行。我曾嘗試加入sudo開始,嘗試os.system('command')都無濟於事。

那麼,這是可能的嗎?

+2

這可能有助於解釋你想要做的事情。也許你不需要使用外部工具? – Carpetsmoker

回答

0

命令將作爲用戶nobody運行,並且具有很少的權限。

+0

感謝Louis,有沒有辦法改變這種情況? – user1332449

+0

您可以設置可執行文件的setuid位,這意味着它將以文件所有者的權限運行。 **警告**如果所有者是root用戶,這可能會帶來嚴重的安全風險。例如,您可以創建apache用戶擁有的包裝器腳本。 – Carpetsmoker

+1

您可以讓服務器像普通用戶一樣運行,請求通過dbus或套接字執行某些操作。然後,cgi腳本可以請求開始作業。 – kragniz