linux-l: Schreiben einer Datei -> wie merkt es der Kernel

Joachim Dort dort at ardovo.de
Fr Jan 18 18:10:51 CET 2002


Volker Kroll wrote:

> ich habe ein sehr spezielles Problem. Ich würde gern auf einem meiner
> Rechner einen Prozeß starten, der bei jedem Schreiben auf die Platte
> merkt, daß dies passiert und welcher User die Aktion gestartet hat.
> Leider bin ich kein Kernelhacker und habe keine Ahnung, wo ich anfangen
> muß zu suchen. Kann mir jemand einen Tip geben, wo ich anfangen muß zu
> suchen? 
Shalom!


Habe leider keine direkte, sondern eine indirekte Lösung:
Guck Dir mal die Ausgabe des Kommandos strace an. Nach meinem 
Verständnis werden dadurch sämtliche Betriebssytem-Aufrufe 
mitgeschnitten. Ergo wenn Du eine Zeile mit einem "write" hast,
hast Du irgendwo davor ein "open", welches den Stream öffnet.

<Exkurs>
Dies ist ein indirekter Weg, wer den Kernel patchen kann, wird sich sehr 
viel effizienter die Infos suchen können, aber dies wäre ein Weg.´

Details habe ich nicht mehr im Kopf, aber es ist doch gerade die 
Philosophie eines jeden Unix-Sytems, daß es nur 6 Kommandos kennt:
open, close, read, write, copy (Prozesse) und fork. Alles andere
ist nur Extrapolation.

</Exkurs>


In Deinem speziellen Fall dürfte das Problem sein, diejenigen Prozesse 
im System zu finden, welche Du _nicht_ mitschneiden möchtest! Solltest 
Du aus versehen den Kernel selbst erwischen, hast Du eine rekursive 
Schleife (Programm schreibt -> strace -> strace schreibt Log -> Kernel 
schreibt -> strace -> ...

Das Problem finde ich sehr interessant und würde mich über Verlaufs-Info 
über diese Mailingliste freuen!

Ciao
	Joachim Dort




Mehr Informationen über die Mailingliste linux-l