Use um mecanismo de auditoria de alteração de arquivo como o LoggedFS ou o Linux subsistema de auditoria . Veja também Como determinar qual processo está criando um arquivo? , Registre todas as invocações de todos os programas SUID? , Stump the Chump com o Auditd 01 ...
Supondo que o servidor esteja executando o Linux, o sistema de auditoria parece a melhor solução. Registre todas as operações de renomeação de arquivos na árvore de diretórios relevante, por exemplo, /var/www
:
auditctl -a exit,always -S rename -F dir=/var/www
Os logs de auditoria estão normalmente em /var/log/audit/audit.log
. Aqui está um registro de amostra de cd /var/www; mv foo bar
com a regra acima:
type=SYSCALL msg=audit(1489528471.598:669): arch=c000003e syscall=82 success=yes exit=0 a0=7ffd38079c14 a1=7ffd38079c18 a2=20 a3=7ffd38077940 items=4 ppid=5661 pid=5690 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts11 ses=1 comm="mv" exe="/bin/mv" key=(null)
type=CWD msg=audit(1489528471.598:669): cwd="/var/www"
type=PATH msg=audit(1489528471.598:669): item=0 name="/var/www" inode=22151424 dev=fc:01 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
type=PATH msg=audit(1489528471.598:669): item=1 name="/var/www" inode=22151424 dev=fc:01 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
type=PATH msg=audit(1489528471.598:669): item=2 name="foo" inode=22152394 dev=fc:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=DELETE
type=PATH msg=audit(1489528471.598:669): item=3 name="bar" inode=22152394 dev=fc:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=CREATE