2019/08/18

apache SELinuxがEnforcingの時、特定のフォルダで読み書きを可能にしたい。

安否確認を自主作成している際、PHPでファイルを読み書きできない状況になったので
調べたところ、コンテキストをいじるには
policycoreutils-python がインストールされていることが条件

yum list policycoreutils-python で調べてなければ、インストールのこと


/var/www/html/test 配下を許容するには
# semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/test/(/.*)?"
# restorecon -R /var/www/html/test/

 でSELinuxの例外を追加する必要がある。


ls -alFZ /var/www/html/test
で確認できる。


嵌ったパターン
既にファイルを生成していて、ディレクトリの属性を
httpd_sys_rw_content_tに変えてrestoreconをしても、
既にあるファイルの属性は変わらない 仕様である。
これが分からず、さんざん悩んだ挙句、
ls -alFZ /var/www/html/対象がいるディレクトリ/
で調べたところ、案の定 rwの属性になっていなかった・・・。
個別に属性付与か、いったん削除して再度scp等でアップするなりが必要。