Ok, encontrei uma resposta neste mesmo site: Listar os arquivos acessados por um programa explica que se pode usar LoggedFS ou o Linux sistema de auditoria .
Este é o meu problema particular: estou tentando configurar git em um servidor, para o qual estou fazendo um teste em um apache instalado localmente no Ubuntu 14.04; por exemplo, posso fazer git clone fine em HTTP, mas git push falha com insufficient permission for adding an object to repository database ./objects .
Agora, em princípio, eu poderia ter usado strace para depurar isso, mas esse tipo de ação passa por git e apache e, como tal, eu realmente não sei qual processo para strace . Além disso, eu não posso nem dizer qual usuário a operação final tenta executar. A única coisa que eu sei com certeza é que é o diretório git repo ./objects que está sendo acessado, provavelmente com a intenção de criar um arquivo lá.
Então eu pensei, provavelmente o mais fácil para mim seria se houvesse um programa, que pudesse ser configurado para "escutar" acessos a um diretório, e imprimir / registrar todos esses acessos para dizer stdout; no exemplo como neste pseudocódigo:
$ ./traceDirectoryAccess --path /path/to/mygitrepo/objects
Listening for accesses on /path/to/mygitrepo/objects ...
Sat Apr 9 17:53:42 CEST 2016 - pid 1234, user myName (uid 1002) did:
> create file /path/to/mygitrepo/objects/somefile
> result: permission DENIED
...
Existe algo assim por aí? Se não houver um programa em si, talvez haja algum recurso de kernel (por exemplo, através de um arquivo em /sys/kernel/debug/ ou similar?)
Ok, encontrei uma resposta neste mesmo site: Listar os arquivos acessados por um programa explica que se pode usar LoggedFS ou o Linux sistema de auditoria .