Uso strace!
Ejemplo: enumerar todos los archivos abiertos por Firefox durante una sesión:
strace -f firefox 2>&1 | grep 'open('
Resulta en algo como esto si abre una segunda instancia de FireFox: http://pastebin.com/iRqxgiWN (La opción '-f' simplemente hace que las horquillas sigan el proceso.)
Ejemplo 2: enumere todos los procesos ejecutados por FireFox:
strace -f firefox 2>&1 | grep -P 'exec[vlpe]*\('
Resultados en algo como esto al visitar 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
También puede hacer esto con muchas otras llamadas al sistema ...
Al hacer coincidir los parámetros de open()en su grepbúsqueda, también puede averiguar en qué modo se ha abierto el archivo:
Simplemente agregue | grep -P 'O_RDONLY|O_RDWR'(¡el carácter de tubería inicial es importante!) Para filtrar el acceso de lectura o el acceso | grep -P 'O_WRONLY|O_RDWR'de escritura a su comando ...
EDITAR :
Como se mencionó en los comentarios, también puede usar strace -fe open firefoxpara enumerar todos los archivos abiertos por FireFox. También puede usar strace -fe trace=file firefoxpara enumerar todas las operaciones de archivo realizadas por FireFox que tienen una ruta de archivo como argumento (open, stat, lstat, chmod, access, ...).
¡Muchos más están disponibles! Consulte la página del manual de strace (1) .