MLS関連

ついでに,MLS関連をもう少し。メモ。
例によって,自分が後から思い出す用なので,分かりにくいの注意。

ラベルの書式

ラベルの書式は,
 |sensitivity A| - |sensitivity B|:|category|
のようになっている。
 |category|は,カンマ区切り,または「-」を使って複数指定可。
例:
s0-s5:c0,c2
s0-s5のレベルに所属し,それぞれのレベルでカテゴリc0,c2に属する
例2:
s0-s5:c0-c2
s0-s5のレベルに所属し,それぞれのレベルでカテゴリc0,c1,c2に属する

sensitivity, categoryのネーミング

mls,mcs設定ファイルで命名している。
sensitivity s0;
みたいに。
sensitivityのレベルの高低は,
dominance { s0 s1 };
のようにする。s0<s1の序列になる。

さらに,s0,s1のような名前に別名をつけることができる。
setrans.confで別名を設定。
libsetransというライブラリが別名付けを担っている。

range_transitionルール

MCSポリシで,ps -eZしてみると
loginだけ,s0-s0:c0.c255と全てのカテゴリに属すようになっている。
理由を調べてみる。
modules/kernel/mls.teに,
range_transition getty_t login_exec_t s0 - s0:c0.c255;
というルールを発見。
ドメイン遷移と同じく,プログラム実行時にMLSラベルを変えるもののようだ。