httpd_read_user_contentとhttpd_enable_homedirsの違いは何ですか?


8

SELinuxのapacheモジュールには、2つの類似したブールパラメータがhttpd_read_user_contentありhttpd_enable_homedirsます。

マンページによると、前者はhttpdがユーザーコンテンツを読み取ることができ、後者はhttpdがホームディレクトリを読み取ることができます。

それらの違いは何ですか?

httpdに/home/fooディレクトリ上のファイルの読み取りを許可する場合、どのパラメーターをtrueに設定する必要がありますか?

回答:


10

httpd_read_user_content限定されたWebサーバーがのユーザーホームディレクトリにあるファイルを読み取ることができます/home

httpd_enable_homedirsApacheがそのUserDirディレクティブ(つまり、のようなURL http://www.example.com/~username/)を使用できるようにします。

ドメイン名をユーザーのディレクトリにマッピングするだけの場合は、最初のドメインを有効にするだけで十分httpd_read_user_contentですが、Apacheユーザーディレクトリを使用する場合は、両方を有効にする必要があります。


2

自分でいくつかの調査を行った後、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が正しく言ったように、ドキュメントルートをユーザーのホームディレクトリに配置したいだけの場合は、最初のものだけを有効にする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.