Você tem o sistema de auditoria do Linux para isso, eu não sei se ele está instalado por padrão no debian, mas você pode instalá-lo por:
$ sudo apt-get install auditd audispd-plugins
De lá você precisa configurá-lo, o arquivo de configuração é /etc/audit/audit.rules
, uma regra para o seu propósito seria como:
# Delete all previous rules
-D
# Set buffer size
-b 8192
# Make the configuration immutable -- reboot is required to change audit rules
-e 2
# Panic when a failure occurs
-f 2
# Generate at most 100 audit messages per second
-r 100
# -w: Watch a file or directory
# -p: Parameters to watch in this case are [w]rite and [a]ttributes,
# you can also add [r]ead and e[x]ecute but I think those
# are not needed in your case
# -k: An optional friendly name to facilitate searching the logs
-w /path/to/your/repo -p wa -k name_for_easy_searching
A configuração de auditoria está pronta, reinicie o daemon auditd para carregar as novas regras e confirme se elas estão realmente carregadas com auditctl -l
.
Agora seu repositório está sendo monitorado no nível do kernel, portanto, qualquer alteração será registrada.
Use ausearch -k name_for_easy_searching
para obter uma lista de todas as alterações feitas no seu repositório.
A partir daí, você saberá como analisar o log, ignorar as alterações feitas pelo usuário, enviar um email, configurar um cron job para verificar periodicamente ...
Boa sorte.