系统管理工具包: 测试系统的有效性
2008-11-11 08:12:28 来源:WEB开发网核心提示: 下面是一个同样大小的文件,但有一行已经更改:location:/home/slbrown这两个文件的长度都是 22 个字符,系统管理工具包: 测试系统的有效性(2),但是内容不同,这种看似简单的更改可能导致严重的后果,许多现代解决方案提供了 md5 命令,后者生成一个文件的 128 位指纹
下面是一个同样大小的文件,但有一行已经更改:location:/home/slbrown
这两个文件的长度都是 22 个字符,但是内容不同,这种看似简单的更改可能导致严重的后果,即使检查文件大小,也查不出有任何不同。
至于其他参数、修改时间、文件模式和其他信息都有可能被修改。您可以使用 touch 命令更改修改时间。甚至通过更改计算机上的时间和重新创建该文件可以伪造文件创建时间。
在 UNIX 系统上非常难以更改的一个项目是文件索引节点数值。索引节点数值是第一次创建文件时提供给文件的唯一 ID。基础文件系统驱动程序使用索引节点数值识别文件系统上的文件。在编辑文件后,索引节点通常会发生更改,因为大多数编辑器在删除旧文件并将新文件重命名为最初名称之前会创建新文件,并将新内容写入该文件。因此,进行索引节点比较是检查文件是否已编辑的很好方法。
记录这些信息片段仍然是不够的,还需要一种比较文件内容的有效方法。最好的方法可能要数使用文件校验和。
文件校验和
为文件创建校验和是比较文件内容是否更改的传统方法,该方法无需物理比较每个文件的每个字节。
校验和的工作方法是对文件内容使用一个算法。该算法为文件内容生成几乎是唯一的指纹。可以通过许多不同的方法完成此任务。例如,可以将每个字节的值加起来,使用一种算法将复杂的计算应用到给定文件的各个位或位组。具体方法不在本文的讨论范围之内,并且使用哪种方法取决于您使用的校验和工具。
UNIX 包括一个简单的校验和命令 sum。此命令非常简单,但是它提供了可用于识别大多数文件之间差异的近乎唯一的数值。不过,此算法也存在一些局限性。许多现代解决方案提供了 md5 命令。后者生成一个文件的 128 位指纹,并且可以在理论上为任意大小的任何文件生成唯一的签名。
更多精彩
赞助商链接