Der Befehl setfacl wird verwendet, um die Berechtigungen zu ändern, die der ACL einer Datei oder eines Verzeichnisses zugeordnet sind. Der Befehl setfacl hat mehrere Optionen, von denen einige der gebräuchlichsten in der folgenden Tabelle beschrieben werden.
Option | Beschreibung |
---|---|
-R | ACL-Optionen für Verzeichnisse und deren Inhalt rekursiv festlegen. |
-s | Legen Sie die ACL eines Objekts fest und ersetzen Sie jede vorhandene ACL. |
-m | Bestehende ACL eines Objekts ändern. |
-x | Einträge aus einer bestehenden ACL entfernen. |
-b | Entfernen Sie alle ACL-Einträge (außer den Standardberechtigungen). |
Syntax
Die Syntax des setfacl-Befehls lautet:
# setfacl [-bR] [-mx {acl_spec}] {file/directory names}
Das Folgende ist ein Beispiel für die Änderung der ACL in einem Verzeichnis, in dem der Benutzer http Lesezugriff erhält:
setfacl -m u:http:r-- /home/directory
Wenn beim Ausführen des Befehls setfacl der folgende Fehler auftritt:
setfacl: command not found
Sie können versuchen, das folgende Paket gemäß Ihrer Wahl der Distribution zu installieren:
Verteilung | Befehl |
---|---|
Debian | apt-get install acl |
Ubuntu | apt-get install acl |
Alpin | apk acl hinzufügen |
Arch Linux | pacman -S acl |
Kali-Linux | apt-get install acl |
CentOS | yum install acl |
Fedora | dnf install acl |
Raspbian | apt-get install acl |
ACL entfernen
Der Befehl setfacl wird auch mit der Option -x verwendet, um die angewendete ACL für jeden Benutzer oder jede Gruppe zu entfernen. Der einzige Unterschied beim Entfernen von ACL zum Festlegen von ACL besteht darin, dass wir die Berechtigung beim Entfernen nicht angeben. Das folgende Beispiel veranschaulicht die Verwendung des Befehls setfacl zum Entfernen der ACL, die auf eine Datei mit dem Namen file1 für den Benutzer geel und die Gruppe lab angewendet wurde:
$ setfacl -x u:geek,g:lab file1
Um alle ACLs aus einer Datei oder einem Verzeichnis zu entfernen, können wir die Option -b verwenden, wie im folgenden Befehl gezeigt:
$ setfacl -b file1
setacl-Befehlsbeispiele
1. ACL einer Datei für Benutzer mit Lese- und Schreibzugriff ändern:
# setfacl -m u:username:rw file
2. Standard-ACL einer Datei für alle Benutzer ändern:
# setfacl -d -m u::rw file
3. ACL einer Datei für einen Benutzer entfernen:
# setfacl -x u:username file
4. Entfernen Sie alle ACL-Einträge einer Datei:
# setfacl -b file