Welcher Benutzer (außer Root) kann Dateiberechtigungen in Linux ändern?

Welcher Benutzer (außer Root) kann Dateiberechtigungen in Linux ändern?

Grundsätzlich gilt: Wenn ich als Nicht-Root-Benutzer chmodeine Datei ausführe, wann erhalte ich für diesen Befehl die Meldung „Berechtigung verweigert“ und wann nicht? Welche Eigenschaft der Datei erlaubt oder verbietet mir, die Berechtigungen dafür zu ändern?

Ich nehme an, dass der Dateieigentümer hier fragt, da ich gerade ein wenig damit kämpfe, die zugrunde liegenden Grundkonzepte zu erlernen.

Antwort1

Kurz zusammengefasst:Wenn Sie eine Datei unter GNU/Linux ausführen möchten chmod, müssen Sie Root oder der Eigentümer der Datei sein.

Von demchmod(2)(chmod-Systemaufruf) Handbuchseite:

Die effektive UID des aufrufenden Prozesses muss mit derEigentümer der Datei, oder der Prozess muss privilegiert sein (Linux: er muss die CAP_FOWNERFähigkeit).

Von demFähigkeiten(7)Handbuchseite:

CAP_FOWNER

  • Umgehung von Berechtigungsprüfungen bei Vorgängen, die normalerweise erfordern, dass die Dateisystem-UID des Prozesses mit der UID der Datei übereinstimmt (z. B. chmod(2), utime(2)), mit Ausnahme der Vorgänge, die von CAP_DAC_OVERRIDE und CAP_DAC_READ_SEARCH abgedeckt werden; [...]

Von demsetfacl(1)Handbuchseite:

BERECHTIGUNGEN

Dem Dateibesitzer und Prozessen, die CAP_FOWNER-fähig sind, wird das Recht eingeräumt, ACLs einer Datei zu ändern. Dies ist analog zu den Berechtigungen, die für den Zugriff auf den Dateimodus erforderlich sind. (Auf aktuellen Linux-Systemen root ist der einzige Benutzermit demCAP_FOWNERFähigkeit.)

verwandte Informationen