SELinux melarang akses ke httpd userdir

1

Saya menjalankan mesin CentOS. Saya ingin melayani direktori pengguna dengan Apache, jadi saya mengkonfigurasi httpd.confuntuk mengizinkan public_htmldirektori.

Saya telah menambahkan apachepengguna ke usergroup saya dan chmod g+xryang public_htmldan direktori toplevel nya. Jika saya su apache, saya bisa cd /home/nijansen/public_htmltanpa masalah.

http://localhost/~nijansenNamun ketika meminta , saya mendapatkan 403 Forbiddenkesalahan. Saya dapat mempersempitnya menjadi masalah SELinux - ini berfungsi dengan baik ketika saya menonaktifkan SELinux.

Saya telah melakukan /usr/sbin/restorecond ~/public_htmldan ls -Zd ~/public_htmlmemberi saya

drwxr-x---. nijansen nijansen unconfined_u:object_r:httpd_user_content_t:s0 public_html

dan /var/log/httpd/errorhanya berkata

[Fri Oct 05 20:20:25 2012] [error] [client 127.0.0.1] (13)Permission denied: access to /~nijansen denied

Sekarang saya kehabisan ide dan mencari masalah ini tidak memberi saya sejauh ini. Saya akan menghargai petunjuk ke arah yang benar.

Memperbarui

Untuk pemecahan masalah, saya telah mengatur mode SELinux ke permisif , dan itu memang memberikan beberapa log, tapi saya gagal menafsirkannya:

Oct  5 20:50:18 localhost kernel: type=1400 audit(1349463018.930:95232): avc:  denied  { search } for  pid=10443 comm="httpd" name="nijansen" dev=dm-6 ino=12058625 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_home_dir_t:s0 tclass=dir
Oct  5 20:50:18 localhost kernel: type=1400 audit(1349463018.938:95233): avc:  denied  { getattr } for  pid=10444 comm="httpd" path="/home/nijansen" dev=dm-6 ino=12058625 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_home_dir_t:s0 tclass=dir
nijansen
sumber
Ini akan sangat membantu Anda magazine.redhat.com/2007/08/21/...

Jawaban:

1

Dengan memfilter keluaran menggunakan ausearch -m avc | audit2allowmudah untuk menemukan pelakunya:


$ echo "
 Oct  5 20:50:18 localhost kernel: type=1400 audit(1349463018.930:95232): avc:  denied  { search } for  pid=10443 comm="httpd" name="nijansen" dev=dm-6 ino=12058625 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_home_dir_t:s0 tclass=dir
 Oct  5 20:50:18 localhost kernel: type=1400 audit(1349463018.938:95233): avc:  denied  { getattr } for  pid=10444 comm="httpd" path="/home/nijansen" dev=dm-6 ino=12058625 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_home_dir_t:s0 tclass=dir
 " | audit2allow
 ============= httpd_t ==============
 !!!! This avc can be allowed using the boolean 'httpd_enable_homedirs'
allow httpd_t user_home_dir_t:dir { search getattr };

Untuk mengatasi ini, jalankan sebagai root:


 # setsebool -P httpd_enable_homedirs=on

dawud
sumber