ACL ermöglicht eine Erweiterung hinsichtlich der Benutzer und Gruppen an einer Datei. Mit dem gebräuchlichem Schema unter Linux kann nur für einen Benutzer und eine Gruppe Rechte vergeben werden. Durch ACL wird dies auf weitere Benutzer und Gruppen erweitert. Es stellt keine neuen Rechtetypen zur Verfügung! Die beim Anlegen zu vergebenden Rechte können festgelegt und im Verzeichnisbaum nach unten vererbt werden.
Notwendig ist die Unterstützung durch das Dateisystem (bei den meisten gebräuchlichen gegeben) und die Option "acl" beim mounten des Dateisystems.
Eintrag in der fstab:
/dev/hda3 /home ext3 defaults,acl 0 0
ACLs werden mit dem Kommando setfacl vergeben und mit getfacl angezeigt.
Anzeige der Datei xntp.html:
-rw-r--r-- 1 rk users 17677 Jun 25 2003 xntp.html
Der Eigentümer rk hat Lese- und Schreibzugriff, die Gruppe users und alle anderen nur Lesezugriff.
Vergabe zusätzlicher Rechte (rwx) an User angela mit
setfacl -m u:angela:rwx xntp.html
Bei erneuter Anzeige weist ein "+" auf die zusätzlichen Rechte hin:
-rw-rwxr--+ 1 rk users 17677 Jun 25 2003 xntp.html
Beachte: Der Wert der Gruppenrechte entspricht nicht mehr den Rechten der Gruppe users, sonder den sogenannten mask-Rechten*1! Anzeige mittels getfacl:
# file: xntp.html
# owner: rk
# group: users
user::rw-
user:angela:rwx
group::r--
mask::rwx
other::r--
Hier sieht man das der Benutzer angela sowohl Lese- und Schreibrecht als auch das Recht zum ausführen der Datei erhalten hat. Würde die Maske nun auf rw- gesetzt, würde der Benutzer die Datei trotzdem nicht ausführen können.
Bei Verzeichnissen kann mit default Rechten angegeben werden, welche Rechte neu angelegte Dateien und Verzeichnisse erhalten.
Mit setfacl -R -m d:linuxseminar:rw linuxsem wird der Verzeichnisdatei "linuxseminar" und allen Unterverzeichnissen (-R) ein Defaultrechte (rw) für den Benutzer linuxseminar mitgegeben.
Die Anzeige mit getfacl linuxsem zeigt nun neben Einträgen für den Eigentümer (default:user::), sonstige Benutzer (default:user:linuxsem:), Hauptgruppe (default:group::) und sonstige Gruppen (default:group::) sowie den Sonstigen (other::) auch eine Default-Maske an. Diese Default-Maske gibt an welche Rechte ein Benutzer oder eine Gruppe maximal haben kann.
# file: linuxsem
# owner: rk
# group: users
user::rwx
user:linuxseminar:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:linuxseminar:rw-
default:group::r-x
default:mask::rwx
default:other::r-x
Diese Defaultrechte werden an neu angelegte Verzeichnisse vererbt!
*1 Der Wert mask gibt an welche Rechte ein Benutzer oder eine Gruppe maximal haben kann.