Meu apache DocumentRoot / var / www é um link simbólico para outro caminho. O destino possui 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 próprio link simbólico é rotulado com var_t.
[root@localhost var]# ls -lZ
lrwxrwxrwx. root root unconfined_u:object_r:var_t:s0 www -> /srv/www
Preciso rotular novamente o link simbólico com httpd_sys_content_t.
Executar o chcon com a opção -h inicialmente parece 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 nova identificaçã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 semântica não redefine o próprio link; 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 possui a opção -h.
Como posso obter a semântica para definir o rótulo do próprio link para que permaneça como httpd_sys_content_t após uma nova identificação?