三蔵開発メモ

Web開発やインフラ関連のメモを共有します

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