11.3.4. Permissive ドメイン
SELinux が Permissive モードで実行している場合、SELinux はアクセスを拒否しませんが、Enforcing モードで実行しても拒否されるアクションのログは SELinux によって記録されます。以前は、1 つのドメインを Permissive にすることはできませんでした (プロセスはドメインで実行されることに注意してください)。特定の状況では、これによりシステム全体が問題のトラブルシューティングを受け入れられるようになりました。
パーミッションドメインを使用すると、管理者はシステム全体を許容するのではなく、1 つのプロセス (ドメイン) に対して Permissive を実行するように設定できます。SELinux によるチェックは依然として Permissive ドメインに対して実行されますが、カーネルは、SELinux がアクセスを拒否したであろう状況では、アクセスを許可し、AVC の拒否を報告します。
Permissive ドメインには、以下の用途があります。
- これを使用すると、1 つのプロセス (ドメイン) を Permissive にして、システム全体をリスクにさらさずに問題のトラブルシューティングを行うことができます。
- これにより、管理者は新しいアプリケーションのポリシーを作成できます。以前は、最小限のポリシーを作成してから、マシン全体を Permissive モードにしてアプリケーションを実行できるようにし、SELinux の拒否ログが記録されるようにすることが推奨されていました。次に、ポリシーを作成するために
audit2allow
を使用することができます。これにより、システム全体が危険にさらされていました。Permissive ドメインでは、システム全体を危険にさらさずに、新しいポリシーのドメインのみが Permissive とマークされます。
11.3.4.1. ドメインを Permissive にする
ドメインを Permissive にするには、semanage permissive -a domain コマンドを実行します。domain は、Permissive にするドメインです。たとえば、root で次のコマンドを実行して、
httpd_t
ドメイン (Apache HTTP サーバーを実行しているドメイン) を Permissive (許容) にします。
~]#
semanage permissive -a httpd_t
Permissive にしたドメインの一覧を表示するには、root で semodule -l | grep permissive を実行します。以下に例を示します。
~]#
semodule -l | grep permissive
permissive_httpd_t (null)
permissivedomains (null)
ドメインを Permissive にしない場合は、root で semanage permissive -d domain コマンドを実行します。以下に例を示します。
~]#
semanage permissive -d httpd_t