特別是在Linux/POSIX世界中,需要某些根功能才能進行臨時初始化(例如,讀取根擁有的私鑰文件或打開端口1024或者增加資源限制)的守護程序通常似乎遵循設計模式,他們通過函數調用(如setuid()
/setresuid()
和setgid()
/setresgid()
)更改其憑據,然後調用fork()
將實際程序作爲其子項運行。假設fork()
-ing完成「以防萬一」,但是這樣做是或實際的安全考慮?在刪除(root)權限後fork()會獲得任何安全性好處嗎?
並跟進上,就是這個原因,仍然具有現實意義的時候(除了setgroups(0, NULL)
,setresgid(GID_NOBODY, GID_NOBODY, GID_NOBODY)
和setresuid(UID_NOBODY, UID_NOBODY, UID_NOBODY)
),該方案還主動限制Linux的功能,以儘快下探各項性能,因爲它不再需要撥打cap_set_proc()
?
也許更適合[信息安全](http://security.stackexchange.com/)? –
@SergeBallesta我認爲它同樣適合這裏。理想情況下,我會提出這個問題一次 - 但兩個網站同時!但是,不,StackExchange太笨了,不允許這樣的功能。我的意思是,不要強迫用戶選擇一個SE網站,如果你能向兩個或甚至三個不同的SE網站提出問題,這會有多好? – Will
我沒有將其標記爲遷移,因爲我同意你的意見,這裏不是主題。但恕我直言,你可以在其他網站獲得更好的質量答案,因爲這實際上涉及安全。 –