Como eu atribuo um rótulo do SELinux a um symlink com semanage para que ele persista após uma remarcação?

10

Meu apache DocumentRoot / var / www é um link simbólico para outro caminho. O destino tem o rótulo de contexto de arquivo apropriado (httpd_sys_content_t) para que o apache possa lê-lo com o SELinux ativado. No entanto, o link simbólico em si é rotulado com var_t.

[root@localhost var]# ls -lZ
lrwxrwxrwx. root root unconfined_u:object_r:var_t:s0 www -> /srv/www

Eu preciso reclassificar o link simbólico com httpd_sys_content_t.

A execução do chcon com a opção -h parece inicialmente funcionar:

[root@localhost var]# chcon -h -t httpd_sys_content_t /var/www
[root@localhost var]# ls -lZ
lrwxrwxrwx. root root unconfined_u:object_r:httpd_sys_content_t:s0 www -> /srv/www

No entanto, isso não sobrevive a uma reclassificação:

[root@localhost var]# restorecon -Rv .
restorecon reset /var/www context system_u:object_r:httpd_sys_content_t:s0->syst
em_u:object_r:var_t:s0

O uso de semanage não redefine novamente o link em si; apenas o alvo:

[root@localhost var]# semanage fcontext -a -t httpd_sys_content_t /var/www
[root@localhost var]# restorecon -Rv .
[root@localhost var]# ls -lZ
lrwxrwxrwx. root root unconfined_u:object_r:var_t:s0 www -> /srv/www

semanage não tem a opção -h.

Como posso obter semanage para definir o rótulo do próprio link para que permaneça como httpd_sys_content_t após uma reclassificação?

    
por Steven T. Snyder 01.09.2010 / 19:43

1 resposta

8

Eu descobri:

semanage tem uma opção -f que permite especificar um tipo de arquivo como mostrado no campo de modo por ls ( d para diretórios, -- para arquivos regulares, l para links). Quando -f -l é usado, o próprio link é segmentado.

[root@localhost var]# semanage fcontext -f -l -a -t httpd_sys_content_t /var/www
[root@localhost var]# restorecon -Rv .
restorecon reset /var/www context system_u:object_r:var_t:s0->system_u:object_r:httpd_sys_content_t:s0

Veja a página do manual semanage-fcontext .

    
por 01.09.2010 / 19:51