続・MCS設定のアイデア

しまった、一般ユーザにLinux-Capabilityをアタッチしても、次のexecve()を実行したときに無効化されちゃうのか。だめじゃん。orz

ただ、この箇所はSELinuxのsecondary_opsでフック可能な箇所なので、標準のCapabilityを代替するようなカーネルモジュールを組めば、一般ユーザにCapabilityを割り当てて子プロセスにも派生させることは可能と思われる。
標準のCapabilityの実装自体は、security/commoncap.c でしこたま定義されているので、ほとんどは自前で定義する必要もない。

標準CapabilityがLSMに登録されないようにするには、カーネル起動オプションにcapability.disable=1 をつける。
(こうしないと、secondary_opsに登録できない)