Unter Linux möchte ich die ausführbaren Dateien verfolgen, die in meinem Namen ausgeführt werden, einschließlich der gesamten Befehlszeile (in der Praxis wird jeder exec * () als mein eigener Benutzer ausgeführt). Ein Programm, das ich nicht kontrolliere, soll, um eine Aufgabe zu erledigen, das Programm ausführen, das ich übergebe, aber ich möchte sicherstellen, dass es dies tut und welche Optionen es verwendet. Das Programm, das ich nicht kontrolliere, ist hinterhältig und scheint das Verhalten abhängig vom Namen des Programms zu ändern, das es für die Aufgabe ausführen soll. Daher kann ich kein Shell-Skript übergeben, das die Informationen protokolliert und das Real aufruft Programm.
Kann ich über alle Exec * () informiert werden, die als mein Benutzer auf dem System unter Linux ausgeführt wurden, einschließlich der vollständigen Befehlszeile? Das heißt, es läuft nicht ps
in einer Schleife. Ich mache es lieber direkt auf dem System, auf dem ich arbeite und keinen Root-Zugriff benötige, aber wenn nötig, kann ich ein System erzeugen, auf dem ich Root-Zugriff habe, die Programme installieren und dort nachforschen.
Verwenden von Ubuntu 12.4 LTS.
audit
gibt, aber eine 'ganze Befehlszeile' in der Shell kann sich auch auf den untergeordneten Prozess auswirken, indem Umleitungs- / Piping- und envvar-Einstellungen verwendet werden und Substitutionen / Erweiterungen sowie nicht signifikante Anführungszeichen enthalten und Abstand und Kontrollstrukturen wie doa && dob
, und Sie werden diese nicht bekommen.