Wie ordne ich einem Symlink mit Semanage ein SELinux-Label zu, damit es nach einem Relabel bestehen bleibt?

11

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?

Steven T. Snyder
quelle
Wow, ich habe das beliebte Frage-Abzeichen für dieses und keine Stimmen?
Steven T. Snyder

Antworten:

8

Ich habe es herausgefunden:

semanage verfügt über eine Option -f, mit der Sie einen Dateityp angeben können, wie im Modusfeld von angezeigt ls( dfür Verzeichnisse, --für reguläre Dateien, lfür Links). Bei -f -lVerwendung wird der Link selbst als Ziel ausgewählt.

[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

Siehe die semanage-fcontextManpage.

Steven T. Snyder
quelle
2
Diese Antwort wird korrekt verwendet, -f -lda dies die Syntax ist, die beim Schreiben gültig war. Spätere Versionen von Semanage (EL7) verwenden -f l.
user9517