Mi apache DocumentRoot / var / www es un enlace simbólico a otra ruta. El destino tiene la etiqueta de contexto de archivo apropiada (httpd_sys_content_t) para que apache pueda leerlo con SELinux habilitado. Sin embargo, el enlace simbólico en sí está etiquetado con var_t.
[root@localhost var]# ls -lZ
lrwxrwxrwx. root root unconfined_u:object_r:var_t:s0 www -> /srv/www
Necesito volver a etiquetar el enlace simbólico con httpd_sys_content_t.
Ejecutar chcon con la opción -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
Sin embargo, esto no sobrevive a una nueva etiqueta:
[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
El uso de semanage no vuelve a etiquetar el enlace en sí; solo el objetivo:
[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 no tiene la opción -h.
¿Cómo puedo obtener semanage para establecer la etiqueta del enlace en sí para que permanezca como httpd_sys_content_t después de una etiqueta?