6

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

谢谢你的建议,波诺米

4

5 回答 5

5

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

于 2012-11-30T05:01:19.283 回答
3

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 之类的东西。

于 2018-01-03T02:44:24.663 回答
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
于 2018-01-03T06:36:47.950 回答
0

最好使用大多数 linux 系统默认包含的 sha256sum 或 sha512sum:

$ sha256sum file
a9c558e2aee7e36080457eabaf5e82b5bcb4f168a552b2c2757121bd72844abc  file
$ sha512sum file
b6d831ff00d55ab467e2c63e27e229f4b1f6e76542709260ead9cde6f426fe76a985ee52cc31b1ab68035d3a37841171c658e3c79cb673566a555d4ab45ff46d  file
于 2019-12-21T17:13:21.037 回答
0

使用此命令获取 MD5 哈希:

md5sum <filename>
于 2019-12-21T17:41:51.290 回答