Ich möchte die ACL beispielsweise für den Ordner /tmp/test wie folgt festlegen:
Der Besitzer von /tmp/test ist der Benutzer „gaspar“, Mitglied der Gruppe „testgroup“.
Der Benutzer „testuser“ ist auch Mitglied der Gruppe „testgroup“, und ich möchte nur diesem Benutzer + Besitzer (Benutzer „gaspar“) rwx-Berechtigungen erteilen.
Außerdem muss ich für alle neu erstellten Dateien/Verzeichnisse innerhalb von /tmp/test automatisch dieselbe ACL festlegen.
Wenn ich setfacl wie folgt einstelle:
setfacl -Rdm u:testuser:rwx,g:testgroup:-,o::- /tmp/test/
getfacl -p /tmp/test/
erteilt Berechtigungen:
# file: /tmp/test/
# owner: gaspar
# group: testgroup
user::rwx
group::---
other::---
default:user::rwx
default:user:testuser:rwx
default:group::---
default:group:testgroup:---
default:mask::rwx
default:other::---
Und dann hat der Benutzer „testuser“ keine Berechtigungen für den Ordner /tmp/test. Können Sie bitte sagen, wo das Problem liegt und was ich korrigieren soll?
Wenn ich die ACL wie folgt einstelle (ohne die Option „d“), hat der Benutzer „testuser“ die erforderlichen Berechtigungen, aber neu erstellte Dateien/Verzeichnisse haben offensichtlich nicht die gleiche ACL:
setfacl -Rm u:testuser:rwx,g:testgroup:-,o::- /tmp/test/
getfacl -p /tmp/test/
# file: /tmp/test/
# owner: gaspar
# group: testgroup
user::rwx
user:testuser:rwx
group::---
group:testgroup:---
mask::rwx
other::---
Jeder Ratschlag ist willkommen!
Antwort1
Auf Ihrem System /tmp
verschwinden die Dateien beim Neustart, richtig? Vielleicht ist dies kein guter Ort für eine dauerhafte Lösung. Wenn Sie eine ACL für ein Verzeichnis festlegen, die die ACL auf alle neuen Dateisystemobjekte im Verzeichnis anwenden soll, denken Sie daran, zwei Masken festzulegen: (1) die Maske für das Verzeichnis selbst und (2) die Standardmaske (für alle neuen Dateisystemobjekte).
setfacl -m u::rwx,g::r-x,o::--- /tmp/test
setfacl -d -m u::rwx,g::r-x,o::--- /tmp/test
Oben -m
ist der Schalter die Maske für /tmp/test
, und der -d
Schalter macht die Maske zur Standardmaske für alle neuen Dateisystemobjekte im selben Verzeichnis. Er entspricht 0750. Oktalwerte können ebenfalls verwendet werden.
Die Benutzer-, Gruppen- und anderen Masken funktionieren auf die gleiche Weise: g:groupname:---
oder in Kombination: u:username:---,g:groupname:---,o::---
. Wenn Sie keinen Benutzernamen oder Gruppennamen angeben, wird die Maske auf den aktuellen Benutzer-/Gruppenbesitz angewendet.
Beachten Sie, dass nicht jede Software ACLs unterstützt. Beispielsweise sind sie noch nicht allen SFTP/SCP-Clients bekannt.
Antwort2
Dies funktioniert wie es sollte.
man acl
hat zu Standard-ACLs folgendes zu sagen:
ACL-TYPEN
Man kann sich vorstellen, dass jedem Objekt eine ACL zugeordnet ist, die den freien Zugriff auf dieses Objekt regelt; diese ACL wird als Zugriffs-ACL bezeichnet. Darüber hinaus kann ein Verzeichnis eine zugeordnete ACL haben, dieregelt die anfängliche Zugriffs-ACL für Objekte, die in diesem Verzeichnis erstellt werden; diese ACL wird bezeichnet alsStandard-ACL.
(Hervorhebung von mir)
Mit Ihrer ACL haben Sie angegeben, dass nur der Eigentümer RWX-Berechtigungen für das Verzeichnis hat. Die Standard-ACL für das Verzeichnis gibt Folgendes an:
- Die ACL aller darin erstellten Dateien wird so eingestellt, dass sie mit der Standard-ACL des übergeordneten Verzeichnisses übereinstimmt.
- Alle darin erstellten Verzeichnisse haben beide die gleiche Standard-ACL wie das übergeordnete Verzeichnis.
Wenn Sie entweder die Berechtigungen für das übergeordnete Verzeichnis ändern oder eine Gruppen-/Benutzer-ACL hinzufügen, die den Zugriff ermöglicht, funktionieren alle darin enthaltenen Dateien wie erwartet.
Antwort3
Sie müssen verstehen, was der Standardabschnitt „user::rwx und default:user::rwx“ zum Vererben von ACLs ist.
Weitere Informationen finden Sie in „man setfacl“ und möglicherweise hilft Ihnen dieses Dokument weiter:
https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxb200/aclinhe.htm