Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查Unix/Linux的文件完整性_Linux_Unix - Fatal编程技术网

检查Unix/Linux的文件完整性

检查Unix/Linux的文件完整性,linux,unix,Linux,Unix,我不知道如何在Unix/Linux上用散列算法md5检查文件的完整性。 我致力于开发bash脚本,以检查Linux上每个特定文件夹(也包括子文件夹)中所需文件的md5。那么我的问题是有可能吗?后台是在对系统进行更改之前检查文件的完整性 谢谢你的建议, 这很容易做到!使用命令。md5sum不是递归的,这是在他的问题中特别要求的。也许find/path/to/files-type f-print0 | xargs-0 md5sum>checksum.md5就足够了,但我更喜欢hashdeep工具 使

我不知道如何在Unix/Linux上用散列算法md5检查文件的完整性。 我致力于开发bash脚本,以检查Linux上每个特定文件夹(也包括子文件夹)中所需文件的md5。那么我的问题是有可能吗?后台是在对系统进行更改之前检查文件的完整性

谢谢你的建议,
这很容易做到!使用命令。

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-ravk 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

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

$ sha256sum file
a9c558e2aee7e36080457eabaf5e82b5bcb4f168a552b2c2757121bd72844abc  file
$ sha512sum file
b6d831ff00d55ab467e2c63e27e229f4b1f6e76542709260ead9cde6f426fe76a985ee52cc31b1ab68035d3a37841171c658e3c79cb673566a555d4ab45ff46d  file

使用以下命令获取MD5哈希:

md5sum <filename>
md5sum

你大概知道
md5sum
,对吧?你被困在哪里了?您也理解保持引用哈希脱机的重要性,对吗?