Você pode investigar usando a auditoria para encontrar isso. No Ubuntu o pacote é chamado auditd
.
Use esse comando para iniciar uma investigação se um arquivo ou pasta:
auditctl -w /var/www/foo -p a
-
-w
significa observar o arquivo / pasta -
-p a
significa observar alterações nos atributos do arquivo
Agora inicie tail -f /var/log/audit/audit.log
. Quando os atributos mudarem, você verá algo parecido com isto no arquivo de log:
type=SYSCALL msg=audit(1429279282.410:59): arch=c000003e syscall=268 success=yes exit=0
a0=ffffffffffffff9c a1=23f20f0 a2=1c0 a3=7fff90dd96e0 items=1 ppid=26951 pid=32041
auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts5
ses=4294967295 comm="chmod" exe="/bin/chmod"
type=CWD msg=audit(1429279282.410:59): cwd="/root"
type=PATH msg=audit(1429279282.410:59): item=0 name="/var/www/foo" inode=18284 dev=00:13
mode=040700 ouid=0 ogid=0 rdev=00:00
Eu executei chmod 700 /var/www/foo
para ativá-lo.
- Na primeira linha, você vê
- qual executável fez isso:
exe="/bin/chmod"
- o pid do processo:
pid=32041
- Você também pode descobrir qual usuário era:
uid=0
, root no meu caso.
- qual executável fez isso:
- Na terceira linha, você vê o modo alterado:
mode=040700