|
|
|
ポリシーのソース・ファイルは,RPMパッケージのベースとなるSRPMファイルに収録されている。今回の場合,「selinux-policy」という名前のSRPMファイルを入手する。
最新版のSRPMファイルを,「http://fedora.redhat.com/Download/mirrors.html」でアクセスできるサイトの,updates/5/SRPMSディレクトリからダウンロードしよう。2006年11月上旬時点のファイル名は,「selinux-policy-2.3.7-2.fc5.src.rpm」だ。このSRPMファイルを次のようにインストールする。
|
/usr/src/redhatディレクトリ以下に,ソース・ファイルを含んだ一連のファイル群がインストールされる。ここからソース・ファイルを取り出す手順を図1に示す。
![]() |
| 図1●ソース・ファイルを取り出す手順 [画像のクリックで拡大表示] |
/etc/selinux/targeted/src/policy以下には,さまざまなファイルやディレクトリが格納されている(表1)。ここでは,図2に沿って,全体を概観しよう。
![]() |
| 表1●policyディレクトリにある主なファイルとディレクトリ [画像のクリックで拡大表示] |
![]() |
| 図2●ソース・ファイルの構成 [画像のクリックで拡大表示] |
図2の(1)に示したポリシーのソース・ファイルの本体は,policy/modules以下に格納されている。このディレクトリには,「ソース・モジュール」という単位でファイル群が整理されて格納されている。
この中には,strictポリシーや,targetedポリシー,ディストリビューション固有のポリシーといった,さまざまな用途のポリシーがまとめて記述されている。
(2)makeコマンドを用いて,ソース・ファイルをバイナリ形式に変換する。変換する際のオプションをbuild.confやmodules.confなどに設定できる。この設定に基づいて,用途に応じたポリシーが抽出される。例えば,「targetedポリシーに変換」「Fedora Coreに対応したポリシーに変換」のようなことができる。
(3)バイナリ形式のポリシーは,base.ppファイルである。設定によっては,一部を別のモジュール・パッケージ(ppファイル)として分離することも可能だ。