Herkömmliche Linux-Zugriffsberechtigungen für Dateien und Verzeichnisse bestehen aus dem Festlegen einer Kombination aus Lese-, Schreib- und Ausführungsberechtigungen für den Besitzer der Datei oder des Verzeichnisses, ein Mitglied der Gruppe, der die Datei oder das Verzeichnis zugeordnet ist, und alle anderen (andere). Zugriffskontrolllisten (ACLs) bieten einen feinkörnigeren Zugriffskontrollmechanismus als diese herkömmlichen Linux-Zugriffsberechtigungen.
ACL installieren
Bevor Sie ACLs für eine Datei oder ein Verzeichnis verwenden, installieren Sie das acl-Paket:
# yum install acl
ACL auf einem Dateisystem konfigurieren
Das Dateisystem, das die Datei oder das Verzeichnis enthält, muss ebenfalls mit ACL-Unterstützung gemountet werden. Das Folgende ist die Syntax zum Mounten eines lokalen ext3-Dateisystems mit ACL-Unterstützung:
# mount -t ext3 -o acl [device-name] [mount-point]
Zum Beispiel:
# mount -t ext3 -o acl /dev/mapper/VolGroup00-LogVol00 /data
Wenn die Partition in der Datei /etc/fstab aufgeführt ist, schließen Sie die acl-Option ein:
# vi /etc/fstab LABEL=/data /data ext3 acl 0 0
ACL-Regeln
Eine ACL besteht aus einer Reihe von Regeln, die angeben, wie ein Benutzer oder eine Gruppe auf die Datei oder das Verzeichnis zugreifen kann, mit dem die ACL verknüpft ist. Es gibt zwei Arten von ACL-Regeln:
- auf ACLs zugreifen :Zugriffsinformationen für eine einzelne Datei oder ein einzelnes Verzeichnis angeben
- Standard-ACLs :Bezieht sich nur auf ein Verzeichnis. Es gibt Standardzugriffsinformationen für alle Dateien innerhalb des Verzeichnisses an, die keine Zugriffs-ACL haben.
ACLs für Dateien anzeigen
Verwenden Sie das getfacl Dienstprogramm zum Anzeigen der ACL einer Datei. Wenn eine Datei keine ACL hat, zeigt sie die gleichen Informationen wie „ls –l“ an, wenn auch in einem anderen Format. Beispielsweise hat die Datei test keine ACL:
# ls –l test -rw-rw-r-- 1 oracle oracle 25 Mar 5 10:10 test
Beispiel getfacl-Ausgabe der Testdatei:
# getfacl test # file: test # owner: oracle # group: oracle user::rw- group::rw- other::r--
ACLs für Dateien konfigurieren
Verwenden Sie das setfacl Dienstprogramm zum Hinzufügen oder Ändern einer oder mehrerer Regeln in der ACL einer Datei. Die Syntax lautet:
# setfacl -m [rules] [files]
Die Regeln haben folgende Form:
- u:name:permissions :Legt die Zugriffs-ACL für einen Benutzer fest (Benutzername oder UID)
- g:name:permissions :Legt die Zugriffs-ACL für die Gruppe fest (Gruppenname oder GID)
- m:Berechtigungen :Legt die wirksame Rechtemaske fest. Dies ist die Vereinigung aller Berechtigungen der besitzenden Gruppe und aller Benutzer- und Gruppeneinträge.
- o:permissions :Legt die Zugriffs-ACL für alle anderen (andere) fest
Die Berechtigungen sind die traditionellen r, w und x für Lesen, Schreiben bzw. Ausführen. Das folgende Beispiel fügt der ACL für die Testdatei eine Regel hinzu, die dem Oracle-Benutzer Lese- und Schreibberechtigungen für diese Datei erteilt:
# setfacl -m u:oracle:rwx test
Die Ausgabe von getfacl enthält die ACL-Regel:
# getfacl test # file: test # owner: oracle # group: oracle user::rw- user:oracle:rwx group::rw- mask::rwx other::r--
Wenn eine Datei eine ACL hat, zeigt „ls –l“ ein Pluszeichen (+ ) nach den Berechtigungen:
# ls –l test -rw-rwxr--+ 1 oracle oracle 25 Mar 5 10:10 test
ACLs von Dateien entfernen
Verwenden Sie das –x Option ohne Angabe von Berechtigungen zum Entfernen von Regeln für einen Benutzer oder eine Gruppe.
# setfacl –x u:oracle test
Um die ACL selbst zu entfernen, verwenden Sie -b Möglichkeit:
# setfacl –b test
Festlegen der Standard-ACLs
Um eine Standard-ACL festzulegen, fügen Sie d: hinzu vor der Regel und geben Sie statt eines Dateinamens ein Verzeichnis an:
# setfacl -m d:o:rx /shareUNIX/Linux :Grundlagen der Zugriffssteuerungslisten (ACLs)