Ich weiß, dass ich die geöffneten Dateien eines Prozesses lsof
zu diesem Zeitpunkt auf meinem Linux-Computer anzeigen kann . Ein Prozess kann eine Datei jedoch so schnell öffnen, ändern und schließen, dass ich sie nicht mehr sehen kann, wenn ich sie mit Standard-Shell-Skripten überwache (z. B. watch
wie unter "Überwachen geöffneter Prozessdateien unter Linux (in Echtzeit)" erläutert ). .
Ich suche also nach einer einfachen Möglichkeit, einen Prozess zu prüfen und zu sehen, was er im Laufe der Zeit getan hat. Es wäre großartig, wenn Sie auch sehen könnten, welche Netzwerkverbindungen es herstellt (versucht hat), und wenn Sie das Audit starten könnten, bevor der Prozess ausgeführt werden kann, ohne dass das Audit gestartet wird.
Idealerweise würde ich das gerne machen:
sh $ audit-lsof /path/to/executable
4530.848254 OPEN read /etc/myconfig
4530.848260 OPEN write /var/log/mylog.log
4540.345986 OPEN read /home/gert/.ssh/id_rsa <-- suspicious
4540.650345 OPEN socket TCP ::1:34895 -> 1.2.3.4:80 |
[...]
4541.023485 CLOSE /home/gert/.ssh/id_rsa <-- would have missed
4541.023485 CLOSE socket TCP ::1:34895 -> 1.2.3.4:80 | this when polling
Wäre es mit strace
und einigen Flags möglich, nicht jeden Systemaufruf zu sehen?
quelle
Antworten:
Laufen es mit
würde wohl ausreichen.
Sie müssen die
-o
Option verwenden, um die Ausgabe von strace an einer anderen Stelle als auf der Konsole zu platzieren, wenn der Prozess auf stderr drucken kann. Wenn sich Ihr Prozess verzweigt, benötigen Sie auch-f
oder-ff
.Oh, und vielleicht möchten Sie es
-t
auch, damit Sie sehen können, wann die Anrufe getätigt wurden.Beachten Sie, dass Sie die Liste der Funktionsaufrufe je nach dem, was Ihr Prozess tut, möglicherweise anpassen müssen. Ich musste Folgendes hinzufügen
getdents
, um ein besseres Beispiel zu erhaltenls
:quelle
-o
, um die Ausgabe in Dateien zu verschieben. Dann können Sietail -F strace.output
in einem anderen Terminal laufen , um ein "Live" -Update zu erhalten.strace
mit der-p PID
Option auch eine Verbindung zu einem laufenden Prozess herstellen .-y
zu "[p] rint-Pfade, die mit Dateideskriptorargumenten