掃除

  • ハードコードされたポリシの除去
    • types.te, attribute.teというファイルをbase_polcyに追加。
      • conveterはこれを読みにいく。converterで使う最低限のタイプ、属性を定義してある。
    • initial_sid_contextsからのタイプの生成はやめる。
      • ハードコード部分が増大しているだけで無駄。
    • 上記に伴いinitial_sids.h, initial_sids.cの除去。
    • genfsconからのタイプ宣言生成もやめる
      • 結局自分でgenfsconを作りなおすことになっているので, types.teに書いておいたほうがよい。
  • 今までなんと汚い実装だったんだ…
  • initial_sid_contexts
    • converterで使わない部分はunlabeled_tにした。
  • convert.c:out_not_suppoerted_allowの除去。
    • これもハードコード部分。default.teでallowするように。

その他

  • allowadm allを作成。

メモ:マルチディストリ対応

  • base_policy/以下のポリシの変更でなんとか吸収するよう
  • アクセスベクタ、オブジェクトクラスの増減をどうやって吸収するか?
    • アクセスベクタが減っている場合の対応:
      • アクセスベクタ、オブジェクトクラスの定義済みリストをaccess_vectorsファイルから作って、convert.cで定義済みならば出力するとか。
    • アクセスベクタが増えている場合の対応:
      • default.teに allow global *:<増えたアクセスベクタ> のように記述。
  • ファイルシステムの増減の対応: genfscon, fs_useで吸収。
  • メモ:allow global *: は、ルールをかなり増大させている。