Sie können das auditd
Subsystem verwenden, um die auf Ihrem System ausgeführten Befehle zu protokollieren. Es ist mit dem Kernel verbunden, daher ist es sehr zuverlässig, alles zu protokollieren, was ausgeführt wird.
Meine Beispiele sind unter Fedora Linux. Abhängig von Ihrer Distribution können Sie kleine Unterschiede feststellen. (Das auditd
Subsystem ist ziemlich komplex, daher kann es schwierig sein, dies richtig zu machen.)
Vergewissern Sie sich zunächst, dass Sie auditd bereits installiert und ausgeführt haben.
$ systemctl status auditd.service
Dann können Sie überprüfen, welche Regeln geladen werden. Auf Fedora erhalten Sie standardmäßig Folgendes:
$ sudo auditctl -l -a never,task
Wir müssen also diese "Task" -Liste entfernen (die Syscalls unterdrückt) und eine hinzufügen, die "Execve" protokolliert (was der Syscall ist, der Befehle ausführt.)
$ sudo auditctl -d never,task $ sudo auditctl -a always,exit -F arch=b64 -S execve
Sobald dies geschehen ist, werden alle Befehle im Prüfsystem protokolliert.
Sie können es dann mit dem ausearch
Befehl suchen . Um beispielsweise alle Ausführungen zu finden, die "gulp" aufrufen, können Sie Folgendes verwenden:
$ sudo ausearch -c gulp
Die Ausgabe wird ziemlich ausführlich sein ... Konzentrieren Sie sich auf die Zeile type = EXECVE. Die Argumente werden als aufgeführta0="gulp" a1="first_argument" a2="second_argument" ...
Wenn Sie anstelle einer in Anführungszeichen genannten Zeichenfolge eine lange Zahlenfolge erhalten, verwenden Sie diese -i
zur Interpretation.
Die Protokollierung aller auf Ihrem System ausgeführten Befehle kann sehr teuer sein und viel Speicherplatz beanspruchen! Möglicherweise beeinflusst dies auch die Leistung. Wenn Sie diese Änderungen rückgängig machen möchten, können Sie die Standardregeln mit diesem Befehl erneut laden:
$ sudo augenrules --load
Sie können auch einen Filter auf die Protokollierungsregel anwenden, um beispielsweise nur die Ausführung von / usr / bin / gulp zu protokollieren:
$ sudo auditctl -a always,exit -F arch=b64 -F exe=/usr/bin/gulp -S execve
Vielleicht ist das ein Übermaß ... Aber es ist so zuverlässig wie es nur geht. Ich hoffe, Sie können sich durch das auditd
Subsystem zurechtfinden und erhalten die Informationen, nach denen Sie suchen.