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 .