我在寫一個perl cgi應用程序。在某個時間點,這個cgi應用程序需要以root身份運行以訪問並寫入特定文件。我想知道我應該如何去做這件事,以及我在做這件事時應該採取的安全防範措施。編寫一個以根用戶身份運行的perl cgi應用程序
0
A
回答
6
你幾乎不應該。
如果你無法避免它,那麼創建一個小而簡單的代碼,該代碼與setuid root一起運行,完全不需要執行該任務,或者使用sudo
或類似的代碼運行腳本。
給予該文件適當的權限,以便您的Web用戶可以寫入(如果沒有必要,不一定從中讀取)將是更好的選擇。
0
如果您可以隨時通過任何方式,您必須避免這樣做。
如果您的程序需要立即寫入特權文件,請使用上述回覆。但是,您可以將內容寫入其他地方並每五分鐘運行一次cron作業(比如說)以複製數據。
相關問題
- 1. php-cgi以根用戶身份運行
- 2. Setuid for iphone應用程序以根用戶身份運行
- 3. X11:以另一個用戶身份運行gnome應用程序
- 4. 以root用戶身份以編程方式運行C程序
- 5. 以不同的用戶身份運行應用程序
- 6. 我如何以另一個用戶的身份運行應用程序
- 7. 如何在不以根用戶身份運行的程序中以root身份寫入文件?
- 8. 在Eclipse中導入錯誤,以根用戶身份運行應用程序
- 9. PSExec如何以SYSTEM用戶身份運行應用程序?
- 10. 以Shell用戶身份運行Android應用程序
- 11. LocalSystem Service如何以用戶身份運行應用程序[C#]?
- 12. 以特定用戶身份運行Web應用程序
- 13. 在Docker中以非root用戶身份運行應用程序
- 14. 以root用戶以外的其他用戶身份運行Linux應用程序
- 15. 如何以nobody用戶身份在CGI程序中運行shell命令?
- 16. 書寫用Perl CGI一個MVC應用程序
- 17. Powershell:以另一用戶身份運行.msc小程序
- 18. 以管理員身份運行cgi perl腳本
- 19. 以普通用戶身份執行程序(以root身份)
- 20. 以管理員身份運行VB.NET程序應用程序
- 21. 以特定用戶身份從PHP運行命令行應用程序
- 22. iPhone應用程序可以以root身份運行嗎?
- 23. 如何使Windows窗體應用程序以不同的用戶身份運行?
- 24. 以root用戶身份運行/調試Xcode上的應用程序
- 25. 以根用戶身份運行JNI本機代碼(Mac)
- 26. 以管理員身份運行的dotnet核心應用程序
- 27. VB6是以管理員身份運行的應用程序
- 28. 我的應用程序將以管理員身份運行嗎?
- 29. 開發一個以管理員身份運行命令的應用程序
- 30. 以root用戶身份運行C++程序
+1「你不應該」。當然,OP將會使用污點檢查並將輸入與嚴格的規則進行比較。從shell腳本中除去'rm -rf /'是個不錯的開始;-)默認情況下失敗,只有在符合特定條件時才執行寫操作。 – amon 2012-07-31 04:35:24
你是否建議使用system(「echo pass | sudo -s mine.pl params」)來調用它,還是有更安全的方法? – user1179510 2012-07-31 05:11:52
沒有密碼!爲您的網絡用戶和特定腳本配置sudo而無需輸入密碼。確保在將腳本傳遞給腳本之前,強制驗證腳本的任何參數。 – Mat 2012-07-31 05:13:08