¿Cómo asigno una etiqueta SELinux a un enlace simbólico con semanage para que persista después de una etiqueta?

12

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 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?

Steven T. Snyder
fuente
Wow, obtuve la insignia de Pregunta Popular para esta, y ¿sin votos?
Steven T. Snyder

Respuestas:

9

Me lo imaginé:

semanage tiene una opción -fque le permite especificar un tipo de archivo como se muestra en el campo modo por ls( dpara directorios, --para archivos normales, lpara enlaces). Cuando -f -lse utiliza, el enlace en sí está dirigido.

[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

Ver la semanage-fcontextpágina del manual.

Steven T. Snyder
fuente
3
Esta respuesta se usa correctamente, -f -lya que esa es la sintaxis que estaba vigente cuando se escribió. Versiones posteriores del uso de semanage (EL7) -f l.
user9517