Welche Berechtigungen benötigt man, um den Befehl chmod, chown für einen Ordner / ein Element auszuführen?

9

Ich habe als sudo-Benutzer immer chmod / chown-Befehle ausgeführt. Aber heute habe ich mich gefragt, ob ich nicht benutze sudo, welche Berechtigungen brauche ich, um tatsächlich einen chmod/chownBefehl für einen Ordner / eine Datei auszuführen ? Ich habe versucht, die Frage zu googeln, aber es ist nichts aufgetaucht, das diese Frage speziell beantwortet.

Maxim Koretskyi
quelle

Antworten:

18

Unter Linux:

chown : "Nur ein privilegierter Prozess (Linux: einer mit der CAP_CHOWN Fähigkeit) kann den Besitzer einer Datei ändern." (Quelle: chown (2)) Der einfache Weg, ein solcher Prozess zu sein, besteht darin, von ausgeführt zu werden root. Hier finden Sie explain_chownHilfe, um herauszufinden, warum ein bestimmter chownFehler aufgetreten ist. Suchen Sie capabilitiesnach Möglichkeiten, um Prozessen andere Funktionen als die Ausführung als zuzuweisen root.

chmod : Der Eigentümer der Datei oder rootkann Berechtigungen sowie andere Prozesse mit dieser CAP_FOWNERFunktion ändern . (Quelle)

chgrp : "Der Eigentümer einer Datei kann die Gruppe der Datei in eine beliebige Gruppe ändern, zu der dieser Eigentümer gehört. Ein privilegierter Prozess (Linux: mit CAP_CHOWN) kann die Gruppe willkürlich ändern." (chown (2))

cxw
quelle
1
Linux begann um 2004 mit der Implementierung von Funktionen, aber der entsprechende POSIX-Vorschlag wurde bereits 1997 zurückgezogen. Wenn Sie ein modernes Betriebssystem wie Solaris verwenden, müssen Sie PRIV_FILE_CHOWNalle lokalen Dateien und PRIV_FILE_CHOWN_SELFlokale Dateien, die Ihnen gehören, chownen. Übrigens: Ein Betriebssystem, mit dem Remote-Dateien von NFS entfernt werden können, kann als Sicherheitsrisiko angesehen werden. Unter HP-UX kann jeder normale Benutzer seine Dateien chown und dies wird auch als Sicherheitsrisiko angesehen.
schily
PS: Der POSIX-Funktionsvorschlag wurde zurückgezogen, da nur die Berechtigungen zwischen einem regulären Benutzer und dem historischen Root-Benutzer verarbeitet werden. Solaris verfügt über doppelt so viele fein abgestimmte Berechtigungen wie Linux und erlaubt das Entfernen von Berechtigungen wie z. B. fork () und exec ().
schily
Beachten Sie, dass Sie unter Linux, wenn Sie nicht privilegiert sind, chowndie Dateien verwenden können, die Sie besitzen, aber nur den GID-Teil (für jede der Gruppen, denen Sie angehören). Ich kann chown stephane:other-group myfile(oder chown :other-group) solange ich Mitglied bin other-group.
Stéphane Chazelas
Was ist mit chgrpBefehl? Können Sie bitte eine Erklärung dafür hinzufügen?
Maxim Koretskyi
@ StéphaneChazelas, danke, basierend auf Ihrer Antwort gehe ich davon aus, dass ein Eigentümer erfolgreich ausgeführt chgrpwerden kann, ohne ein privilegierter Benutzer zu sein?
Maxim Koretskyi