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?
quelle
Antworten:
Ich habe es herausgefunden:
semanage verfügt über eine Option
-f
, mit der Sie einen Dateityp angeben können, wie im Modusfeld von angezeigtls
( dfür Verzeichnisse,--
für reguläre Dateien, lfür Links). Bei-f -l
Verwendung wird der Link selbst als Ziel ausgewählt.Siehe die
semanage-fcontext
Manpage.quelle
-f -l
da dies die Syntax ist, die beim Schreiben gültig war. Spätere Versionen von Semanage (EL7) verwenden-f l
.