SELinux有効下でhttpdから特定のディレクトリへのアクセスを許可する

 SELinuxを有効にしていると、httpdがアクセスできるディレクトリに制限がかかる。それを解除するための手順メモ。

 まず、semanageコマンドでhttpdからのアクセスを許可するディレクトリを登録する。

# semanage fcontext -a -t httpd_sys_content_t <対象ディレクトリ>

 なお、semanageコマンドがインストールされていない場合はpolicycoreutils-pythonパッケージをインストールすればOK。

 次に、そのディレクトリに対しrestoreconコマンドを実行してラベルを設定させる。

# restorecon <対象ディレクトリ>

 最後にls -Zコマンドで適切にラベルが設定されているかを確認する。例えば下記の例は/foobarをhttpdからアクセス可能にしたもの。

# ls -Zd /foobar
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /foobar

 あとは適切にパーミッションを設定すればOK。