Kapitel 24. Zugriffssteuerungslisten unter Linux

Inhaltsverzeichnis

24.1. Vorteile von ACLs
24.2. Definitionen
24.3. Arbeiten mit ACLs
24.4. ACL-Unterstützung in Anwendungen
24.5. Weitere Informationen

Zusammenfassung

Dieses Kapitel gibt einen kurzen Einblick in die Hintergründe und Funktionsweise von POSIX-ACLs (Access Control Lists, Zugriffssteuerungslisten) für Linux-Dateisysteme. ACLs können als Erweiterung des traditionellen Berechtigungskonzepts für Dateisystemobjekte verwendet werden. Mit ACLs können Berechtigungen flexibler als mit dem traditionellen Berechtigungskonzept definiert werden.

Der Begriff POSIX-ACL suggeriert, dass es sich um einen echten Standard aus der POSIX-Familie (Portable Operating System Interface) handelt. Die entsprechenden Standardentwürfe POSIX 1003.1e und POSIX 1003.2c wurden aus mehreren Gründen zurückgezogen. ACLs unter vielen UNIX-artigen Betriebssystemen basieren allerdings auf diesen Entwürfen und die Implementierung der in diesem Kapitel beschriebenen Dateisystem-ACLs folgt diesen beiden Standards ebenfalls. Die Standards können unter http://wt.xpilot.org/publications/posix.1e/ eingesehen werden.

24.1. Vorteile von ACLs

Traditionell sind für jedes Dateiobjekt unter Linux drei Berechtigungsgruppen definiert. Diese Gruppen enthalten die Berechtigungen zum Lesen (r), Schreiben (w) und Ausführen (x) für den Eigentümer der Datei, die Gruppe und andere Benutzer. Zusätzlich können noch die Bits für set user id, set group id und das sticky-Bit gesetzt werden. Dieses schlanke Konzept ist für die meisten in der Praxis auftretenden Fälle völlig ausreichend. Für komplexere Szenarien oder erweiterte Anwendungen mussten Systemadministratoren früher eine Reihe von Tricks anwenden, um die Einschränkungen des traditionellen Berechtigungskonzepts zu umgehen.

In Situationen, in denen das traditionelle Konzept für Dateiberechtigungen nicht ausreicht, helfen ACLs. Sie ermöglichen es, einzelnen Benutzern oder Gruppen, bei denen es sich nicht um den ursprünglichen Eigentümer oder die ursprüngliche Eigentümergruppe handelt, Berechtigungen zuzuweisen. ACLs sind eine Funktion des Linux-Kernels und werden derzeit von ReiserFS, Ext2, Ext3, JFS und XFS unterstützt. Mithilfe von ACLs können komplexe Szenarien umgesetzt werden, ohne dass auf Anwendungsebene komplexe Berechtigungsmodelle implementiert werden müssen.

Ein prominentes Beispiel für die Vorzüge von ACLs ist der Austausch eines Windows-Servers gegen einen Linux-Server. Einige der angeschlossenen Arbeitsstationen können auch nach der Migration weiter unter Windows betrieben werden. Das Linux-System stellt den Windows-Clients Datei- und Druckdienste über Samba zur Verfügung. Da Samba ACLs unterstützt, können Benutzerberechtigungen sowohl auf dem Linux-Server als auch über eine grafische Benutzeroberfläche unter Windows (nur Windows NT und höher) konfiguriert werden. Über winbindd ist es sogar möglich, Benutzern, die nur in der Windows-Domäne existieren und über kein Konto auf dem Linux-Server verfügen, Berechtigungen zu gewähren.