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
}}}

[[http://www.vanemery.com/Linux/ACL/linux-acl.html| Ausfuerlicher Artikel zum Thema ]] (en) Stand 2005