早速役立った(汗)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