Existe um comando para exibir uma lista de usuários que modificaram um arquivo fornecendo um histórico do arquivo?
Eu sei que isso é possível com svn/git etc. mas temos um arquivo de configuração que não está no SVN e alguém o modificou.
Responder1
Se você ainda não habilitou algum tipo de auditoria, não há uma ferramenta que possa relatar isso após a modificação do arquivo. Você pode obter a data e a hora da última modificação do arquivo, mas não um histórico de revisões.
Seguindo em frente, você pode instalar, configurar e habilitar o auditd
pacote.
Na auditctl
página de manual:
-w path
Insert a watch for the file system object at path. You cannot insert
a watch to the top level directory. This is prohibited by the kernel.
Wildcards are not supported either and will generate a warning. The way
that watches work is by tracking the inode internally. If you place a
watch on a file, its the same as using the -F path option on a
syscall rule. If you place a watch on a directory, its the same as using
the -F dir option on a syscall rule. The -w form of writing watches
is for backwards compatibility and the syscall based form is more
expressive. Unlike most syscall auditing rules, watches do not impact
performance based on the number of rules sent to the kernel. The only
valid options when using a watch are the -p and -k. If you need to
anything fancy like audit a specific user accessing a file, then use
the syscall auditing form with the path or dir fields.
Há mais discussão sobre isso na perguntaRegistrando criações de arquivos ocultos
Responder2
Aqui estão algumas discussões sobre hacking com o inotify para que ele forneça PID e UID. http://www.ioremap.net/node/55
Veja também Auditoria http://andries.filmer.nl/kb/Monitoring-file-system-events-with-inotify,-incron-and-authctl/129#Audit