Immutable Files auf Linux

Wenn sich ein File auf einem Linux System nicht mal mit Hilfe eines root-accounts löschen lässt, dann sollte man mal die sog. I-node flags (Extended Filesystem Attributes) genauer anschauen. Der Befehl dazu lautet

lsattr <FILE>

Falls in der Ausgabe der Character i vorkommt, dann ist das sog. FS_IMMUTABLE_FL flag gesetzt worden, welches eine Modifikation des i-Nodes gänzlich unterbindet (d.h. weder inhaltliche Veränderung noch eine Änderung von Metadaten ist erlaubt).
Ein Setzen des Flags mit

chattr +i <FILE>

erfordert die CAP_LINUX_IMMUTABLE capability. Programmatisch erfolgt dieselbe Operation mit ioctl

if (ioctl(fd,FS_IOC_GETFLAGS,&attributes)==-1) errExit("fetching attributes");
attributes |= FS_IMMUTABLE_FL;
if (ioctl(fd,FS_IOC_SETFLAGS,&attr) == -1) errExit("setting attributes");

Dieses i-node flag ist unter Linux seit Kernel 2.6.19 Filesystem-übergreifend implementiert. Es kann bspw. zum temporären Schutz von Dateien in Systemverzeichnissen genutzt werden, aber auch von Rootkits die Schadsoftware ins System eingeschleust haben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.