我不知道如何通過散列算法md5檢查Unix/Linux上文件的完整性。 我打算開發bash腳本來檢查Linux上每個特定文件夾(包括子文件夾)中所需文件的md5。所以我的問題是可以做到的嗎?背景是在系統上進行更改之前檢查文件的完整性。檢查Unix/Linux的文件完整性
謝謝您的advicement, Ponomy
我不知道如何通過散列算法md5檢查Unix/Linux上文件的完整性。 我打算開發bash腳本來檢查Linux上每個特定文件夾(包括子文件夾)中所需文件的md5。所以我的問題是可以做到的嗎?背景是在系統上進行更改之前檢查文件的完整性。檢查Unix/Linux的文件完整性
謝謝您的advicement, Ponomy
md5sum不是遞歸的,這是在他的問題中特別要求的。也許find /path/to/files -type f -print0 | xargs -0 md5sum > checksum.md5
就足夠了,但我更喜歡hashdeep工具。使用md5deep -r /path/to/files > checksum.md5
。然後,您可以使用md5sum -c checksum.md5 | grep -v ' OK$'
檢查是否有任何更改。當然,這不會檢測到任何新添加的文件。如果你偏執,你也可以使用sha256deep和sha256sum。 ;-)
你也可以用md5deep -rx checksum.md5 /path/to/files
來做檢查。或者,您可以使用hashdeep -r /path/to/files > hashes
然後hashdeep -ravvk hashes /path/to/files
來「審覈」這些文件。我並不是真正喜歡hashdeep工具進行檢查和審計的人,但你可能認爲它很棒,所以你去了。 :-)
當然,這些都不會檢查文件元數據(時間戳,所有權,權限等)。但是,那麼你正在進入諸如TripWire或AIDE之類的東西。
這是我用md5sum檢查2目錄中所有文件完整性的腳本。您可以更改要檢查的目錄名稱:
#!/bin/sh
cd persediaan
find . -exec md5 {} \; | sort > /tmp/file1_md5_sort
cd -
cd tmp/persediaan
find . -exec md5 {} \; | grep -v Tag | sort > /tmp/file2_md5_sort
cd -
diff /tmp/file1_md5_sort /tmp/file2_md5_sort | grep -v CVS | grep MD5
想必您瞭解'md5sum',對吧?那麼你卡在哪裏?你確實理解保持參考哈希離線的重要性,對嗎? – dmckee