8.3. 問題の修正
以下のセクションでは、問題の解決方法を説明します。取り上げるトピックは以下のとおりです。Linux パーミッションのチェック - これは SELinux ルールの前にチェックされます。拒否がログ記録されない場合に SELinux がアクセスを拒否する理由。サービスの man ページ - これはラベリングとブール値の情報を含んでいます。あるプロセスがシステム全体ではなく permissive で実行することを許可するための permissive ドメイン。拒否メッセージの検索方法および表示方法。拒否の分析。
audit2allow
によるカスタムポリシーモジュールの作成。
8.3.1. Linux パーミッション
アクセスが拒否されたら、標準 Linux パーミッションをチェックしてください。2章はじめに の説明にあるように、ほとんどのオペレーティングシステムでは任意アクセス制御 (DAC) を使ってアクセスを制御しており、ユーザーが所有しているファイルのパーミッションを自分で管理できるようになっています。SELinux ポリシールールは DAC ルールの後にチェックされます。最初に DAC ルールがアクセスを拒否すれば、SELinux ポリシールールは使われません。
アクセスが拒否され、SELinux 拒否がログ記録されていない場合、
ls -l
コマンドを使って標準 Linux パーミッションを表示します。
~]$ ls -l /var/www/html/index.html
-rw-r----- 1 root root 0 2009-05-07 11:06 index.html
この例では、
index.html
は root ユーザーとグループが所有しています。root ユーザーには読み取りおよび書き込みパーミッション (-rw
) があり、root グループのメンバーには読み取りパーミッション (-r-
) があります。それ以外の人にはアクセスがありません (---
)。デフォルトでは、これらのパーミッションは httpd
によるこのファイルの読み取りを許可しません。この問題を解決するには、chown
コマンドで所有者とグループを変更します。このコマンドは、Linux root ユーザーで実行する必要があります。
~]# chown apache:apache /var/www/html/index.html
ここでは、
httpd
を Linux apache ユーザーとして実行するというデフォルト設定を前提としています。httpd
を別のユーザーで実行する場合は、apache:apache
をそのユーザーで置き換えます。
Linux パーミッションの詳細に関しては、Fedora Documentation Project "Permissions" の草案を参照してください。