Analyse von Zugriffsproblemen unter Linux (2) - Dateiattribute
In diesem zweiten Artikel gehe ich auf Dateiattribute bei Linux-Dateisystemen ein, speziell bei den Dateisystemen ext2, ext3, ext4.
Der dritte Artikel geht auf POSIX Capabilities ein.
Wenn ich die Standardzugriffsrechte auf eine Datei kontrolliert habe und im Log keine Hinweise auf Hardware-Fehler finde, der Zugriff auf diese Datei aber trotzdem merkwürdige Ergebnisse liefert, ist es an der Zeit, die Dateiattribute des Dateisystems in Betracht zu ziehen.
Dazu verwende ich das Program lsattr
:
$ ls -l tmp/abc
-rw-r--r-- 1 mathias mathias 4 Okt 9 11:11 tmp/abc
$ touch tmp/abc
touch: "tmp/abc" kann nicht berührt werden: Keine Berechtigung
$ echo def > tmp/abc
bash: tmp/abc: Keine Berechtigung
$ lsattr tmp/abc
----i---------- tmp/abc
Ändern kann ich die Attribute mit dem Programm chattr
:
$ sudo chattr -i tmp/abc
$ echo def > tmp/abc
$ cat tmp/abc
def
Die Handbuchseite listet sämtliche Aufrufoptionen des Programmes und alle möglichen Dateiattribute auf. Ich gehe hier kurz auf die wichtigsten für das Thema Fehlersuche ein.
Bei Dateien mit dem Attribut a
kann ich den vorhandenen Text nicht
verändern, sondern lediglich neuen Text hinzufügen.
Dieses Attribut ist damit eine gute Wahl für Logdateien.
Dateien mit dem Attribut c
werden komprimiert auf der Platte abgelegt.
Das ist im Normalbetrieb nicht weiter von Belang.
Es beeinträchtigt aber die Möglichkeit, Dateien nach einem Plattencrash zu
retten, weil Programme, welche Dateien anhand ihrer Signatur erkennen, damit
nicht funktionieren.
Dateien mit dem Attribut i
kann ich nicht ändern, löschen oder umbenennen.
Ich kann keinen zusätzlichen (Hard-)Link anlegen und den Dateiinhalt nicht
ändern.
Bei Dateien mit dem Attribut s
werden alle Blöcke beim Löschen mit 0x0
überschrieben und diese vor dem Löschen auf die Platte zurückgeschrieben.
Das heißt, diese Dateien sind nicht wiederherstellbar. (Darauf würde ich mich
bei hochsensiblen Daten nicht verlassen, da mitunter die Elektronik des
Speichermediums Sektoren vor dem Betriebssystem verbirgt und damit meine
Anstrengungen, eine Datei sicher zu löschen, zunichte macht.)
Demgegenüber werden Dateien mit dem Attribut u
explizit beim Löschen
gesichert, so dass deren Wiederherstellung auch bei intensiver Plattennutzung
möglich ist.
Schließlich sind noch Dateien mit dem Attribut t
interessant.
Bei diesen gibt es kein tail merge.
Beim Tail-Merging wird der freie Platz im letzten Dateiblock für mehrere
Dateien in einem gemeinsamen Block verwendet.
Damit kann zum Beispiel der Bootlader LILO nicht umgehen.
Mit diesem Attribut für die Datei mit dem Kernel-Image wird Tail-Merging
unterdrückt und es gibt keine Probleme mit dem Bootlader.
Bleibt zum Schluss nur noch anzumerken, dass ext2 und ext3 die Attribute
c
, s
und u
nicht honorieren.
Diese beiden Dateisystem verwenden auch kein Tail-Merging.
Dieser Artikel wird Teil des Buches Fehlersuche bei Linux-Servern und IP-Netzwerken, an dem ich momentan arbeite. Weitere Informationen zu diesem Buch finden sich unter http://buecher.mamawe.net/buecher/troubleshoot-linux-network/.
Posted 2013-10-11