回答:
httpd_read_user_content限定されたWebサーバーがのユーザーホームディレクトリにあるファイルを読み取ることができます/home。
httpd_enable_homedirsApacheがそのUserDirディレクティブ(つまり、のようなURL http://www.example.com/~username/)を使用できるようにします。
ドメイン名をユーザーのディレクトリにマッピングするだけの場合は、最初のドメインを有効にするだけで十分httpd_read_user_contentですが、Apacheユーザーディレクトリを使用する場合は、両方を有効にする必要があります。
自分でいくつかの調査を行った後、sesearchコマンドを使用してそれらの違いを調査しました。
$ sesearch --allow -s httpd_t -b httpd_read_user_content
5つのセマンティックAVルールが見つかりました:
httpd_t user_home_dir_t:dir {ioctl read getattr lock search open}を許可します。
httpd_t user_home_t:file {ioctl read getattr lock open}を許可します。
httpd_t user_home_t:dir {ioctl read getattr lock search open}を許可します。
httpd_t home_root_t:dir {getattr search open}を許可します。
httpd_t home_root_t:lnk_file {get getattr}を許可します。
$ sesearch --allow -s httpd_t -b httpd_enable_homedirs
15個のセマンティックAVルールが見つかりました:
httpd_t user_home_dir_t:dir {ioctl read getattr lock search open}を許可します。
httpd_t user_home_dir_t:lnk_file {get getattr}を許可します。
httpd_t autofs_t:dir {ioctl read getattr lock search open}を許可します。
httpd_t cifs_t:file {ioctl read getattr lock open}を許可します。
httpd_t cifs_t:dir {ioctl read getattr lock search open}を許可します。
許可httpd_t cifs_t:lnk_file {read getattr};
httpd_t nfs_t:file {ioctl read getattr lock open}を許可します。
httpd_t nfs_t:dir {ioctl read getattr lock search open}を許可します。
httpd_t nfs_t:lnk_file {get getattr}を許可します。
httpd_t user_home_t:file {ioctl read getattr lock open}を許可します。
httpd_t user_home_t:dir {ioctl read getattr lock search open}を許可します。
httpd_t user_home_type:dir {getattr search open}を許可します。
httpd_t user_home_type:lnk_file {get getattr}を許可します。
httpd_t home_root_t:dir {ioctl read getattr lock search open}を許可します。
httpd_t home_root_t:lnk_file {get getattr}を許可します。
のすべてのルールhttp_read_user_contentがに含まれていhttpd_t -b httpd_enable_homedirsます。つまり、後者の範囲は前者よりも広いです。
Michaelが正しく言ったように、ドキュメントルートをユーザーのホームディレクトリに配置したいだけの場合は、最初のものだけを有効にする必要があります。