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?
linux
apache-2.2
permissions
symbolic-link
selinux
Steven T. Snyder
fonte
fonte
Respostas:
Eu descobri:
semanage possui uma opção
-f
que permite especificar um tipo de arquivo como mostrado no campo mode porls
( dpara diretórios,--
para arquivos regulares, lpara links). Quando-f -l
é usado, o próprio link é direcionado.Veja a
semanage-fcontext
página do manual.fonte
-f -l
pois é a sintaxe que estava em vigor quando foi escrita. Versões posteriores da semântica (EL7) são usadas-f l
.