Zuerst erstelle ich eine Datei und überprüfe deren Standardberechtigungen und ACL-Einträge:
$ touch file; ls -l file; getfacl file
-rw-r--r-- 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
other::r--
Dann lege ich die ACL-Maske für die Datei fest und überprüfe erneut die Standardberechtigungen und ACL-Einträge:
$ setfacl -m mask:rwx file
$ ls -l file; getfacl file
-rw-rwxr--+ 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
mask::rwx
other::r--
Beachten Sie, dass sich zusammen mit der ACL-Maske auch die Standardgruppenberechtigung für die Datei geändert hat.
- Welche Verbindung besteht zwischen ACL-Maske und Standardgruppenberechtigung?
- Was ist der Grund für das Koppeln von ACL-Masken- und Dateigruppenberechtigungen? Welche Logik steckt dahinter?
Die fraglichen Distributionen sind Debian Linux 7.6 und CentOS 7
BEARBEITEN
An dieser Stelle wollte ich nur einige meiner Erkenntnisse mitteilen, die ich bei der Untersuchung der Beziehungen zwischen Standarddateigruppenberechtigungen und ACL-Maske gewonnen habe. Hier sind die empirischen Beobachtungen, die ich gefunden habe:
Die ACL-Maske kann geändert werden:
- durch direktes Setzen mit
setfacl -m m:<perms>
Befehl; - durch Ändern der Dateigruppenberechtigungen mit dem
chmod
Befehl (wenn die ACL-Maske bereits vorhanden ist; sie ist möglicherweise nicht vorhanden, da sie optional ist, wenn für die Datei keine benannten Benutzer- oder Gruppen-ACL-Berechtigungen vorhanden sind); - durch Hinzufügen eines benannten Benutzer- oder Gruppen-ACL-Eintrags (Maske wird automatisch neu berechnet).
- durch direktes Setzen mit
Die Maske erzwingt maximale Zugriffsrechte (wenn ACL-Einträge mit Berechtigungen vorhanden sind, die die ACL-Maskenberechtigungen überschreiten) nur, wenn die Maske direkt von setfacl oder durch Ändern der Dateigruppenberechtigung mit chmod festgelegt wird (nicht automatisch berechnet). Alle Änderungen an ACL-Einträgen lösen die automatische Neuberechnung der ACL-Maske aus und deaktivieren den "Durchsetzungsmodus".
Bei der Verwendung von ACLs treten einige Nebenwirkungen auf, die sich implizit auf die Standardberechtigungen für Dateigruppen auswirken:
- Ein benannter Benutzer- oder Gruppen-ACL-Eintrag, der auf eine Datei angewendet wird, kann die ACL-Maske und damit die effektiven Dateigruppenberechtigungen ändern (die Berechtigungen erhöhen). Wenn Sie als Dateieigentümer beispielsweise die Berechtigung "rw-r - r-- jim students" haben und dem Benutzer "jack" die Berechtigung "rw" erteilen, erteilen Sie implizit auch jedem Benutzer die Berechtigung "rw" aus der Gruppe "Studenten".
- Strengere (weniger Berechtigungen) ACL-Maske kann die entsprechenden Standarddateigruppenberechtigungen dauerhaft entfernen. Wenn Sie beispielsweise eine Datei mit RW-Standarddateigruppenberechtigungen haben und eine schreibgeschützte ACL-Maske auf die Datei anwenden, werden die Gruppenberechtigungen auf schreibgeschützt reduziert. Wenn Sie dann alle erweiterten ACL-Einträge (mit dem
setfacl -b
Befehl) entfernen , bleiben die Gruppenberechtigungen schreibgeschützt. Dies gilt nur für eine strengere ACL-Maske. Eine weichere ACL-Maske (mehr Berechtigungen) ändert die ursprüngliche Dateigruppenberechtigung nach dem Entfernen nicht dauerhaft.
quelle
Antworten:
Es ist nicht sinnvoll, wenn die Unix-Dateiberechtigungen nicht mit dem ACL-Eintrag übereinstimmen und umgekehrt. Dementsprechend steht auf der Manualpage (
acl(5)
), wonach Sie fragen:Nachtrag zur Diskussion:
Eine gute Erklärung ist hier . Im Wesentlichen ist die Maske eine
quelle
chmod
Befehl zum Ändern der Standardberechtigungen verwenden und umgekehrt, wenn Sie beispielsweisegetfacl -m u:someuser:rwx
die Standarddateiberechtigung für den Dateieigentümer ausführen, und die Änderung wird in derls -l
Ausgabe wiedergegeben. Das ist alles wahr, aber ich verstehe nicht, wie es meine Frage beantwortet-rw-r--r-- 1 user user
Berechtigungen zuweisen , wird diese benannte Benutzer-ACL akzeptiert und die ACL-Maske (zusammen mit den Dateigruppenberechtigungen) wird ebenfalls in rwx geändert. --- [siehe den nächsten Kommentar als Fortsetzung]-rw-rwxr-- 1 user user
Berechtigungen der Datei oder nicht? Wie bestimmen Sie den Widerspruch? Durch Vergleichen der ACL-Berechtigungen des Testbenutzers mit den Standardberechtigungen für Dateigruppen? Welche Logik hat Sie veranlasst, Gruppenberechtigungen mit Benutzerberechtigungen zu vergleichen? Sind sie nicht verschiedene Wesen? Ist es nicht eingängig? Es ist wahrscheinlich offensichtlich für Sie, aber ich kämpfe immer noch darum, es zu begreifen.Ich habe endlich verstanden, was genau passiert, als ich diesen Link sah, der ACLs handhabt
Insbesondere ersetzen und ersetzen diese Masken im Grunde NAMED USER und alle GROUP-Berechtigungen. Dies bedeutet, wenn Sie:
Hoffentlich hilft das.
quelle
Die Logik ist völlig durchbrochen und daher sind POSIX-ACLs purer und nutzloser Unsinn.
Wenn sie darauf abzielen, die Kompatibilität mit Apps zu erhalten, die keine ACLs kennen, mit Ausnahme des "ugo" -Modells des primitiven
Standard-UNIX, scheiterten sie tatsächlich am Anfang, da jetzt jede App, die die Berechtigungen der Gruppe löscht, den Zugriff, der durch ACLs hinzugefügt wurde, effektiv entzieht.quelle