Mit den einfachen Dateiattributen für Lesen/Schreiben/Ausführen, die sich auf den Benutzer, eine Gruppe oder alle anderen beziehen, kann man eine bestimmte Datei nicht hundertprozentig vor Überschreiben oder Löschen schützen. Zumindest der Root-User behält das letzte Wort. Allerdings kennen viele Linux-Filesysteme, darunter Ext2, Ext3, Ext4, JFS, ReiserFS, XFS oder Btrfs so genannte erweiterte Attribute (xattr), die neue Möglichketen eröffnen.
Das erweiterte Attribut "A" verhindert beispielsweise, dass bei einem Dateizugriff der atime-Wert geändert wird, was einen kleinen Performance-Bonus verschafft. "D" bewirkt synchrones Schreiben. Das Attribut "a" bewirkt, dass neue Inhalte nur an das bestehende File angehängt werden können. Mehr verrät: "man chattr".
Will man jegliche Änderung des Dateiinhalts verhindern setzt man das Attribut "i":
root@hercules:# chattr +i README
Mit lsattr kann man sich davon überzeugen, dass die Aktion erfolgreich war:
root@hercules:# lsattr README ----i---------- README
Nun kann auch Root das File nicht mehr verändern oder löschen:
root@hercules:# rm README rm: Entfernen von »README“ nicht möglich: Die Operation ist nicht erlaubt
Aber einen Joker hat Root trotz allem im Ärmel: Es steht im frei, das Attribut zurückzusetzen, und danach darf er die Datei doch wieder löschen:
root@hercules:/home/jcb/Apps/websec-1.9.0# chattr -i README root@hercules:/home/jcb/Apps/websec-1.9.0# rm README root@hercules:/home/jcb/Apps/websec-1.9.0# ls README ls: Zugriff auf README nicht möglich: Datei oder Verzeichnis nicht gefunden
Schlechte Einleitung
Mittwoch, 10. Oktober 2012 10:22:06