SELinux有効時にapache管理下の場所でファイルをアップロードしたときにForbidden等になってアクセスできないときの対処法
SELinuxを有効にしているwebサーバーで、 新しいファイルをアップロードすると、アクセスができなくなってしまいはまったのでメモ。
まずどんなラベルがついているかチェック。
ls -Z -rwxrwxrwx. apache apache system_u:object_r:httpd_sys_content_t:s0 index.html -rwxrwxrwx. apache apache unconfined_u:object_r:admin_home_t:s0 new.html
この場合、index.htmlはアクセスできていたのだが、
新しくアップロードしたnew.htmlはアクセスができなかった。
同様のラベルをnew.htmlにもつけてあげることにより解決する。
sudo chcon system_u:object_r:httpd_sys_content_t:s0 new.html -rwxrwxrwx. apache apache system_u:object_r:httpd_sys_content_t:s0 index.html -rwxrwxrwx. apache apache system_u:object_r:httpd_sys_content_t:s0 new.html
auditログでdeniedになっている個所をチェックするとはまりポイントがわかる
less /var/log/audit/audit.log | grep denied