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