回答:
httpd_read_user_content
限定されたWebサーバーがのユーザーホームディレクトリにあるファイルを読み取ることができます/home
。
httpd_enable_homedirs
Apacheがその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が正しく言ったように、ドキュメントルートをユーザーのホームディレクトリに配置したいだけの場合は、最初のものだけを有効にする必要があります。