cd /etc cp localtime localtime.hl rm localtime mv lovaltime.hl localtime
Damit »SuSEconfig« diesen Hardlink nicht wieder anlegt, sollte der Eintrag »TIMEZONE= “Zeitzone”« in »/etc/rc. config« auf den Wert »YAST_ASK« gesetzt werden. Ab SuSE 8.0 ist dieser Eintrag in »/etc/sysconfig/clock« zu finden. Sollten noch andere Hardlinks im System existieren, warnt SE Linux beim Anlegen der Security Contexts.
Fast alle Dateien, die das Verhalten von SE Linux steuern, liegen unter »selinux/policy«, damit ist dieses Verzeichnis die Basis für die nächsten Schritte. Kommentarzeilen beginnen in den Konfigurationsdateien wie üblich mit einer Raute »#«. Der Inhalt dieser Files wird noch vom Makro-Präprozessor »m4« interpretiert, viele Admins kennen das Tool von der Sendmail-Konfiguration. Die Makros vereinfachen komplexere Konfigurationen – für die ersten Schritte und die normale Anwendung muss man die »m4«-Sprache aber nicht verstehen.
SE Linux konfigurieren
Die Datei »users« weist jedem Benutzer die nutzbaren Rollen zu. Nur Benutzerkennungen, die hier aufgelistet sind, lassen sich auch in der System-Policy nutzen. Als Erstes sollte man die Beispielbenutzer »jdoe« und »jadmin« löschen. Die Einträge haben das Format »user Benutzername roles Rolle;« oder, wenn mehrere Rollen erlaubt sind, »user Benutzername roles { Rolle1 Rolle2 };«.
Drei weitere Benutzer sind schon vorgegeben. »system_u« ist der Systembenutzer, daneben gibt es »root« und »user _u«. Nicht aufgeführte Benutzer werden automatisch dem Standardbenutzer »user_u« und dessen Rolle »user_r« zugeordnet, dadurch ist es nicht notwendig, jeden einzelnen Linux-User zu dieser Datei hinzuzufügen. Ein Beispieleintrag ohne besondere Privilegien könnte so aussehen:
user foo roles { user_r bar_r };
Soll ein User mehr Rechte erhalten, kann man ihm Zugang zur »sysadm_r«-Rolle gewähren. Sind mehrere Rollen eingetragen, kann der Benutzer jederzeit wechseln. Die »sysadm_r«-Rolle gibt dem User dieselben SE-Linux-Rechte wie Root, dennoch hat er keine Root-Rechte auf dem zugrunde liegenden Linux-System, weil SE Linux zusätzlich zu den Standard-Linux-Rechten greift. Daher kann dieser Benutzer auch nicht auf das Verzeichnis »/root« zugreifen.
In der Praxis werden mit den Rollen Zugriffe auf verschiedene Programme gewährt oder abgelehnt. Ein Beispiel dafür ist das Programm »insmod«. Die Mitglieder der »sysadm_r«-Rolle sowie das System selbst dürfen das Programm benutzen, da beide Rollen die Domäne (den Typ) »insmod_t« enthalten. Den normalen Benutzern in der »user_r«-Rolle fehlt dagegen die notwendige Berechtigung. Daher können diese Benutzer und ihre Programme keine Kernelmodule nachladen. Auch wenn ein Benutzer Root-Rechte (User-ID »0«) erlangen sollte, ist ihm das Nachladen von Modulen unmöglich, wenn er sich nicht in der »sysadm_r«-Rolle befindet.
Security Context für Dateien und Prozesse
Die Dateien unter »file_contexts« ordnen den Dateisystemeinträgen ihren Security Context zu. »types.fc« enthält die allgemeinen programmunabhängigen Zuordnungen, die programmspezifischen stehen unter »program«. Ein Blick in diese Dateien hilft die Funktionsweise von SE Linux besser zu verstehen (Listing 1): Jede Zeile beginnt mit dem Dateisystemeintrag, der als Regular Expression recht bequem definiert werden kann. Das Verankern mit »^« am Anfang und »$« am Ende kann entfallen, SE Linux fügt diese Zeichen automatisch ein.
|
Listing 1: |
|---|
/home/[^/]* -d system_u:object_r:user_home_dir_t /var/run(/.*) system_u:object_r:var_run_t /var/run/.*.*pid <<none> |
Auf die Dateiangabe folgt eventuell die Dateiart als Option mit führendem Minuszeichen. Ein »-d« steht für einen Verzeichniseintrag, die Regel gilt dann nur für Verzeichnisse. Sind nur gewöhnliche Files gemeint, ist »–« einzutragen. Am Ende der Zeile ist der Security Context aufgeführt. Er besteht stets aus dem User »system_u«, der Rolle »object_r« und einem passenden Typ. Die während der Laufzeit von SE Linux neu erzeugten Files erhalten den Benutzer, die Rolle und den Typ entsprechend dem erzeugenden Prozess. Um keinen Security Context anzulegen, lässt sich hier auch »<<none>« angeben.
Passt eine Datei zu mehreren Regeln, verwendet SE Linux die letzte zutreffende Zeile. Die zweite Zeile in Listing 1 passt auf alle Dateisystemeinträge unterhalb »/var/run« und kennzeichnet sie mit dem Security Context »system_u:object_r:var_run_t«. Die nächste Zeile löscht die Kennzeichnung für alle Einträge, die auf ».pid« enden.
Hier zeigt sich, wie wichtig die Reihenfolge ist: Wären Zeile 2 und 3 vertauscht, würden letztlich auch die PID-Dateien den Security Context erhalten. Die Einträge sollten also vom Allgemeinen zum Speziellen geordnet sein. Eine falsche Reihenfolge ist oft Ursache für unerwartete Ergebnisse.





