Inhaltsverzeichnis
Zusammenfassung
Dieses Kapitel gibt einen kurzen Einblick in die Hintergründe und Funktionsweise von POSIX ACLs für Linux-Dateisysteme. Sie erfahren, wie das traditionelle Rechtekonzept für Dateisystemobjekte mit Hilfe von ACLs (Access Control Lists) erweitert wird und welche Vorteile dieses Konzept bietet.
![]() | POSIX ACLs |
|---|---|
Der Ausdruck POSIX ACL suggeriert, dass es sich um einen echten Standard aus der POSIX (Portable Operating System Interface) Familie handelt. Aus verschiedenen Gründen wurden die betreffenden Standardentwürfe POSIX 1003.1e und POSIX 1003.2c zurückgezogen. ACLs unter vielen UNIX-artigen Betriebssystemen basieren allerdings auf diesen Entwürfen. Die in diesem Kapitel beschriebene Implementierung von Dateisystem ACLs folgt den Inhalten dieser beiden Dokumente, die Sie unter folgender URL einsehen können: http://wt.xpilot.org/publications/posix.1e/ | |
Traditionell sind für jedes Dateiobjekt unter Linux drei Sets von Berechtigungen definiert. Diese Sets geben die Lese- (r), Schreib- (w) und Ausführungsrechte (x) für die drei Benutzerklassen Eigentümer der Datei (engl. owner), Gruppe (engl. group) und „Rest der Welt“ (engl. other) wieder. Zusätzlich können noch die set user id, set group id und sticky Bits gesetzt werden. Mehr zu diesem Thema finden Sie im Benutzerhandbuch im Abschnitt Benutzer und Zugriffsrechte.
Für die meisten in der Praxis auftretenden Fälle reicht dieses schlanke Konzept völlig aus. Für komplexere Szenarien oder fortgeschrittenere Anwendungen mussten Systemadministratoren zuvor eine Reihe von Tricks anwenden, um die Einschränkungen des traditionellen Rechtekonzepts zu umgehen.
In Situationen, in denen das traditionelle Dateirechte-Konzept nicht ausreicht, helfen ACLs. Sie erlauben es, einzelnen Benutzern oder Gruppen Rechte zuzuweisen, auch wenn diese nicht mit dem Eigentümer oder der Gruppe einer Datei übereinstimmen.
Access Control Lists sind ein Feature des Linux-Kernels und werden zur Zeit von ReiserFS, Ext2, Ext3, JFS und XFS unterstützt. Mit ihrer Hilfe können komplexe Szenarien umgesetzt werden, ohne dass auf Applikationsebene komplexe Rechtemodelle implementiert werden müssten.
Ein prominentes Beispiel für die Vorzüge von Access Control Lists ist der Austausch eines Windows-Servers gegen einen Linux-Server. Manche der angeschlossenen Workstations werden auch nach dem Umstieg weiter unter Windows betrieben werden. Das Linux-System bietet den Windows-Clients via Samba Datei- und Druckserver-Dienste an.
Da Samba Access Control Lists unterstützt, können Benutzerrechte sowohl auf dem Linux-Server als auch über eine grafische Benutzeroberfläche unter Windows (nur Windows NT und höher) eingerichtet werden. Über den winbindd ist es sogar möglich, Benutzern Rechte einzuräumen, die nur in der Windows-Domain existieren und über keinen Account auf dem Linux-Server verfügen. Auf der Serverseite können Sie die Access Control Lists mithilfe von getfacl und setfacl bearbeiten.