Unterschied zwischen chmod und ACL


13

Ich verstehe chmodund chownund wie die Berechtigungsbits funktionieren, aber es gibt ein anderes Berechtigungssystem in Linux ACLmit setfaclund getfacl, daher wundere ich mich.

Was ist der Unterschied zwischen diesen beiden Berechtigungskontrollsystemen? Stören sie sich gegenseitig?

Antworten:


7

Das eine ist nicht besser als das andere, es sind nur verschiedene Methoden und Denkweisen.

Sie können beide Berechtigungssysteme problemlos auf demselben Pfad verwenden.

Sie stören sich gegenseitig, wenn Eigentümer-, Gruppen- und andere Berechtigungen geändert werden: Wenn Sie den aktuellen Wert für diese in setfacl festlegen, wird tatsächlich die posix-Berechtigung festgelegt, nicht die ACL-Berechtigung.

Posix-Berechtigungen erlauben nur einen Eigentümer, der eine Gruppe besitzt und die Berechtigung "Jeder", während ACL mehrere Benutzer und Gruppen "besitzt". Mit ACL können Sie auch Standardberechtigungen für neue Dateien in einem Ordner festlegen.

Sie können zusätzlich mit Apparmor oder Selinux weitere Berechtigungsverwaltung hinzufügen, um eine strengere Kontrolle zu erreichen.


1
Bin ich ls -lzu Recht davon ausgegangen, dass beim Ausführen nur Posix-Berechtigungen angezeigt werden und ACL-Berechtigungen, die die Datei weiter einschränken, nicht angezeigt werden? Oder werden die Posix-Berechtigungen trotzdem eingehalten?
mFeinstein

3
@mFeinstein Kommt darauf an. ls -lSetzt unter Linux +am Ende der Berechtigungszeichen ein Zeichen, um anzuzeigen, dass eine ACL vorhanden ist. Wenn ACL vorhanden sind, erzählen die Grundberechtigungen nicht die ganze Geschichte: ACL überschreibt POSIX-Berechtigungen.
Gilles 'SO - hör auf böse zu sein'

Oh toll! Das +
hindert

3

Die von chmod festgelegten klassischen Unix-Berechtigungen (Lesen / Schreiben / Ausführen, Benutzer / Gruppe / Andere) existieren viel länger als ACL. Wenn ACL von Anfang an existiert hätte, gäbe es kein chmod, wie wir es kennen. Da chmod jedoch schon sehr lange existiert, wird es von vielen Anwendungen aufgerufen, viele Archivformate unterstützen die klassischen Berechtigungen usw. Sie können chmod-Berechtigungen mit ACL ausdrücken. Sie dienen als eine Art Ausgangspunkt für die ACL.

Weitere Informationen zur Funktionsweise der Zugriffssteuerung bei Vorhandensein von ACL finden Sie unter Vorrang von Benutzer und Gruppenbesitzer in Dateiberechtigungen und Vorrang von ACLS, wenn ein Benutzer mehreren Gruppen angehört .

Der chmodBefehl steuert auch einige Flags, die keine wirklichen Berechtigungen sind, aber dennoch häufig als Berechtigungen bezeichnet werden: setuid, setgid und das Sticky-Bit . Dies sind keine wirklichen Berechtigungen, da sie keinen Einfluss darauf haben, welche Zugriffe auf die Datei autorisiert sind, sondern wie bestimmte Vorgänge in der Datei funktionieren, nachdem sie autorisiert wurden. Mit ACL gibt es nichts Vergleichbares.


Um die Berechtigung einer Datei wirklich zu verstehen, muss ich sowohl die ACL als auch ls -l?
mFeinstein

Gibt es eine Möglichkeit, festzustellen, ob für eine Datei / ein Verzeichnis ACL-spezifische Berechtigungen vorhanden sind?
mFeinstein

@mFeinstein Überprüfen Sie, ob die von angezeigten Berechtigungen am Ende lseine zusätzliche Berechtigung haben +, oder führen Sie den getfaclBefehl aus, um alle Berechtigungen einschließlich ACL anzuzeigen.
Gilles 'SO - hör auf böse zu sein'

Nur getfacl myFile?
mFeinstein

Ja, getfacl auf dem Pfad, den Sie überprüfen möchten.
Zulgrib
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.