Esta é uma resposta que escrevi para uma pergunta anterior:
Generally if you wish to know what a process/user/file is doing without having to run lsof against it 24/7 you use auditctl.
Assuming you have a recent-ish kernel audit control should be a simple operation. (This is in Debian-fu, if you're running Red Hat translate as appropriate)
# apt-get install auditd
Make sure that its running (/etc/init.d/auditd status).
auditctl -a entry,always -F arch=b64 -S open -F pid=<process id>
Replace b64 with b32 if you're running 32-bit arch, open can be replaced by any system call or the word 'all'
For more read the auditctl manpage.
Você pode usar este método e pedir que ele atente para a chamada de sistema 'unlink'.
O parâmetro -w é útil para assistir arquivos / diretórios, mas como a página man explica, existem advertências.
-w caminho Insira um relógio para o objeto do sistema de arquivos no caminho. Você não pode inserir um relógio no diretório de nível superior. Isso é proibido pelo kernel. Os curingas também não são suportados e gerarão um aviso. A maneira como os relógios trabalham é rastreando o inode internamente. Isso significa que, se você colocar um relógio em um diretório, verá o que parecem ser eventos de arquivo, mas na verdade é apenas a atualização de metadados. Você pode perder alguns eventos fazendo isso. Se você precisar assistir a todos os arquivos em um diretório, é recomendável colocar um relógio individual em cada arquivo. Ao contrário das regras de auditoria do syscall, os relógios não afetam o desempenho com base no número de regras enviadas ao kernel.