Wie überprüfe ich die effektiven Dateiberechtigungen/Zugänglichkeit für/von einer bestimmten Datei und einem bestimmten Benutzer?

Wie überprüfe ich die effektiven Dateiberechtigungen (einschließlich ACLs)/Zugänglichkeit für/von einer bestimmten Datei und einem bestimmten Benutzer (einschließlich Dienst-/Systemkonten), ohne den gesamten Pfad manuell zu überprüfen?

Beispiel: Angenommen, ein Benutzer joe und die Datei /long/path/to/file.txt. Selbst wenn file.txt auf 777 geändert wurde, muss Joe immer noch in der Lage sein, auf /long/ und dann auf /long/path/ und dann auf /long/path/to/ zuzugreifen. Wenn Joe nicht mindestens Lesezugriff auf alle Ordner im Pfad hat, kann er nicht auf die Datei zugreifen (lesen/schreiben/ausführen). Die effektiven Berechtigungen für ihn (als "world/all"-Benutzer) sind also 0 und er kann nicht auf die Datei zugreifen.

Alternativ: Wie erhalte ich eine Liste der Berechtigungen (einschließlich ACLs) aller Benutzer (einschließlich Dienst-/Systemkonten) für eine bestimmte Datei?

Gerne auch eine App oder ein Bash-Skript.

Eine ähnliche Frage mit etwas anderem Fokus wurde bereits bei Unix & Linux gestellt: Wie kann überprüft werden, ob ein Benutzer auf eine bestimmte Datei zugreifen kann?

ls -del FILE|DIRlistet sowohl Unix-Standardberechtigungen als auch ACLs auf. was genau suchst du?
@patrix Ihr lsBefehl zeigt die Dateiberechtigungen für die angegebene Datei. Aber wie in der verlinkten Unix&Linux-Frage beschrieben, können die Berechtigungen im übergeordneten Pfad unterschiedlich gesetzt werden, so dass eine Datei, die weltweit lesbar ist, nicht von einem beliebigen Benutzer gelesen werden kann. Ergebnis: Die Dateiberechtigungen sind (77)7, aber die effektiven Dateiberechtigungen sind (77)0 (für einen beliebigen Benutzer außer dem Eigentümer und nicht in derselben Gruppe).
Können Sie Ihre Frage dann bitte präzisieren, damit sie für sich steht, und vielleicht einige Beispiele hinzufügen? Es kann auch hilfreich sein, zwischen Dateiberechtigungen (die durch angezeigt werden ls -del) und der Zugriffsberechtigung (was anscheinend das ist, wonach Sie suchen) zu unterscheiden.
Eigentlich eine interessante Herausforderung! Wenn Sie Hardlinks auf Dateien berücksichtigen, wird es sehr interessant :-)

Antworten (1)

Eine kommerzielle App, die die effektiven Berechtigungen für einen Benutzer und eine ausgewählte Datei oder einen ausgewählten Ordner bereitstellt, ist TinkerTool System :

Im folgenden Beispiel werden die effektiven Berechtigungen der Datei /private/var/log/clamav.log für den Benutzer Spotlight gezeigt. Der Benutzer Spotlight kann Daten weder lesen noch schreiben.

Geben Sie hier die Bildbeschreibung ein

Beim Auslösen des Tabs Show or Set Permissions werden die POSIX-Berechtigungen/Eigentümer explizit angezeigt.

Geben Sie hier die Bildbeschreibung ein