Mein Apache DocumentRoot / var / www ist eine symbolische Verknüpfung zu einem anderen Pfad. Das Ziel verfügt über die entsprechende Dateikontextbezeichnung (httpd_sys_content_t), damit Apache sie mit aktiviertem SELinux lesen kann. Die symbolische Verknüpfung selbst ist jedoch mit var_t gekennzeichnet.
[root@localhost var]# ls -lZ
lrwxrwxrwx. root root unconfined_u:object_r:var_t:s0 www -> /srv/www
Ich muss den symbolischen Link mit httpd_sys_content_t neu kennzeichnen.
Das Ausführen von chcon mit der Option -h scheint zunächst zu funktionieren:
[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
Dies überlebt jedoch ein Relabel nicht:
[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
Durch die Verwendung von Semanage wird der Link selbst nicht neu gekennzeichnet. nur das Ziel:
[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 hat nicht die Option -h.
Wie kann ich Semanage veranlassen, die Bezeichnung des Links selbst so festzulegen, dass sie nach einer erneuten Bezeichnung als httpd_sys_content_t bleibt?