Je veux voir quels fichiers sont lus ou écrits.
Existe-t-il un programme ou une commande pour cela? Je me souviens que j'avais utilisé cette méthode pour traquer les virus et les cachettes de logiciels malveillants lorsque j'utilisais Windows il y a quelques années.
Ce programme est lsof
("Liste des fichiers ouverts") .
Si vous ouvrez simplement un Terminal et tapez lsof
, vous obtenez une liste énorme de tous les fichiers ouverts. Limitez-la à une commande en faisant:
lsof -c gnome-terminal
Vous pouvez également limiter votre recherche à un répertoire spécifique en tapant
lsof -c gnome-terminal -a +D /tmp
Ou listez tous les fichiers ouverts dans un répertoire spécifique, y compris quelle application l'a ouvert:
lsof /dev/urandom
Rappelez-vous que certains processus sont lancés par le superutilisateur root . Il peut être nécessaire de placer Sudo
devant votre commande pour obtenir plus d'informations sur les fichiers ouverts de ces processus.
Pour affiner votre recherche, vous pouvez grep
lignes spécifiques, à savoir:
lsof /dev/urandom | grep chrome
La colonne FD
(Descripteur de fichier) de la sortie vous donne des informations sur le but du programme qui ouvre le fichier (pas nécessairement ce qui lui arrive actuellement):
r
signifie que le fichier est ouvert en lecture
w
signifie que le fichier est ouvert en écriture
u
signifie que le fichier est ouvert en lecture et en écriture
Pour plus de détails, consultez le page de manuel (man lsof
). De plus, si vous avez besoin de rechercher l'un des fichiers et des répertoires, le norme de hiérarchie du système de fichiers Linux est très utile.
En tant qu'option complète de destruction excessive, mais fonctionnant en temps réel, vous pouvez utiliser inotify:
Sudo inotifywait -m -r /
Notez que cela consomme beaucoup de mémoire et prend beaucoup de temps à mettre en place. Comme le dit la page de manuel:
-r, --recursive
Watch all subdirectories of any directories passed as arguments.
Watches will be set up recursively to an unlimited depth. Sym‐
bolic links are not traversed. Newly created subdirectories
will also be watched.
Warning: If you use this option while watching the root direc‐
tory of a large tree, it may take quite a while until all ino‐
tify watches are established, and events will not be received in
this time. Also, since one inotify watch will be established
per subdirectory, it is possible that the maximum amount of ino‐
tify watches per user will be reached. The default maximum is
8192; it can be increased by writing to /proc/sys/fs/ino‐
tify/max_user_watches.
Cela ne vous dit pas non plus quel processus traite les fichiers, mais cela peut aider à identifier les modifications au fur et à mesure qu'elles se produisent. L'utilisation de "-e open" peut aider à réduire le bruit sur un système très occupé.