SELinux proíbe o acesso ao httpd userdir

1

Estou executando uma máquina do CentOS. Eu quero servir diretórios de usuários com o Apache, então eu configurei httpd.conf para permitir o diretório public_html .

Eu adicionei o usuário apache ao meu grupo de usuários e chmod g+xr o public_html e seus diretórios de nível superior. Se eu su apache , eu posso cd /home/nijansen/public_html sem problemas.

Quando solicito http://localhost/~nijansen , no entanto, recebo um erro 403 Forbidden . Consegui restringi-lo a um problema do SELinux - funciona bem quando desativo o SELinux.

Eu fiz /usr/sbin/restorecond ~/public_html e ls -Zd ~/public_html me deram

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

e /var/log/httpd/error apenas dizem

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

Agora estou sem ideias e procurando por este problema não me deu até agora. Eu apreciaria uma dica na direção certa.

Atualizar

Para a solução de problemas, configurei o modo SELinux para permissivo e ele fornece alguns logs, mas não consigo interpretá-los:

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
    
por nijansen 05.10.2012 / 20:30

1 resposta

1

Filtrar a saída usando ausearch -m avc | audit2allow é fácil de encontrar o culpado:


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

Para resolver isso, execute como root:


 # setsebool -P httpd_enable_homedirs=on
    
por 07.04.2013 / 21:05