SuSE Linux: Version 8.1
SuSE Linux 8.1 beinhaltet erstmals Unterstützung für POSIX Access Control Lists (ACLs). Dieser Artikel beschreibt, welche Dokumentation es zu ACLs gibt, wie man ACLs aktivieren kann, und worauf man dabei achten sollte.
POSIX Access Control Lists sind eine Erweiterung des traditionellen UNIX-Berechtigungsschemas. Es können damit zusätzlich zu den Berechtigungen für den Besitzer, die Besitzergruppe und für Andere auch Berechtigungen für weitere Benutzer und Gruppen angegeben werden. Ausserdem kann definiert werden welche Berechtigungen neu erzeugte Dateien erhalten sollen.
Access Control Lists werden erstmals in SuSE Linux 8.1 unterstützt. Einige beschriebene Features sind nur nach dem Einspielen der neuesten Update-Pakete verfügbar oder stabil. Achten Sie daher bitte darauf, dass sich der Kernel und alle Pakete, die auf Ihrem System installiert sind, auf dem aktuellen Stand befinden. Das Kapitel über Yast2 in Benutzerhandbuch beschreibt die dafür nötigen Schritte.
SuSE Linux 8.1 enthält ACL-Unterstützung auf den Dateisystemen ext2 sowie ext3. Das aktuelle Kernel-Update ("Offizieller Update Kernel für SuSE Linux 8.1" (http://sdb.suse.de/de/sdb/html/81_update_kernel.html)) enthält ACLs auch auf reiserfs, und stabilisiert die ACL-Untertsützung für xfs und jfs.
In der Standardeinstellung sind ACLs auf ext2, ext3 und reiserfs deaktiviert. Aktiviert werden sie durch die Mount-Option "acl", die in die Dateisystemtabelle /etc/fstab für das entsprechende Dateisystem eingetragen werden muss (siehe dazu den SDB-Artikel "Mounten, Partitionen und Dateisysteme konfigurieren" (http://sdb.suse.de/de/sdb/html/maddin_fstab.html) und die mount(8) Manual Page). Die Dateisysteme jfs und xfs kennen diese Mount-Option nicht; dort sind ACLs immer aktiviert.
Die Grundberechtigungen für den Besitzer, die Besitzergruppe und für andere werden auch als minimale ACL bezeichet. Es können darüber hinaus auch noch Berechtigungen für weitere Benutzer oder Gruppen existieren. Eine ACL, in der es ausser den erforderlichen drei weitere Einträge gibt, nennt man erweiterte ACL.
Dateien mit erweiterten Berechtigungen kann man daran erkennen, dass der Befehl "ls -l" ein "+" hinter den Berechtigungen anzeigt. Der Befehl "getfacl" (getfacl(1)) zeigt die gesamten ACLs einer Datei an. Mit dem Befehl "setfacl" (setfacl(1)) können ACLs verändert werden. Ausserdem kopiert der Befehl "cp -p" auch ACLs von den Quell- zu den Zieldateien.
Sobald ACLs aktiviert sind, können die Berechtigungen, die durch ACLs definiert sind, in Windows NT/2000/XP wie die Berechtigungen auf Windows NTFS-Laufwerken bearbeitet werden. Dazu müssen keine Veränderungen an Windows vorgenommen werden. Samba mit ACLs kann also alle wesentlichen Eigenschaften von Windows Dateiservern abbilden. Die Unterschiede zwischen der Darstellung von Windows- und ACL-Berechtigungen sind eher gering, sodass sich Windows-Benutzer in einem gewohnten Umfeld wiederfinden.
Die Berechtigungen, die in ACLs definiert sind, werden in SuSE Linux 8.1 ebenfalls auf über NFS freigegebenen Pfaden eingehalten. Ältere NFS-Clients (NFSv2 und NFSv3-Clients vor SuSE Linux 8.1) überprüfen allerdings die Berechtigungen nicht völlig richtig. Das kann in bestimmten Situationen dazu führen, dass ältere NFS-Clients Benutzern Lesezugriff auf zwischengespeicherte ("gecachete") Daten gestatten, die diese Benutzer normalerweise nicht lesen dürften. In keinem Fall erhalten Benutzer unerwünschterweise Schreibrechte. Mit SuSE Linux 8.1, oder solange keine ACLs eingesetzt werden, tritt dieses Problem nicht auf.
Um diesen Effekt auf älteren NFS-Clients auszuschliessen, kann auf Serverseite der zusätzliche Modulparameter nfs_permission_mode des Moduls nfsd.o auf 1 gesetzt werden ("options nfsd nfs_permission_mode=1" in /etc/modules.conf, bzw. händisches Laden des Moduls mit "insmod nfsd nfs_permission_mode=1"). Das hat den Effekt, dass der Client restriktivere Berechtigungen zu sehen bekommt, als eigentlich auf dem Server definiert sind.
Aktuelle NFS-Clients (SuSE Linux 8.1) senden mit NFSv3 Anfragen zur Überprüfung von Berechtigungen an den Server. Ältere Clients treffen gewisse Zugriffsentscheidungnen lokal, ohne den Server zu befragen. In bestimmten Fällen ist bekannt, dass ein NFS-Pfad keine speziellen Berechtigungen enthält (keine ACLs), und dass somit der alte Mechanismus zur Rechteüberprüfung ausreicht. In diesem speziellen Fall kann der NFS-Pfad mit der Mount-Option "noacl" montiert ("gemountet") werden. Danach kann der Client Zugriffsentscheidungen über zwischengespeicherte Daten wieder selbst treffen.
Bitte beachten Sie dass ACLs momentan nicht über NFS angezeigt oder verändert werden können; dieses Feature wird erst in der nächsten Version von SuSE Linux vorhanden sein. Das "getfacl"-Utility liefert in diesem Fall die drei Einträge der minimalen ACL; "setfacl" schlägt mit der Fehlermeldung "Die Operation wird nicht unterstützt" ("Operation not supported") fehl.
ACLs können momentan nur im pax-Format gesichert werden (pax ist das Nachfolgeformat von ustar, dem Sicherungsformat von tar, und zu diesem weitgehend rückwärtskompatibel). Der tar-Clone "star" unterstützt pax mit den für ACLs notwendigen Erweiterungen. Andere Backup-Utilities wie GNU tar, dump, etc. sichern ACLs nicht. Falls Sie ACLs sichern wollen, "star" für Sie jedoch keine gangbare Variante darstellt, kann mit "getfacl --skip-base -R <dir>" ein Klartext-Abzug aller erweiterten ACLs auf einem Dateisystem gemacht werden, der bei Bedarf mit "setfacl --restore" wiederhergestellt werden kann.
Wir arbeiten momentan an ausführlicher Dokumentation zum Thema Access Control Lists. Bis diese verfügbar ist, können Sie sich bei folgenden Quellen informieren. Dazu noch ein Warnhinweis: Es gibt verschiedene ACL-Systeme, die mit POSIX ACLs nicht viel zu tun haben (CISCO, Squid, AFS, NFSv4, ...).
Allgemeines: http://acl.bestbits.at (nicht ganz aktuell).
Benutzung von ACLs: getfacl(1) und setfacl(1) Manual Pages.
Programmieren mit ACLs: acl(5) Manual Page.
Verwendung von ACLs unter Solaris: Sun World Online (SWOL-08-1996), ein Artikel des Forschungszentrums Jülich.
SDB-81_acl
)