Wie erstelle ich eine Datei, die selbst ein Root-Benutzer nicht löschen kann?
Wie erstelle ich eine Datei, die selbst ein Root-Benutzer nicht löschen kann?
Antworten:
Einfache Antwort: Sie können nicht, root kann alles.
Sie können das Attribut "i" mit chattr setzen (zumindest wenn Sie sich in ext {2,3,4} befinden), wodurch eine Datei unveränderlich wird, aber root kann das Attribut einfach aufheben und die Datei trotzdem löschen.
Komplexer (und hässlicher, hackiger Workaround): Legen Sie das Verzeichnis, das für root unveränderlich sein soll, auf dem Remote-Server ab und hängen Sie es über NFS oder SMB an. Wenn der Server keine Schreibrechte bietet, wird das lokale Root-Konto gesperrt. Natürlich könnte das lokale Root-Konto die Dateien einfach lokal kopieren, das Remote-Zeug aushängen, die Kopie anbringen und das ändern.
Sie können root nicht daran hindern, Ihre Dateien zu löschen. Wenn Sie nicht darauf vertrauen können, dass Ihr Root die Dateien intakt hält, haben Sie ein soziales Problem, kein technisches.
mv
kann?" (das ist ein lahmer Witz, der auf christlicher Theosophie basiert, und ein schrecklicher Witz, wenn Sie nicht mit dem Gebiet vertraut sind)
Legen Sie es auf eine CD-ROM! ;)
(Dies sollte ein Kommentar sein, aber ich kann keine Kommentare machen ...)
Vor langer Zeit habe ich einen Kernel-Patch (auf 2.2.ancient) geschrieben, bei dem der Versuch, eine Datei mit dem Namen SELFDESTRUCT zu löschen, den aufrufenden Prozess zum Erliegen brachte. Dies schützt vor versehentlichem "rm -rf *".
Mit können Sie chattr +i
eine Datei unveränderlich machen.
Natürlich kann ein versierter Benutzer mit Root-Zugriff weiterhin chattr -i
das unveränderliche Attribut entfernen und dann die Datei löschen. Er kann jedoch auch alle anderen hier aufgeführten Versuche, den Zugriff zu blockieren, rückgängig machen.
Ich würde argumentieren, dass chattr der richtige Weg ist, dies unter Unix zu tun.