Startseite > Paket- & Systemverwaltung > setfacl

setfacl: Setzen von Dateizugriffssteuerungslisten (ACLs)

Der Befehl `setfacl` wird verwendet, um Zugriffssteuerungslisten (ACLs) für Dateien und Verzeichnisse festzulegen. Er ermöglicht es, über das traditionelle Unix-Berechtigungsmodell (Besitzer, Gruppe, Andere) hinauszugehen und spezifischen Benutzern oder Gruppen granulare Lese-, Schreib- und Ausführungsberechtigungen zu erteilen oder zu entziehen. Dies ermöglicht eine flexible Verwaltung komplexer Berechtigungsanforderungen.

Übersicht

`setfacl` ermöglicht eine flexiblere Berechtigungsverwaltung für Dateisystemobjekte. Sie können einzelnen Benutzern oder Gruppen Lese-, Schreib- und Ausführungsberechtigungen erteilen oder entziehen und Standard-ACLs festlegen, sodass neue Dateien oder Verzeichnisse automatisch ACLs erben. Dies ist besonders nützlich, wenn eine differenzierte Berechtigungsverwaltung in Umgebungen erforderlich ist, in denen mehrere Benutzer zusammenarbeiten.

Hauptfunktionen

  • Festlegen individueller Berechtigungen für bestimmte Benutzer/Gruppen
  • Festlegen und Vererben von Standard-ACLs
  • Bearbeiten und Entfernen vorhandener ACLs
  • Rekursives Anwenden von Berechtigungen

Wichtige Optionen

`setfacl` bietet verschiedene Optionen zur präzisen Steuerung von ACLs. Hier sind einige der am häufigsten verwendeten Optionen.

ACLs festlegen und ändern

ACLs entfernen

Sonstiges

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`setfacl` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Zeigt verschiedene Szenarien für die Verwaltung von ACLs für Dateien und Verzeichnisse mit dem Befehl `setfacl`.

Lese-/Schreibberechtigungen für einen bestimmten Benutzer erteilen

setfacl -m u:user1:rw testfile.txt

Erteilt dem Benutzer `user1` Lese- (r) und Schreibberechtigungen (w) für die Datei `testfile.txt`.

Nur-Lese-Berechtigungen für eine bestimmte Gruppe erteilen

setfacl -m g:groupA:r shared_dir

Erteilt der Gruppe `groupA` Leseberechtigungen (r) für das Verzeichnis `shared_dir`.

Standard-ACL für ein Verzeichnis festlegen

setfacl -m d:u:user2:rwx project_data

Legt eine Standard-ACL für das Verzeichnis `project_data` fest, sodass der Benutzer `user2` Lese-/Schreibberechtigungen für neu erstellte Dateien und Lese-/Schreib-/Ausführungsberechtigungen für neu erstellte Verzeichnisse erhält.

ACL rekursiv anwenden

setfacl -R -m u:user3:r data_archive

Erteilt dem Benutzer `user3` rekursiv Leseberechtigungen für das Verzeichnis `data_archive` und alle darin enthaltenen Dateien und Unterverzeichnisse.

ACL-Eintrag eines bestimmten Benutzers entfernen

setfacl -x u:user1 testfile.txt

Entfernt den ACL-Eintrag für den Benutzer `user1` von der Datei `testfile.txt`.

Alle erweiterten ACL-Einträge entfernen

setfacl -b config_dir

Entfernt alle erweiterten ACL-Einträge aus dem Verzeichnis `config_dir` (Standardberechtigungen bleiben erhalten).

Standard-ACL-Einträge entfernen

setfacl -k project_data

Entfernt alle festgelegten Standard-ACL-Einträge aus dem Verzeichnis `project_data`.

Installation

Der Befehl `setfacl` ist normalerweise Teil des Pakets `acl`. Auf den meisten Linux-Distributionen ist er standardmäßig installiert. Wenn Sie den Befehl nicht finden können, können Sie ihn mit den folgenden Befehlen installieren.

Debian/Ubuntu-basierte Systeme

sudo apt update && sudo apt install acl

Installiert das Paket `acl` mit dem APT-Paketmanager.

RHEL/CentOS/Fedora-basierte Systeme

sudo yum install acl
# oder
sudo dnf install acl

Installiert das Paket `acl` mit dem YUM- oder DNF-Paketmanager.

Tipps & Hinweise

Tipps und Hinweise zur effektiven Verwendung von `setfacl` und zur Vermeidung potenzieller Probleme.

Verwendung mit getfacl

Nachdem Sie ACLs mit `setfacl` festgelegt haben, ist es wichtig, die aktuell festgelegten ACLs mit dem Befehl `getfacl <Datei/Verzeichnis>` zu überprüfen. Dies hilft zu verifizieren, ob die Berechtigungen wie beabsichtigt angewendet wurden.

  • Überprüfungsbefehl: getfacl <Datei/Verzeichnis>

Verständnis der Maskenberechtigungen

ACL-Einträge können eine 'Masken'-Eintrag enthalten. Die Maske definiert die maximalen effektiven Berechtigungen, die für alle Benutzer- und Gruppen-ACL-Einträge gelten. Das bedeutet, wenn die einem bestimmten Benutzer oder einer Gruppe erteilten Berechtigungen höher sind als die Maskenberechtigungen, werden die tatsächlich angewendeten Berechtigungen durch die Maske eingeschränkt. Wenn Sie ACLs mit `setfacl` festlegen, kann die Maske automatisch angepasst werden, daher ist es ratsam, dies mit `getfacl` zu überprüfen.

  • Rolle: Begrenzt die maximalen effektiven Berechtigungen für alle Benutzer-/Gruppen-ACL-Einträge
  • Überprüfung: Überprüfen Sie den Abschnitt 'mask::' in der Ausgabe von getfacl

Interaktion mit Standardberechtigungen

Dateien oder Verzeichnisse, auf die ACLs angewendet wurden, zeigen ein '+' am Ende der Berechtigungszeichenkette an, wenn sie mit `ls -l` angezeigt werden. Dies zeigt an, dass zusätzliche ACLs zusätzlich zu den Standard-Unix-Berechtigungen angewendet wurden. ACLs ergänzen das Standard-Unix-Berechtigungsmodell, können aber manchmal die Komplexität erhöhen und sollten daher mit Bedacht verwendet werden.

  • Anzeige der ACL-Anwendung: Ein '+' am Ende der Berechtigungszeichenkette in der Ausgabe von ls -l

Vorsicht bei rekursiver Anwendung (-R)

Seien Sie vorsichtig, wenn Sie ACLs mit der Option `-R` rekursiv anwenden. Insbesondere in Kombination mit `-b` (alle ACLs entfernen) können die ACLs aller Unterdateien und -verzeichnisse unbeabsichtigt entfernt werden. Es wird empfohlen, die Ergebnisse immer zuerst mit der Option `--test` zu überprüfen oder wichtige Daten vor der Anwendung zu sichern.

  • Empfehlung: Vorabprüfung mit der Option --test, Sicherung wichtiger Daten vor der Anwendung

Gleiche Kategorie Befehle