我聘请了一位顾问来将一些自定义软件安装到 CentOS 5 服务器上。她完成后,我想查看她所做的更改,以便对其进行自动化或优化。
我在想:
- 不管怎样,在将系统交给她之前,先对其进行快照。
- 完成后,比较快照以查看文件更改、权限更改等。
我已经让她的 shell 自动运行script
以记录她的控制台。但是,这不会捕获所有文件更改(例如,如果她使用 edit 命令vim
修改文件)。
答案1
如果您只是想回答“此系统上的哪些文件已更改”这个问题,那么请使用一个可以生成所有文件校验和的工具。在顾问进行任何更改之前运行它,之后再运行它,然后查找已更改的文件。将结果存储在系统之外的其他人那里。当然,请注意,某些文件在正常运行过程中会定期更改。
执行此任务的工具通常称为“文件完整性检查器”。解决方案包括绊线, 阿菲克,助手, 和别的。 本文Samhain 作者撰写的这篇文章对各种文件完整性检查器进行了相当好的概述。我最近没有使用过其中任何一个。
如果您确实想查看之前和之后的内容,一种选择是先备份所有内容,然后将系统状态与备份进行比较。您可以使用或这样简单的工具进行
tar
备份rsync
,稍后您可以将备份与系统的当前状态进行比较。您可以使用为 (1) 选择的任何工具来识别已更改的文件,然后比较备份和当前文件。如果您不担心恶意更改,并且您拥有基于 LVM 的配置,则可以通过创建文件系统快照来跳过 (2) 中的备份步骤。当然,这不能防止恶意更改的原因是快照与原始文件共享相同的存储,而怀有恶意的人只需更新快照即可,但它确实提供了一种资源需求相对较少的解决方案。