Utilisez strace
!
Exemple: répertoriez tous les fichiers ouverts par Firefox au cours d'une session:
strace -f firefox 2>&1 | grep 'open('
Il en résulte quelque chose comme ceci si vous ouvrez une deuxième instance de FireFox: http://pastebin.com/iRqxgiWN (L'option '-f' fait simplement suivre les fourches du processus de suivi de strace.)
Exemple 2: répertoriez tous les processus exécutés par FireFox:
strace -f firefox 2>&1 | grep -P 'exec[vlpe]*\('
Cela se traduit par quelque chose comme ça lorsque vous visitez YouTube:
[pid 25020] execve("/usr/lib/firefox/plugin-container", ["/usr/lib/firefox/plugin-containe"..., "/usr/lib/adobe-flashplugin/libfl"..., "-greomni", "/usr/lib/firefox/omni.ja", "-appomni", "/usr/lib/firefox/browser/omni.ja", "-appdir", "/usr/lib/firefox/browser", "15198", "false", "plugin"], [/* 57 vars */]) = 0
[pid 25024] execve("/bin/sh", ["sh", "-c", "ps x | grep netscape"], [/* 57 vars */]) = 0
[pid 25025] execve("/bin/ps", ["ps", "x"], [/* 57 vars */] <unfinished ...>
[pid 25026] execve("/bin/grep", ["grep", "netscape"], [/* 57 vars */]) = 0
Vous pouvez également le faire avec de nombreux autres appels système ...
En faisant correspondre les paramètres de open()
dans votre grep
recherche, vous pouvez également savoir dans quel mode le fichier a été ouvert:
Ajoutez simplement | grep -P 'O_RDONLY|O_RDWR'
(le caractère pipe principal est important!) Pour filtrer l'accès en lecture ou | grep -P 'O_WRONLY|O_RDWR'
pour l'accès en écriture à votre commande ...
MODIFIER :
Comme mentionné dans les commentaires, vous pouvez également utiliser strace -fe open firefox
pour répertorier tous les fichiers ouverts par FireFox. Vous pouvez également utiliser strace -fe trace=file firefox
pour lister toutes les opérations de fichiers effectuées par FireFox qui ont un chemin de fichier comme argument (open, stat, lstat, chmod, access, ...).
Beaucoup d'autres sont disponibles! Consultez la page de manuel de strace (1) .