Apa perbedaan antara httpd_read_user_content dan httpd_enable_homedirs?

8

Modul apache dari SELinux memiliki dua parameter boolean yang serupa: httpd_read_user_contentdan httpd_enable_homedirs.

Halaman manual mengatakan yang pertama memungkinkan httpd untuk membaca konten pengguna dan yang terakhir memungkinkan httpd untuk membaca direktori home .

Apa perbedaan di antara mereka?

Parameter mana yang harus saya set true jika saya ingin mengizinkan httpd membaca file pada /home/foodirektori?

Tsutomu
sumber

Jawaban:

10

httpd_read_user_contentmemungkinkan server web terbatas untuk membaca file di direktori home pengguna di /home.

httpd_enable_homedirsmemungkinkan Apache untuk menggunakan UserDirarahannya (yaitu URL yang terlihat seperti http://www.example.com/~username/).

Jika Anda hanya memetakan nama domain ke direktori pengguna, itu harus cukup untuk mengaktifkan yang pertama httpd_read_user_content, tetapi jika Anda ingin menggunakan direktori pengguna Apache, Anda harus mengaktifkan keduanya.

Michael Hampton
sumber
2

Setelah melakukan riset sendiri, saya menyelidiki perbedaan di antara mereka menggunakan sesearchperintah:

$ sesearch --allow -s httpd_t -b httpd_read_user_content
Ditemukan 5 aturan semantik av:
   izinkan httpd_t user_home_dir_t: dir {ioctl baca getattr lock search open}; 
   izinkan httpd_t user_home_t: file {ioctl baca kunci getattr terbuka}; 
   izinkan httpd_t user_home_t: dir {ioctl baca getattr lock search open}; 
   izinkan httpd_t home_root_t: dir {getattr search open}; 
   izinkan httpd_t home_root_t: lnk_file {baca getattr};
$ sesearch --allow -s httpd_t -b httpd_enable_homedirs
Ditemukan 15 aturan semantik av:
   izinkan httpd_t user_home_dir_t: dir {ioctl baca getattr lock search open}; 
   bolehkan httpd_t user_home_dir_t: lnk_file {read getattr}; 
   izinkan httpd_t autofs_t: dir {ioctl baca getattr lock search open}; 
   izinkan httpd_t cifs_t: file {ioctl baca kunci getattr terbuka}; 
   izinkan httpd_t cifs_t: dir {ioctl baca getattr lock search open}; 
   bolehkan httpd_t cifs_t: lnk_file {read getattr}; 
   izinkan httpd_t nfs_t: file {ioctl baca kunci getattr terbuka}; 
   izinkan httpd_t nfs_t: dir {ioctl baca getattr lock search open}; 
   bolehkan httpd_t nfs_t: lnk_file {read getattr}; 
   izinkan httpd_t user_home_t: file {ioctl baca kunci getattr terbuka}; 
   izinkan httpd_t user_home_t: dir {ioctl baca getattr lock search open}; 
   bolehkan httpd_t user_home_type: dir {getattr search open}; 
   bolehkan httpd_t user_home_type: lnk_file {read getattr}; 
   izinkan httpd_t home_root_t: dir {ioctl baca getattr lock search open}; 
   izinkan httpd_t home_root_t: lnk_file {baca getattr}; 

Semua aturan http_read_user_contenttermasuk dalam httpd_t -b httpd_enable_homedirs. Artinya, ruang lingkup yang terakhir lebih luas dari yang sebelumnya.

Seperti yang dikatakan Michael dengan benar, kita harus mengaktifkan yang pertama jika kita hanya ingin menempatkan root dokumen pada direktori home dari pengguna.

Tsutomu
sumber