Warum ist chown
Befehl nur root?
Warum können Nicht-Root-Benutzer chown nicht verwenden, um Dateien zu verschenken, die sie besitzen?
Akzeptierte Antwort:
Die meisten Unix-Systeme verhindern, dass Benutzer Dateien „verschenken“, dh Benutzer dürfen nur chown
ausführen wenn sie über die Rechte des Zielbenutzers und der Zielgruppe verfügen. Seit der Verwendung von chown
erfordert, die Datei zu besitzen oder root zu sein (Benutzer können sich niemals die Dateien anderer Benutzer aneignen), nur root kann chown
ausführen um den Besitzer einer Datei auf einen anderen Benutzer zu ändern.
Der Grund für diese Einschränkung liegt darin, dass die Weitergabe einer Datei an einen anderen Benutzer in ungewöhnlichen, aber dennoch wichtigen Situationen zu schlimmen Ereignissen führen kann. Zum Beispiel:
- Wenn auf einem System Festplattenkontingente aktiviert sind, könnte Alice eine weltweit beschreibbare Datei in einem Verzeichnis erstellen, auf das nur sie zugreifen kann (so dass niemand sonst auf diese weltweit beschreibbare Datei zugreifen kann) und dann
chown
diese Datei einem anderen Benutzer Bill gehören zu lassen. Die Datei würde dann unter Bills Festplattenkontingent zählen, obwohl nur Alice die Datei verwenden kann. - Wenn Alice eine Datei an Bill weitergibt, gibt es keine Spur, dass Bill diese Datei nicht erstellt hat. Dies kann ein Problem sein, wenn die Datei illegale oder anderweitig kompromittierende Daten enthält.
- Einige Programme verlangen, dass ihre Eingabedatei einem bestimmten Benutzer gehört, um eine Anfrage zu authentifizieren (z. B. enthält die Datei einige Anweisungen, die das Programm im Namen dieses Benutzers ausführt). Dies ist normalerweise kein sicheres Design, denn selbst wenn Bill eine Datei mit syntaktisch korrekten Anweisungen erstellt hat, hat er möglicherweise nicht beabsichtigt, sie zu diesem bestimmten Zeitpunkt auszuführen. Nichtsdestotrotz kann es die Sache nur noch schlimmer machen, Alice zu erlauben, eine Datei mit beliebigem Inhalt zu erstellen und sie als Eingabe von Bill zu nehmen.