![Как отследить перемещение файла/папки и куда оно было перемещено?](https://rvso.com/image/768914/%D0%9A%D0%B0%D0%BA%20%D0%BE%D1%82%D1%81%D0%BB%D0%B5%D0%B4%D0%B8%D1%82%D1%8C%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%2F%D0%BF%D0%B0%D0%BF%D0%BA%D0%B8%20%D0%B8%20%D0%BA%D1%83%D0%B4%D0%B0%20%D0%BE%D0%BD%D0%BE%20%D0%B1%D1%8B%D0%BB%D0%BE%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D1%89%D0%B5%D0%BD%D0%BE%3F.png)
Я ищу способ отслеживать, когда перемещается файл/папка, а также куда он был перемещен.
Пока что в своих исследованиях я сталкивался с такими инструментами, как auditd
, watch
и inotify
. Хотя эти инструменты отлично подходят для отслеживания перемещения файла, они не отслеживают, куда именно был перемещен файл.
Я также посмотрел системные журналы, создаваемые при перемещении файла, но их неудобно читать/анализировать.
Есть ли какие-то инструменты, которые могут выполнить эту функцию? Или мне начать писать свой собственный скрипт?
решение1
Мне удалось заставить эту функциональность работать с auditd
.
Следующая команда отслеживает
auditctl -a always,exit -F arch=b64 -S rename,rmdir,unlink,unlinkat,renameat -F dir=/path/to/folder/to/monitor -F key=DONT_MOVE
Ключом может быть любая строка по вашему выбору, и она будет использоваться для фильтрации журналов аудита для этой конкретной записи.
Для сохранения вы можете добавить указанную выше строку auditctl
без /etc/audit/audit.rules
.
Чтобы проверить, перемещалась ли папка/куда, запустите ausearch -k DONT_MOVE
. Журналы не очень удобны для восприятия человеком, но в них указана временная метка и пути до/откуда.