Verwaltung der Security-Contexts der Dateien

Schließlich können Sie mit dem Befehl semanage auch beeinflussen, welchen Security-Context welche Datei erhält (File-Context). Der zu verwendene Security Context wird von der Policy definiert. Sie können sich alle definierten Security Contexte mit semanage fcontext -l anzeigen lassen. Es ist wiederum nicht möglich in der Policy vordefinierte File-Contexte zu ändern oder zu löschen. Sie können aber zusätzliche Definitionen hinzufügen.

Ein häufiges Problem stellt zum Beispiel bei dem Betrieb eines Webservers die Auslagerung der Webseiten. Häufig erzeugt der Administrator ein eigenes Verzeichnis als DocumentRoot (z.B. /web) in dem die Webseiten gespeichert werden. Dieses Verzeichnis erhält per Definition zunächst den File-Security-Context system_u:object_r:default_t:s0. Die Policy für den Apache erlaubt es ihm nicht auf diese Dateien zuzugreifen. Anstelle nun dem Webserver zu erlauben, auf diese zusätzlichen Security-Contexts zuzugreifen, sollten diese Dateien so gelabelt werden, dass die vorhandene Policy den Zugriff erlaubt.

Das gelingt Ihnen mit dem Kommando semanage. Das Kommando unterstützt hierbei reguläre Ausdrücke. Damit nun jede Datei in diesem Verzeichnis und weiteren Unterverzeichnissen und das Verzeichnis /web selbst den richtigen Context erhalten, setzen Sie den folgenden Befehl ab:

[root@supergrobi policy]# semanage fcontext --add --type httpd_sys_content_t '/web(/.*)?'
Dies setzt sowohl für das Verzeichnis als auch seinen Inhalt den Context. Wenn Sie nun mit restorecon den Security-Context reparieren, erhält das Verzeichnis den richtigen Security-Context[*]. Jede weitere in dem Verzeichnis angelegte Datei erhält nun auch automatisch den richtigen Security-Context, da sich der Security-Context des Verzeichnisses vererbt..
[root@supergrobi policy]# restorecon -R /web
[root@supergrobi policy]# ls -Zd /web
drwxr-xr-x  root root system_u:object_r:httpd_sys_content_t /web

Ralf Spenneberg 2007-11-13