Je sais que je peux voir les fichiers ouverts d'un processus en utilisant lsof
à ce moment sur ma machine Linux. Cependant, un processus peut ouvrir, modifier et fermer un fichier si rapidement que je ne pourrai pas le voir lors de sa surveillance à l'aide d'un script shell standard (par exemple watch
), comme expliqué dans "Surveiller les fichiers de processus ouverts sous Linux (temps réel)" .
Je pense donc que je recherche un moyen simple d’auditer un processus et de voir ce qu’il a fait au fil du temps. Ce serait bien s'il était également possible de voir quelles connexions réseau il (essayait) d'établir et que l'audit commence avant que le processus ait le temps de s'exécuter sans que l'audit ne soit démarré.
Idéalement, j'aimerais faire ceci:
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
Serait-il possible d'utiliser strace
et certains drapeaux pour ne pas voir tous les appels système?