Kentaro Takeda
k.tak****@gmail*****
2007年 8月 9日 (木) 14:14:35 JST
たけだです。 > (1) /proc/{ccs,tomoyo}/version から > カーネルがサポートしているポリシーのバージョン番号を取得できるようにする。 OK。 > (2) カーネルがサポートしているポリシーのバージョン番号が同じなのに > サポートされている構文がカーネルコンフィグに依存しないようにするために、 > カーネルコンフィグで各機能(CONFIG_TOMOYO_MAC_FOR_FILE CONFIG_TOMOYO_MAC_FOR_ARGV0 等)の > 選択を行わせないようにする。 OK。 > (3) サポートしているポリシーのバージョン番号は複数表示できるようにする。 > 例えばポリシーのバージョン 1 と 2 と 3 が定義されており、 > バージョン 3 はバージョン 2 を完全に包含している > (バージョン 2 のポリシーをバージョン 3 のカーネルで使える)場合は > 2 3 の両方を表示する。 > バージョン 3 がバージョン 2 を完全には包含していない > (バージョン 2 のポリシーをバージョン 3 のカーネルで使えない)場合は > 3 だけを表示する。 「ポリシーのバージョン」と「カーネルのバージョン」は異なるのでしょうか? > (4) ポリシー構文チェッカの checkpolicy の引数にポリシーのバージョン番号を > 指定するようにして、定義されている全てのバージョンのポリシーをチェックできるようにする。 OK。 > (5) ポリシーローダ( /sbin/{ccs,tomoyo}-init )の処理を以下のように変更する。 基本的にOKですが、 > (1) checkpolicy はポリシーローダから呼ばれるので / パーティションに置かなければいけない。 これは仕方ないですね。 > (2) init= を用いてポリシーローダを実行しない( call_usermodehelper() に実行させる)場合、 > 標準入出力が無いのでポリシーに問題があってもエラーメッセージを表示できない。 > そのため、問題があった場合、エラーメッセージを表示できないままポリシーローダの中で永遠にスリープするか > ポリシーをロードできないままポリシーローダが終了することでカーネルパニックするかしか選択肢がない。 SELinuxはカーネル起動時にポリシー読み込みに失敗するとパニクるようですね。 (ある意味安全側にこけている?) ポリシーローダの返り値がエラーの場合、そもそもユーザの意図したポリシーが 読み込まれていないという意味でパニックでよい気がします。