重命名後不會更改的檔案 ID

重命名後不會更改的檔案 ID

我正在嘗試編寫一個系統實用程式腳本,該腳本將作為 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

如果我重命名可以用來鍵入所有文件而不是名稱的文件,是否有一些文件 ID 不會更改?這樣,在 T1 處我將鍵入文件,但 ID 而不是名稱和文件名稱將只是另一個屬性。在 T3,我將能夠分辨這是同一個文件,但名稱已更改,因為 ID 保持不變。

答案1

聽起來您正在尋找使用索引節點。基於 inode 引用文件是解決一些常見文件名問題的好方法(例如嘗試刪除名為“test*”的文件,這通常會使 rm 猶豫不決),並且在您的特定情況下應該允許您引用該對象。

答案2

我給你的第一個答案是對檔案執行 md5sum 並儲存結果。

當我想起一個舊文章關於有校驗和的檔案系統。
遵循這個概念,有一個實驗選項ext4 檔案系統

有一個2013年報告它定義了 ext4 的這個特性,實驗性的,但總是比 Btrfs 更好。作者編寫了一個腳本來克服為每個檔案產生校驗和並將其儲存為擴展屬性的穩定性問題。您可以在報告中找到腳本和說明。

也許此解決方案之一適合您。

答案3

您的問題聽起來像是您需要一個基於自訂主機的入侵偵測系統。

查看其中一些,檢查您是否可以按照您喜歡的行為方式編譯或配置它。

一些名字:samhain tripwire aide

相關內容