我試圖在Ubuntu服務器上運行一個由PHP中的非特權用戶擁有的shell腳本。與權限問題使exec()
運行它不切實際,因爲它是運行它的www-data
。我搜索了一下,發現了對suExec的varius引用(這似乎太麻煩了,以解決這樣一個小問題),設置suid位,以及一個有趣的方法在這裏涉及Python服務器的Stackoverflow監聽發送的命令由PHP。從PHP運行shell腳本作爲不同(非root)用戶
無論如何,在所有這些解決方案中,我傾向於設置suid位,嘗試它並且不起作用:chmod u+s script.sh
,並且我的Apache日誌仍顯示權限錯誤,所以我知道腳本不是因爲它的主人,但作爲www-data
。
我需要做些什麼才能使這個工作,並有一個更簡單的解決方案,這個問題?
不可以。您的用戶(www-data)需要執行權限才能運行腳本。什麼是使你想使用shell腳本的根本問題,也許有一個有用的答案。 – clyfe 2010-06-30 12:57:17
基本上我正在嘗試創建一個http://php.opensourcecms.com/的內部版本(開源CMS的演示程序會在某個時間在inverval中自動重置)。我已經將cron作爲非特權用戶每2小時運行一次腳本運行,但是我希望添加功能性來按需執行它。我可以將它作爲www-data運行,但這意味着我也可以從www-data的cron運行它,因爲替換的文件歸www-data所有。無論如何,我想避免讓www數據出於安全原因擁有所有文件。 – Andrei 2010-06-30 13:23:54
這個腳本是做什麼的? – clyfe 2010-06-30 14:53:47