1

Я использую машину CentOS. Я хочу обслуживать пользовательские каталоги с помощью Apache, поэтому я настроил httpd.conf чтобы разрешить каталог public_html .

Я добавил пользователя apache в свою группу пользователей и chmod g+xr public_html и его каталоги верхнего уровня. Если я su apache , я могу без проблем cd /home/nijansen/public_html .

Однако при запросе http://localhost/~nijansen я получаю ошибку 403 Forbidden . Я смог сузить его до проблемы SELinux - он отлично работает, когда я отключаю SELinux.

Я сделал /usr/sbin/restorecond ~/public_html и ls -Zd ~/public_html дает мне

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

и /var/log/httpd/error просто говорит

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

Сейчас у меня закончились идеи и поиск этой проблемы мне пока не дал. Буду признателен за подсказку в правильном направлении.

Обновить

Для устранения неполадок я установил режим SELinux разрешающим, и он дает некоторые журналы, но я не могу их интерпретировать:

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

1 ответ1

1

Фильтруя вывод с помощью ausearch -m avc | audit2allow легко найти виновника:


$ 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 };

Чтобы решить эту проблему, запустите от имени пользователя root:


 # setsebool -P httpd_enable_homedirs=on

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .