Das ext2/3-DateiSystem besitzt die Möglichkeit, Dateien und Verzeichnissen bestimmte Attribute anzuhängen, die das Verhalten bei verschiedenen Operationen steuern. Einige Attribute lassen sich auch global für das gesamte DateiSystem vorgeben. ||Attribut||Beschreibung||[[mount]]-Option|| ||a||'''a'''(ccess)time - letzte Zugriffszeit wird nicht gespeichert||-o noatime|| ||c||'''c'''ompressed - Datei wird komprimiert gespeichert||-|| ||d||'''d'''ump - Datei wird beim Backup mit [[dump]] '''nicht''' berücksichtigt||-|| ||i||'''i'''mmutable - Datei ist unveränderlich||-o ro|| ||j||'''j'''ournal - Daten werden zuerst im Journal gespeichert||-o data=journal|| ||s||'''s'''weep - Beim Löschen einer Datei wird der Speicherbereich mit Nullen überschrieben||-|| ||S||'''S'''ync - Nach jeder Schreiboperation wird ein fsync ausgeführt||-o sync|| ||t||'''t'''ail - Dateienden, die keinen vollen Block bilden, werden nicht mit anderen Dateien zusammengefasst||-o notail|| ||u||'''u'''ndelete - Dateien werden beim Löschen für ein Undelete gesichert||-|| Mit `lsattr` kann man sich die Attribute anzeigen lassen, mit `chattr` kann man sie ändern. Anmerkungen: 1) Diese Attribute vererben sich auf neu erzeugte dateien, wenn sie für das übergeordnete Verzeichnis gesetzt werden. 2) Die c-option scheint nicht zu funktionieren. ToDo: Die Informationen unten sind hier im großen und ganze falsch platziert, bitte aufräumen. Falls schon mal jemand "aus Versehen" ''/bin'' gelöscht hat, weiß er was ich meine. :) Einige Dateien sollten einfach nicht mal "kurz" löschbar sein. Auch nicht von root. Ich hab mir das in zwei Schritten gelöst: = Hard links = Es werden von allen wichtigen Dateien HardLink``s in ein spezielles Verzeichnis gelegt. Wenn man dann einen Eintrag löscht, macht man halt vom Hardlink wieder einen Hardlink zurück -- fertig. Also: {{{ $ mkdir /.hardlinks $ chmod 000 /.hardlinks # keiner darf da rein $ cp -Rvl /bin /sbin /etc /.hardlinks }}} Sollte funktionieren. Fehlermeldungen von wegen "cannot hard link directories" kann man ignorieren. Falls man mal sendmail neu konfigurieren will und/oder die aliases-Datenbank, muss man für `/etc/aliases*` die Hardlinks (vorübergehend) wieder entfernen -- denn manche Programme sehen Hardlinks als Sicherheitslücke an. Das [[ext2]]-DateiSystem bietet noch eine Reihe von zusätzlichen Attributen an, die hier benutzt werden könnten. Ich denke da an das i-Attribut. (für weitere Infos "man chattr" oder "man lsattr"). Also: {{{ # for X in bin sbin ; do > chattr +i /$X/* > done }}} Tipp von Andreas.Huennebeck@bruker.de: Man kann in den Verzeichnissen, die man vor Radikalschlägen (wie z.B. `rm *` schützen möchte, eine leere Datei namens `-i` erzeugen; das geht mit `touch ./-i`. Die Shell expandiert dann den `*` aus `rm *` in eine Liste von Namen, an deren erster Stelle `-i` steht. `rm` interpretiert das dann als Option, d.h. es fragt bei jeder Datei nach, ob sie wirklich gelöscht werden soll. Dieser Tipp ist allerdings hochgefährlich, da die Option -i so auch jedem anderen 'befehl *' angehängt wird, und je nach Befehl völlig anders interpretiert werden kann. Zudem kann man bei den meisten Kommandos mit -- die Liste der Optionen beenden, sprich die Datei -i lässt sich mit rm -- -i löschen, da nach dem -- keine Optionen mehr beachtet werden.