Usa strace!
Esempio: elenca tutti i file aperti da Firefox durante una sessione:
strace -f firefox 2>&1 | grep 'open('
Il risultato è qualcosa di simile se apri una seconda istanza di FireFox: http://pastebin.com/iRqxgiWN (L'opzione '-f' fa semplicemente seguire le forcelle di processo alla traccia).
Esempio 2: Elenca tutti i processi eseguiti da FireFox:
strace -f firefox 2>&1 | grep -P 'exec[vlpe]*\('
Risultati in qualcosa del genere quando si visita 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
Puoi farlo anche con molte altre chiamate di sistema ...
Abbinando i parametri di open()nella tua grepricerca puoi anche scoprire in quale modalità è stato aperto il file:
Basta aggiungere | grep -P 'O_RDONLY|O_RDWR'(il carattere principale della pipe è importante!) Per filtrare l'accesso in lettura o | grep -P 'O_WRONLY|O_RDWR'per l'accesso in scrittura al comando ...
MODIFICA :
Come accennato nei commenti, puoi anche utilizzare strace -fe open firefoxper elencare tutti i file aperti da FireFox. Puoi anche usare strace -fe trace=file firefoxper elencare tutte le operazioni sui file eseguite da FireFox che hanno un percorso di file come argomento (open, stat, lstat, chmod, access, ...).
Molti altri sono disponibili! Controlla la pagina del manuale di strace (1) .