2011-09-28 88 views
0

看來,從內核2.2開始,他們引入了功能的概念。根據功能的Unix手冊頁,它說,如果你不是root用戶,你可以通過調用cap_set_proc每個線程的基礎授予你自己的能力。那麼這是否意味着如果你正在爲UNIX編寫一個惡意軟件,你是否會給自己一些功能並危及系統呢?如果不是,那麼如何授予運行該程序所需的功能?Unix功能如何工作?

看來Unix的安全模式相當有 有缺陷 原始。我是否正確?你如何(在作爲非root用戶運行)發出一個信號,即不同的用戶下運行的另一個進程

我會去更具體?在信號手冊頁上,它表示您需要CAP_KILL功能來執行此操作。但是,閱讀能力手冊頁,我不知道我如何授予一個進程的能力。

+0

哦哇..這個題目是怎麼回事?有誰可以投票結束這個問題,請解釋一下? – JosephH

+1

似乎http://unix.stackexchange.com/是這個問題的一個更好的地方。 –

+0

這個問題是*絕對*在這裏的話題。 – caf

回答

-1

這是不可能的。改爲使用套接字或文件。

1

man cap_set_proc

請注意,默認情況下,具有可用CAP_SETPCAP給他們的唯一方法是流程開始作爲一個內核線程。 (通常這包括init(8),kflushd和kswapd)。您將需要重新編譯內核以修改此默認值。

相信我,如果是那麼容易我肯定有人會利用它現在。與其他操作系統相比,Unix的安全模型可能很簡單,但並不意味着它是「有缺陷的」。

+0

好吧,你告訴我,它是如此的原始,授予功能的唯一方法是修改內核? – JosephH

+1

不,我說的是Unix中的大多數進程永遠不需要修改功能,實際上很少有「允許的」進程被硬編碼到內核中。其餘的進程遵守正常的安全模型,而不依賴於功能。 –