Идентификатор файла, который не меняется при переименовании

Идентификатор файла, который не меняется при переименовании

Я пытаюсь написать скрипт системной утилиты, который будет запускаться как задание cron и собирать статистику файловой системы и параметры среды, чтобы отслеживать как можно больше изменений.

Рассмотрим следующую временную шкалу:

T0: there is a file /dir/fileX.txt
T1: job runs and captures every file and its stats (permissions, size, checksum etc), including /dir/fileX.txt
T2: mv /dir/fileX.txt /dir/fileY.txt
T3: job runs again and recaptures the file system.  But all it can tell is that fileX.txt was deleted and fileY.txt created

Есть ли какой-то идентификатор файла, который не изменится, если я переименую файл, по которому я могу задавать ключи для всех файлов, а не по имени? Таким образом, в T1 я бы задал ключ файла, но этот идентификатор, а не имя, и имя файла было бы просто еще одним атрибутом. В T3 я смогу сказать, что это тот же файл, но имя изменилось, потому что идентификатор остался прежним.

решение1

Похоже, что использование inodes — это то, что вы ищете. Ссылка на файлы на основе их inode — хороший способ обойти некоторые распространенные проблемы с именами файлов (например, попытка удалить файл с именем "test*", которая обычно приводит к отказу rm), и в вашем конкретном случае должна позволить вам ссылаться на объект.

решение2

Первый ответ, который я бы вам дал, — это выполнить проверку md5sum для файла и сохранить результаты.

После того, как я вспомнилстарая статьяо файловой системе с контрольной суммой.
Следуя этой концепции, есть экспериментальный вариант сфайловые системы ext4.

Естьотчет 2013 годаопределяющий эту особенность ext4 experimental, но всегда лучше, чем Btrfs. Автор создал скрипт для преодоления этих проблем со стабильностью, которые генерируют контрольную сумму для каждого файла и сохраняют ее как расширенный атрибут. Скрипт и инструкцию вы найдете в отчете.

Возможно, одно из этих решений подойдет именно вам.

решение3

Ваш вопрос звучит так, будто вам нужна настраиваемая система обнаружения вторжений на базе хоста.

Ознакомьтесь с некоторыми из них, чтобы проверить, сможете ли вы скомпилировать или настроить их так, как вам нужно.

Некоторые имена:samhain tripwire aide

Связанный контент