Selbst der erfahrene Linuxer ist vor Fehlern nicht gefeit. Man stelle sich nur vor, man wollte alle Dateien aus einem Unterverzeichnis löschen:
user@sonne> rm -rf ~/DirToDelete/ *
|
Das Beispiel sieht harmlos aus, birgt aber einen fatalen Fehler in sich: das Leerzeichen zwischen Pfadangabe und
dem *
. Verschwunden sind nicht die gewünschten Daten, sondern der komplette Inhalt des aktuellen
Verzeichnisses (falls man die Berechtigung dazu besaß).
Linux bietet bekannterweise keine zuverlässige Methode des Wiederherstellens gelöschter Daten. Dafür ermöglicht
das Linux-Dateisystem ext2
die Vergabe von Attributen für Dateien und Verzeichnisse. Sicher
wird man aus Bequemlichkeit meist auf diese verzichten, aber essentielle Daten lassen sich somit zuverlässig
schützen. Zum Setzen von Attributen dient das Kommando chattr
, anzeigen lassen sie sich
mittels lsattr
.
Attribut | Wirkung | |
a |
Die Datei kann weder gelöscht noch deren bisheriger Inhalt verändert werden. Allerdings ist das Anhängen von Daten möglich. Dieses Attribut darf nur Root setzen.
|
|
d | Eine so gekennzeichnete Datei wird beim Sichern mit
dump nicht berücksichtigt. |
|
i | Die Datei kann weder umbenannt noch modifiziert noch gelinkt werden.
Nur Root darf das Attribut setzen. Wird dieses Attribut für Verzeichnisse gesetzt, darf in diesem Verzeichnis keine Datei gelöscht werden, jedoch ist eine Änderung dieser und das Erzeugen neuer Dateien möglich. |
|
s | Eine mit diesem Attribut versehene Datei wird beim Löschen mit 0-Bytes überschrieben. | |
S | Wird die Datei modifiziert, so wird sie unmittelbar auf die Festplatte zurückgeschrieben, also ohne Zwischenpufferung. |
Es existieren weitere Attribute, die aber in der momentanen Implementierung des ext2
nicht
unterstützt werden.