早速役立った(汗)SELinuxのメモ置き場:コンテンツと.htpasswdのファイル設置場所の分離
複数のコンテンツユーザを抱えた共用サーバの場合、FTP先をコンテンツユーザのホームディレクトリではなく、コンテンツのDocumentRootディレクトリにchrootしておくと、.bashrcなどを上書きしてしまう恐れが少ないし、コンテンツのパスも直観的になる。
上書きしたくないという意味では htpasswd のファイルもそうなので、コンテンツのディレクトリとは別のところに置いていた。
ところが、SELinuxをenforceの状態にした場合、コンテンツのディレクトリ以外の場所にあるhtpasswdのファイルがアクセスできないことがある。
これは非常にありがちな状況なのだが、具体的なコマンドまでは覚えていない。いちいちググるのは面倒だなー、とか思っていたら、そういえば訳しといた記事にあったじゃん、という話。
要するにsemanage fcontextして、restoreconすればいいのでした。
# semanage fcontext -a -t httpd_sys_content_t 'htpasswdファイルのあるディレクトリ(/.*)?' # restorecon -R htpasswdファイルのあるディレクトリ # ls -Z htpasswdファイルのあるディレクトリ -rw-r--r-- contentuser contentgroup system_u:object_r:httpd_sys_content_t .htpasswd