Viele Benutzer schalten SELinux bei dem ihrem ersten Kontakt ab, da sich das Linux-System nicht so verhält, wie es normalerweise sollte. Ein typisches Problem ist der Einsatz des System als Webserver und die Erzeugung zusätzlicher Verzeichnisse, in denen die Webseiten verwaltet werden (DocumentRoot).
Häufig vergessen dann SELinux-Erstanwender, dass die von Ihnen angelegten Verzeichnisse nicht den korrekten Kontext besitzen. Damit der Apache Webserver diese Verzeichnisse und die in ihnen befindlichen Daten lesen darf, benötigen diese Verzeichnisse einen entsprechenden Typ. Üblicherweise ist dies httpd_sys_content_t. Wenn Sie die Dateien manuell mit diesem Typ versehen, besteht die Gefahr, dass bei einem späteren Relabeling des gesamten Systems wieder die Default-Typen angewendet werden (Wie Sie dies auf modernen Systemen ausschließen können, finden Sie in 22.4.). Da die Dateien in diesen Verzeichnissen aber immer den entsprechenden Typen aufweisen sollen, ist es sinnvoller statt einer manuellen Zuweisung, SELinux anzuweisen, die entsprechenden Typen zu vergeben.
Hierzu fügen Sie die neuen Verzeichnisse einfach der Liste der File-Kontexte hinzu. Handelt es sich um das Verzeichnis /www, welches die Webseiten enthält, geht das ganz einfach mit folgendem Befehl:
# semanage fcontext -a -t httpd_sys_content_t -f "" '/www(/.*)?'Bei der Angabe der Dateien kann, wie hier gezeigt, ein regulärer Ausdruck für die Beschreibung verwendet werden. Hier bezieht sich der Ausdruck auf das Verzeichnis /www und alle darin befindlichen Dateien. Wenn Sie nun das Verzeichnis neu erzeugen, wird es zunächst seinen Security-Context von dem Elternverzeichnis erben. Mit restorecon weisen Sie ihm den richtigen Kontext zu.
Ralf Spenneberg 2007-11-13