Posix ACLs erweitern die normalen DateiRechte.
Regeln
Normale Dateirechte
- `user::rwx`
- Rechte des Besitzers.
- `group::rwx`
- Rechte der Gruppe.
- `other::rwx`
- Rechte aller anderen.
Erweiterte Dateirechte
- `user:<User>:rwx'
- Rechte des definierten Benutzers.
- `group:<Gruppe>:rwx`
- Rechte der definierten Gruppe.
- `mask::rwx`
Effective rights mask
Spezielle Rechte für Verzeichnise
- `default:<Regel>`
Neue Verzeichnisse/Dateien bekommen diese Rechten beim Erstellen zugewiesen. Dies überschreibt auch die umask.
Voraussetzungen
Um POSIX ACLs nutzen zu können, müssen folgende Voraussetzungen erfüllt sein:
Das Dateisystem muss ACLs unterstützen. Beispiele sind ext2 und ext3. Ob ein Dateisystem ACLs unterstützt, erfährt man über die Man-Seite von mount (http://linux.die.net/man/8/mount).
- Der Dateisystemtreiber muss ACLs unterstützen. Bspw. unterstützt NTFS zwar ACLs, mit aktuellen Implementierungen von NTFS-Treibern für Linux ist es jedoch nicht möglich, diese ACLs zu benutzen.
- Das Dateisystem muss mit den Optionen acl und user_xattr eingebunden worden sein.
Ein Beispiel wie man ein Dateisystem mit ACL-Unterstützung richtig einbindet:
mount /dev/hda2 /home -o acl,user_xattr
Abfragen und Setzen von Posix ACLs
Das Abfragen geht mit
getfacl Datei
Das Setzen funktioniert mit dem Befehl setfacl. Die Syntax lautet vereinfacht:
setfacl -m user|group|mask:[name:]recht Datei
"user", "group" und "mask" können jeweils mit "u", "g" oder "m" abgekürzt werden. Bei name verwendet man den Namen des Benutzers oder der Gruppe, für den/die ein Recht gesetzt werden soll. Wird name ausgelassen, wird das Standarddateirecht gesetzt (Auswirkung gleich wie bei chmod). Bei recht kann eine Kombination aus "r", "w" und "x" (lesen/schreiben/ausführen, analog zu den Standardrechten) verwendet werden.
Beispiel:
setfacl -m u:foo:rw stromverbrauch.ods
Der Benutzer "foo" bekommt das Lese- und Schreibrecht für die Datei "stromverbrauch.ods".
Das Löschen von Berechtigungen wird ebenfalls mit dem Befehl setfacl durchgeführt. Die Syntax lautet:
setfacl -x user|group|mask:[name] Datei
Ausfuerlicher Artikel zum Thema (en) Stand 2005