Wie werden ACL-Berechtigungen verarbeitet und in welcher Reihenfolge gelten sie für eine bestimmte Benutzeraktion?

21

CentOS 6.4

Ich versuche besser zu verstehen, wie Dateisystem-ACL-Regeln verarbeitet werden und in welcher Reihenfolge ACL-Regeln gelten.

Angenommen, die Benutzer bob und joe gehören zu einer Gruppe namens sales. Angenommen, ich habe einen Verkaufsbeleg mit folgenden Angaben:

[root@Maui ~]# getfacl /home/foo/docs/foo.txt
getfacl: Removing leading '/' from absolute path names
# file: home/foo/docs/foo.txt
# owner: jane
# group: executives
user:: r--
user:bob:rw-
user:joe:rwx
group:sales:rwx
group::r--
mask::rwx
other::---

Meine Frage ist, wie werden Berechtigungen in einem Beispiel wie diesem verarbeitet und welche Zugriffsrechte haben Vorrang?

Gibt es nur eine Suche von oben nach unten und welche Regel zuerst zutrifft, ist die zutreffende?

Oder erzwingt Linux den Zugriff basierend auf der spezifischsten Regel für den betreffenden Benutzer? Oder hat die restriktivste und anwendbarste Regel Vorrang?

Mike B
quelle

Antworten:

15

Dies ist ein breites Thema und etwas zu viel, um es hier zu behandeln. Ich verweise Sie auf das POSIX Access Control Lists on Linux- Whitepaper von Andreas Grünbacher von den SuSE Labs. Es macht eine ziemlich gute Arbeit, das Thema zu behandeln und es aufzuschlüsseln, damit Sie verstehen, wie ACLs funktionieren.

Dein Beispiel

Schauen wir uns nun Ihr Beispiel an und brechen Sie es auf.

  • Gruppe (Verkauf)
  • Mitglieder der Verkaufsgruppe (Bob, Joe)

Lassen Sie uns nun die Dateiberechtigungen aufschlüsseln /home/foo/docs/foo.txt. ACLs kapseln auch dieselben Berechtigungen, mit denen die meisten Benutzer unter Unix vertraut sein sollten, hauptsächlich die Bits "Benutzer", "Gruppe" und "Andere". Also lasst uns diese zuerst herausziehen.

user:: r--
group::r--
other::---

Diese sehen normalerweise folgendermaßen aus ls -l:

$ ls -l /home/foo/docs/foo.txt
-r--r----- 1 jane executives 24041 Sep 17 15:09 /home/foo/docs/foo.txt

Mit diesen ACL-Zeilen können Sie sehen, wem die Datei gehört und was die Gruppe ist:

# owner: jane
# group: executives

So, jetzt kommen wir zum Kern der ACLs:

user:bob:rw-
user:joe:rwx
group:sales:rwx

Dies zeigt, dass Benutzer bobhat rw, während Benutzer joehat rwx. Es gibt auch eine Gruppe, die auch rwxähnlich wie Joe hat. Diese Berechtigungen sind so, als ob die Benutzerspalte in unserer ls -lAusgabe 3 Eigentümer (Jane, Bob und Joe) sowie 2 Gruppen (Führungskräfte und Vertrieb) hätte. Es gibt keine andere Unterscheidung als ACLs.

Zuletzt die maskZeile:

mask::rwx

In diesem Fall maskieren wir nichts, es ist weit offen. Wenn also Benutzer bob und joe diese Zeilen haben:

user:bob:rw-
user:joe:rwx

Dann sind das ihre effektiven Berechtigungen. Wenn die Maske so wäre:

mask::r-x

Dann wären ihre effektiven Berechtigungen wie folgt:

user:bob:rw-    # effective:r--
user:joe:rwx    # effective:r-x

Dies ist ein leistungsstarker Mechanismus zum Einschränken von Berechtigungen, die auf Großhandelsbasis erteilt werden.

ANMERKUNG: Der Dateieigentümer und andere Berechtigungen sind von der Maske der effektiven Rechte nicht betroffen. alle anderen Einträge sind! In Bezug auf die Maske sind die ACL-Berechtigungen im Vergleich zu den herkömmlichen Unix-Berechtigungen Bürger zweiter Klasse.

Verweise

slm
quelle