Ü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