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?
linux
apache-2.2
permissions
symbolic-link
selinux
Steven T. Snyder
fuente
fuente
Respuestas:
Me lo imaginé:
semanage tiene una opción
-f
que le permite especificar un tipo de archivo como se muestra en el campo modo porls
( dpara directorios,--
para archivos normales, lpara enlaces). Cuando-f -l
se utiliza, el enlace en sí está dirigido.Ver la
semanage-fcontext
página del manual.fuente
-f -l
ya que esa es la sintaxis que estaba vigente cuando se escribió. Versiones posteriores del uso de semanage (EL7)-f l
.