在Linux系統中,非特權用戶啓動一個程序。創建的流程具有模式爲effective,permitted,inheritable
的模式CAP_NET_RAW,CAP_NET_ADMIN
。 該過程然後通過調用fork
和execv
調用另一個程序udhcpc來創建子進程,但子進程沒有按預期繼承能力CAP_NET_RAW,CAP_NET_ADMIN
。即使在設置我稱爲prctl(PR_SET_KEEPCAPS, 1)
的功能之前。fork和execve繼承無特權的父進程的能力
任何有關如何繼承無特權父進程的能力的建議fork
後跟execve
?
似乎在目前是不可能保存execve的能力後,不設定文件的功能。請參閱[\ [RFC \]功能仍然不能由普通程序繼承](http://www.gossamer-threads.com/lists/linux/kernel/1641892) – Lekensteyn 2013-01-10 21:32:18
叉可以通過它們,exec不能(除了與環境)。 Exec可以通過繼承,但是execed文件也需要這個繼承集。 – 2017-08-27 16:56:34