RHEL 7 – RHCSA-Hinweise (Spickzettel)
Die File Access Control Lists (FACLs) oder einfach ACLs sind die Liste zusätzlicher Benutzer/Gruppen und deren Berechtigungen für die Datei. Obwohl die standardmäßigen Dateiberechtigungen ihre Aufgaben perfekt erfüllen, können Sie nicht mehr als einem Benutzer oder einer Gruppe Berechtigungen für dieselbe Datei erteilen.
Wie man erkennt, ob eine Datei ACL angehängt hat
Der Befehl ls -l würde eine Ausgabe wie unten gezeigt erzeugen. Beachten Sie das + Zeichen am Ende der Berechtigungen. Dies bestätigt, dass der Datei eine ACL angehängt ist.
# ls -l -rw-r--r-+ 1 root root 0 Sep 19 14:41 file
ACLs anzeigen
Um detaillierte ACL-Informationen einer Datei anzuzeigen, verwenden Sie den Befehl getfacl. Wenn Sie genau sehen, haben die Benutzer sam und john einige zusätzliche Berechtigungen (hervorgehoben dargestellt). Die standardmäßigen Benutzer-/Gruppenberechtigungen werden mit „user::permission“ und „group::
“ angegeben
# getfacl /tmp/test # file: test # owner: root # group: root user::rw- user:john:rw- user:sam:rwx group::r-- mask::rwx other:---
Wenn Sie dagegen die ACLs einer Datei mit „keine ACLs“ überprüfen, werden die zusätzlichen „user:“-Zeilen und die „mask“-Zeile nicht angezeigt und die Standarddateiberechtigungen werden angezeigt. :
# getfacl test # file: test # owner: root # group: root user::rw- group::r-- other::r--
Erstellen und Verwalten von FACLs
Der Befehl setfacl wird verwendet, um ACL für die angegebene Datei festzulegen. Um dem Benutzer john Zugriff auf die Datei /tmp/test zu geben:
# setfacl -m u:john:rw /tmp/test
Die Option -m weist setfacl an, ACLs für die Datei(en) zu ändern, die in der Befehlszeile erwähnt werden. Anstelle von Benutzer john können wir eine Gruppe haben, die eine bestimmte Berechtigung für die Datei hat:
# setfacl -m g:accounts:rw /tmp/test
FACLs für mehrere Benutzer und Gruppen können auch mit einem einzigen Befehl festgelegt werden:
# setfacl -m u:john:rw,g:accounts:rwx /tmp/test
Standard-ACLs
Indem Sie eine Standard-ACL festlegen, bestimmen Sie die Berechtigungen, die für alle neuen Elemente festgelegt werden, die im Verzeichnis erstellt werden. Aber die Berechtigungen bestehender Dateien und Unterverzeichnisse bleiben gleich.
So erstellen Sie eine Standard-FACL für ein Verzeichnis:
# setfacl -m default:u:john:rw /accounts
Beachten Sie die Standardberechtigungen im getfacl-Befehl :
# getfacl accounts/ # file: accounts/ # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:user:john:rw- default:group::r-x default:mask::rwx default:other::r-x
FACLs entfernen
Verwenden Sie zum Entfernen von ACLs den Befehl setfacl mit der Option -x :
# setfacl -x u:john /tmp/test
Der obige Befehl entfernt die ACL für den Benutzer john aus der Datei /tmp/test. Die ACLs für andere Benutzer/Gruppen, sofern vorhanden, bleiben unberührt. Um alle einer Datei zugeordneten ACLs zu entfernen, verwenden Sie die Option -b mit setfacl :
# setfacl -b /tmp/testSie können auch ein Backup von ACLs mit getfacl erstellen und ACLs mit dem Befehl setfacl wiederherstellen. Verwenden Sie zum Erstellen der Sicherung getfacl -R /dir> file.acls. Um die Einstellungen aus der Sicherungsdatei wiederherzustellen, verwenden Sie setfacl –restore=file.acl