Contextos do SELinux

1

Estou configurando o Apache \ PHP e notei o Apache reclamando sobre permissões com o objeto compartilhado php.

Starting httpd: 
httpd: Syntax error on line 206 of /etc/httpd/conf/httpd.conf: 
Cannot load /usr/lib/httpd/modules/libphp5.so into server: 
/usr/lib/httpd/modules/libphp5.so: cannot restore segment prot after reloc: 
Permission denied

Eu olhei para o contexto (comecei bem com a aplicação off) e encontrei:

# ls --context /usr/lib/httpd/modules/libphp5.so
-rwxr-xr-x root root root:object_r:httpd_modules_t /usr/lib/httpd/modules/libphp5.so

O httpd (apache) não deveria poder acessar arquivos com um contexto de httpd_modules_t ? Consegui consertar aplicando

chcon -t textrel_shlib_t '/usr/lib/httpd/modules/libphp5.so'

Mas eu acho que a versão do httpd funcionaria antes desta. Alguém pode me explicar isso?

    
por Joshua Enfield 13.05.2010 / 22:48

1 resposta

4

No SELinux, cada item é necessário para ter um contexto. A realocação de texto pode ser descrita como um erro. Mudar o contexto cria uma exceção que permite que o SELinux seja carregado, embora seja basicamente b0rken. Melhor explicação sobre a realocação de texto: link . BTW usando chcon não é permanente: a reclassificação redefinirá o contexto. Use

# semanage fcontext -a -t textrel_shlib_t /usr/lib/httpd/modules/libphp5.so

para fazer isso (veja /etc/selinux/targeted/contexts/files/file_contexts.local ).

HTH

    
por 04.05.2011 / 23:31