Startseite > Paket- & Systemverwaltung > acl

ACL: Verwaltung von Access Control Lists

ACL (Access Control List) ist eine Funktion des Linux-Systems, die es ermöglicht, granulare Berechtigungen für Dateien und Verzeichnisse festzulegen. Zusätzlich zu den herkömmlichen Benutzer-, Gruppen- und sonstigen Berechtigungen können Sie Lese-, Schreib- und Ausführungsberechtigungen für bestimmte Benutzer oder Gruppen explizit gewähren oder entziehen. `acl` selbst ist kein Befehl, sondern wird hauptsächlich über die Befehle `getfacl` und `setfacl` verwaltet.

Übersicht

ACLs bieten eine flexiblere Berechtigungsverwaltung als das traditionelle Unix-Berechtigungsmodell (Besitzer, Gruppe, Andere). Sie können explizit Zugriffsrechte für Dateien oder Verzeichnisse für bestimmte Benutzer oder Gruppen festlegen. Dies ist nützlich, um komplexe Berechtigungsanforderungen in Umgebungen zu erfüllen, in denen mehrere Benutzer Dateien gemeinsam nutzen.

Hauptmerkmale

  • Granulare Zugriffskontrolle
  • Berechtigungen für bestimmte Benutzer/Gruppen
  • Funktioniert mit Standardberechtigungen (umask)
  • Ermöglicht das Festlegen von Standard-ACLs für Verzeichnisse

Installation

Die ACL-Funktionalität selbst ist in den Linux-Kernel integriert, aber um die Befehle `getfacl` und `setfacl` nutzen zu können, muss das Paket `acl` installiert sein. Auf den meisten Linux-Distributionen ist es möglicherweise nicht standardmäßig installiert.

Debian/Ubuntu

sudo apt update && sudo apt install acl

Befehl zur Installation des `acl`-Pakets auf Debian- oder Ubuntu-basierten Systemen.

CentOS/RHEL/Fedora

sudo yum install acl

Befehl zur Installation des `acl`-Pakets auf CentOS-, RHEL- oder Fedora-basierten Systemen.

Anwendungsbeispiele

ACLs werden hauptsächlich über die Befehle `getfacl` (ACL abfragen) und `setfacl` (ACL setzen) verwaltet. Hier sind einige gängige Anwendungsbeispiele.

ACL einer Datei abfragen

getfacl my_file.txt

Verwenden Sie den Befehl `getfacl`, um die aktuelle ACL einer bestimmten Datei oder eines Verzeichnisses anzuzeigen.

Lese-/Schreibberechtigungen für einen bestimmten Benutzer gewähren

setfacl -m u:user1:rw my_file.txt

Verwenden Sie die Option `setfacl -m`, um dem Benutzer 'user1' Lese- (r) und Schreibberechtigungen (w) für 'my_file.txt' zu gewähren.

Ausführungsberechtigungen für eine bestimmte Gruppe gewähren

setfacl -m g:dev_group:x my_script.sh

Verwenden Sie die Option `setfacl -m`, um der Gruppe 'dev_group' Ausführungsberechtigungen (x) für 'my_script.sh' zu gewähren.

ACL-Eintrag entfernen

setfacl -x u:user1 my_file.txt

Verwenden Sie die Option `setfacl -x`, um den ACL-Eintrag für 'user1' zu entfernen.

Standard-ACL für ein Verzeichnis festlegen

setfacl -m d:u:user2:rwx my_directory/

Legen Sie eine Standard-ACL für ein Verzeichnis fest, damit neu erstellte Dateien oder Verzeichnisse diese ACL erben. Verwenden Sie das Präfix `d:`.

Alle ACLs entfernen

setfacl -b my_file.txt

Verwenden Sie die Option `setfacl -b`, um alle erweiterten ACL-Einträge einer Datei oder eines Verzeichnisses zu entfernen und zu den traditionellen Berechtigungen zurückzukehren.

Tipps & Hinweise

Bei der Verwendung von ACLs ist es wichtig, die Interaktion mit dem bestehenden Berechtigungssystem zu verstehen.

ACLs und traditionelle Berechtigungen

  • Die Ausgabe von `ls -l` für Dateien/Verzeichnisse mit ACLs zeigt am Ende der Berechtigungszeichenkette ein `+`-Symbol an.
  • ACLs gewähren zusätzliche Berechtigungen über die traditionellen Berechtigungen (Besitzer, Gruppe, Andere). Der `mask`-Eintrag beschränkt die maximalen effektiven Berechtigungen der ACL.
  • Eine zu komplexe ACL-Konfiguration kann die Berechtigungsverwaltung erschweren. Verwenden Sie sie daher nur bei Bedarf und mit Bedacht.

Verständnis des Mask-Eintrags

Wenn eine ACL gesetzt wird, wird der `mask`-Eintrag automatisch erstellt oder aktualisiert. Diese Maske definiert die maximalen effektiven Berechtigungen, die für Benutzer (u:), Gruppen (g:), benannte Benutzer (u:name:) und benannte Gruppen (g:name:) gewährt werden. Selbst wenn Sie mehr Berechtigungen als in der Maske angegeben gewähren, werden diese durch die Maske begrenzt. Sie können die Maske manuell festlegen, z. B. mit `setfacl -m m::rw`.

Dateisystemunterstützung

Um ACLs nutzen zu können, muss das Dateisystem ACLs unterstützen. Die meisten modernen Linux-Dateisysteme wie ext2, ext3, ext4 und XFS unterstützen ACLs. Möglicherweise müssen Sie sicherstellen, dass die Option `acl` beim Mounten des Dateisystems aktiviert ist (z. B. in `/etc/fstab`).


Gleiche Kategorie Befehle