我想确保没有人更改文件。为了做到这一点,我不仅要检查文件的 MD5 总和,还要检查它的大小,因为据我了解,这个额外的简单检查可以复杂地伪造几个数字。
我可以相信stat
返回的尺寸吗?我不是说是否对stat
自身进行了更改。我没那么深。但是,例如,是否可以stat
通过破解目录文件来损害返回的文件大小?或者通过类似的方式,不需要超级用户权限?
是Linux。
我想确保没有人更改文件。为了做到这一点,我不仅要检查文件的 MD5 总和,还要检查它的大小,因为据我了解,这个额外的简单检查可以复杂地伪造几个数字。
我可以相信stat
返回的尺寸吗?我不是说是否对stat
自身进行了更改。我没那么深。但是,例如,是否可以stat
通过破解目录文件来损害返回的文件大小?或者通过类似的方式,不需要超级用户权限?
是Linux。
这是稀疏文件的演示,这是一种可能误导大小的方式:
如您所见,字节数显示
ls
并stat
显示分配的空间,但只有块数stat
和输出du
甚至接近文件的实际内容。您询问是否有人可能会通过破解目录文件来破坏 stat 返回的文件的大小。不,那是不可能的。该目录只是文件名和 inode 编号的列表。所有其他文件信息(所有者、组、模式、大小等)都包含在 inode 中(至少在符合 POSIX 的文件系统中),并且是 stat 收集这些信息的地方。
为什么要关心文件的大小?比较 MD5 和将绝对确定地告诉您文件是否已更改。文件中的翻转位将保留文件大小,但可能是完全不同的文件。