Eu tentei isso tracefile
. Para mim, deu muito menos resultados que os meus strace ... | sed ... | sort -u
. Eu até adicionei -s256
a strace(1)
linha de comando, mas não ajudou muito ...
Então eu tentei isso loggedfs
. Primeiro, ele falhou, pois não tinha acesso de leitura / gravação ao diretório que tentei fazer logon. Depois de fazer o chmod 755 temporariamente, recebi alguns hits ...
Mas, para mim, fazer o seguinte parece funcionar melhor:
inotifywait -m -r -e OPEN /path/to/traced/directory
E depois processe a saída após executar o processo de seu interesse.
Isso não captura o acesso externo ao processo de arquivos do
diretório rastreado, nem sabe se algum outro processo acessou a mesma árvore de diretórios, mas em muitos casos isso é uma ferramenta boa o suficiente para fazer o trabalho.
EDIT: inotifywait não captura o acesso de link simbólico (apenas os destinos após a resolução dos links simbólicos). Fui atingido por isso quando arquivei bibliotecas acessadas por um programa para uso futuro. Utilizamos alguns hackers perl glob extras para selecionar os links simbólicos nas bibliotecas notificadas para concluir o trabalho nesse caso específico.
EDIT2: pelo menos quando inotifying arquivos e os próprios links simbólicos de linha de comando inotifywait (por exemplo, inotifywait -m file symlink
ou inotifywait symlink file
) saída mostrará o acesso a qual é o primeiro na linha de comando (independentemente de qual, file
de symlink
for acessado). O inotifywait não suporta IN_DONT_FOLLOW - que, quando tentei programaticamente, apenas faz com que se veja acesso file
(o que pode ou não ser o que se espera ...) independentemente da ordem na linha de comando
strace
, presumo que você esteja especificamente interessado no Linux. Corrigir?