weidner/archives/2013/10/

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
Tags: