11.3. 問題の修正
以下のセクションでは、問題のトラブルシューティングを行う方法を説明します。SELinux ルールよりも前に確認される Linux のパーミッションの確認、SELinux によるアクセス拒否が考えられる原因があるが、拒否はログに記録されない場合、サービス用の man ページ (ラベリングとブール値に関する情報を記載)、システム全体ではなく 1 つ プロセスが Permissive を実行できるようにするための Permissive ドメイン、拒否メッセージの検索および表示方法、拒否の分析、
audit2allow
を使用したカスタムポリシーモジュールの作成について説明します。
11.3.1. Linux の権限
アクセスが拒否された場合は、標準の Linux 権限を確認します。1章はじめに で説明されているように、ほとんどのオペレーティングシステムは DAC (Discretionary Access Control) システムを使用してアクセスを制御し、ユーザーが所有するファイルのパーミッションを制御できるようにします。SELinux ポリシールールは、DAC ルールの後にチェックされます。DAC ルールがアクセスを拒否する場合は、SELinux ポリシールールは使用されません。
アクセスが拒否され、SELinux の拒否ログが記録されていない場合は、次のコマンドを使用して、標準の 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 コマンドを使用して所有者とグループを変更します。このコマンドは、root で実行する必要があります。
~]#
chown apache:apache /var/www/html/index.html
これは、デフォルト設定 (
httpd
は Linux Apache ユーザーとして実行) であることを前提としています。別のユーザーで httpd
を実行している場合は、apache:apache
をそのユーザーに置き換えます。
Linux のパーミッション管理の詳細は、Fedora Documentation Project "Permissions" のドラフトを参照してください。