Exclua essa regra e tente isto:
auditctl -w <path-to-file> -p wa -k mystery-file
Verifique também se o /etc/init.d/auditd foi iniciado.
Outro dia eu configurei um pequeno script de shell em um servidor Debian para me enviar um email quando os arquivos mudam; parece assim:
#!/bin/sh
items='find /var/www/vhosts -regex ".*/httpdocs/.*" -newer files_start -ls'
if [ ! -z "$items" ]
then
touch files_start
echo "$items" | mail -s "new file(s)" "[email protected]"
fi
Continuei sendo notificado de um misterioso arquivo de texto de tamanho 0 (acessível pela Web, gravável pelo PHP e pelo usuário vhost, mas não pelo Apache) sendo modificado de 2 a 3 vezes por dia, portanto configurei a auditoria com a seguinte regra .
auditctl -l
LIST_RULES: exit,always watch=/var/www/vhosts/path/to/file.txt perm=rwa key=wh1
Eu testei e com ausearch obtive, como esperado:
...comm="touch" exe="/bin/touch"...
Depois de receber o próximo email com a nova data de modificação, eu corri ausearch: sem novas correspondências!
Como isso pode acontecer?
---- UPDATE ----
Eu descobri por outros meios que o processo é o PHP rodando como o fastCGI chamado pelo Apache. A chamada da função PHP é:
touch('path/to/file.txt');
Então a questão se torna: Como o fastCGI PHP altera um arquivo e a detecção de escape pelo auditd? Isso está começando a parecer um erro de auditoria.
Exclua essa regra e tente isto:
auditctl -w <path-to-file> -p wa -k mystery-file
Verifique também se o /etc/init.d/auditd foi iniciado.