5.2. SELinux ポリシーモジュールの生成: sepolicy generate
以前のバージョンの Red Hat Enterprise Linux では、SELinux ポリシーを生成するのに
sepolgen
またはユーティリティー selinux-polgengui
ユーティリティーが使用されていました。このツールは、sepolicy
スイートに統合されています。Red Hat Enterprise Linux 7 では、sepolicy generate
コマンドを使用して最初の SELinux ポリシーモジュールテンプレートを生成します。
sepolgen
とは異なり、root ユーザーとして sepolicy generate を実行する必要はありません。また、このユーティリティーは、RPM 仕様ファイルを作成します。これを使用して、ポリシーパッケージファイル (NAME.pp
) とインターフェイスファイル (NAME.if
) を正しい場所にインストールする RPM パッケージを構築し、SELinux ポリシーをカーネルにインストールして、ラベリングを修正します。セットアップスクリプトは、引き続き SELinux ポリシーをインストールし、ラベリングを設定します。また、インストールしたポリシーに基づく man ページは、sepolicy manpage コマンドを使用して生成されます。[7] 最後に、sepolicy generate が SELinux ポリシーと man ページを構築してコンパイルし、RPM パッケージを作成します。これにより、別のシステムにインストールできるようになります。
sepolicy generate
を実行すると、以下のファイルが生成されます。
NAME.te
– Type Enforcement ファイル- このファイルは、特定のドメインに対するすべてのタイプとルールを定義します。
NAME.if
- インターフェイスファイル- このファイルは、システムのデフォルトのファイルコンテキストを定義します。これは、
NAME.te
ファイルで作成されるファイルタイプを取り、ファイルのパスをタイプに関連付けます。restorecon
およびrpm
などのユーティリティーは、このパスを使用してラベルを書き込みます。 NAME_selinux.spec
– RPM SPEC ファイル- このファイルは、SELinux ポリシーをインストールし、ラベリングを設定する RPM SPEC ファイルです。このファイルでは、インターフェイスファイルと、ポリシーを説明する man ページもインストールされます。sepolicy manpage -d NAME コマンドを使用すると、man ページを生成できます。
NAME.sh
- ヘルパーシェルスクリプト- このスクリプトは、システムでラベリングをコンパイル、インストール、および修正するのに役立ちます。また、インストールしたポリシーに基づいて man ページを生成し、他のシステムにインストールするのに適した RPM パッケージをコンパイルして構築します。
SELinux ポリシーモジュールを生成できる場合、
sepolicy generate
はソースドメインからターゲットドメインに生成されたすべてのパスを出力します。sepolicy generate
の詳細は、sepolicy-generate(8) man ページを参照してください。