2012-07-31 83 views

回答

6

你幾乎不應該。

如果你無法避免它,那麼創建一個小而簡單的代碼,該代碼與setuid root一起運行,完全不需要執行該任務,或者使用sudo或類似的代碼運行腳本。

給予該文件適當的權限,以便您的Web用戶可以寫入(如果沒有必要,不一定從中讀取)將是更好的選擇。

+0

+1「你不應該」。當然,OP將會使用污點檢查並將輸入與嚴格的規則進行比較。從shell腳本中除去'rm -rf /'是個不錯的開始;-)默認情況下失敗,只有在符合特定條件時才執行寫操作。 – amon 2012-07-31 04:35:24

+0

你是否建議使用system(「echo pass | sudo -s mine.pl params」)來調用它,還是有更安全的方法? – user1179510 2012-07-31 05:11:52

+2

沒有密碼!爲您的網絡用戶和特定腳本配置sudo而無需輸入密碼。確保在將腳本傳遞給腳本之前,強制驗證腳本的任何參數。 – Mat 2012-07-31 05:13:08

0

如果您可以隨時通過任何方式,您必須避免這樣做。

如果您的程序需要立即寫入特權文件,請使用上述回覆。但是,您可以將內容寫入其他地方並每五分鐘運行一次cron作業(比如說)以複製數據。

相關問題