检查Unix / Linux的文件完整性

时间:2012-11-30 04:58:36

标签: linux unix

我不知道如何通过散列算法md5来检查Unix / Linux上的文件的完整性。 我参与开发bash脚本以检查Linux上每个特定文件夹(包括子文件夹)中所需文件的md5。所以我的问题是可以吗?背景是在对系统进行更改之前检查文件的完整性。

感谢您的建议, Ponomy

5 个答案:

答案 0 :(得分:5)

这很容易做到!使用md5sum命令。

答案 1 :(得分:1)

md5sum不是递归的,这是他的问题中特别要求的。也许helper.js就足够了,但我更喜欢hashdeep工具。

使用find /path/to/files -type f -print0 | xargs -0 md5sum > checksum.md5。然后,您可以使用md5deep -r /path/to/files > checksum.md5检查是否有任何更改。当然,这并没有检测到任何新添加的文件。如果你是偏执狂,你也可以使用sha256deep和sha256sum。 ; - )

您也可以使用md5sum -c checksum.md5 | grep -v ' OK$'进行检查。或者,您可以使用md5deep -rx checksum.md5 /path/to/files,然后使用hashdeep -r /path/to/files > hashes来"审核"文件。我不太喜欢hashdeep工具进行检查和审核的方式,但你可能认为它很棒,所以你去了。 : - )

当然,这些都不会检查文件元数据(时间戳,所有权,权限等)。但是,你会遇到像TripWire或AIDE这样的事情。

答案 2 :(得分:0)

这是我的脚本,用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

答案 3 :(得分:0)

最好使用默认情况下大多数Linux系统中包含的sha256sum或sha512sum:

$ sha256sum file
a9c558e2aee7e36080457eabaf5e82b5bcb4f168a552b2c2757121bd72844abc  file
$ sha512sum file
b6d831ff00d55ab467e2c63e27e229f4b1f6e76542709260ead9cde6f426fe76a985ee52cc31b1ab68035d3a37841171c658e3c79cb673566a555d4ab45ff46d  file

答案 4 :(得分:0)

使用此命令获取MD5哈希值:

md5sum <filename>