跟踪Linux上的文件系统更改

在安装更新/新包之后,似乎没有一种标准化的方法来研究对文件系统所做的更改。 一个简单的实用程序在安装之前和之后创build整个系统的文件列表将会有很大帮助,因为通过区分这两个文件列表可以发现对文件系统所做的更改。 这也是一个很好的工具来检测哪些configuration文件被特定的gui设置面板修改。 什么是解决这个问题最有效的方法?

谢谢你的帮助。

大多数软件包pipe理员会告诉你他们安装了什么文件:

dpkg -L <pkgname> rpm -ql <pkgname> 

但是,这不会告诉你任何有关他们的安装后脚本可能做出的修改。 我会争辩说,实际上试图区分安装后的文件系统快照是矫枉过正。 有许多跟踪文件访问的工具可能有帮助。

  • InstallWatch将在安装过程中跟踪文件系统的变化。
  • 任何基于主机的入侵检测系统在安装软件包后都会大声抱怨。 我用samhain 。
  • 内核的审计界面可以设置为跟踪这个东西给你。

如何设置和使用Tripwire
Tripwire使用重要文件的校验和列表来检测入侵。

你可以使用类似的东西
(Tripwire本身或生成文件校验和的脚本
之前和之后你的变化活动)

MD5校验和非常快,已经可以作为md5sum

查找已修改的内容:
除了Instyle所说的之外,你还可以使用find查找过去10分钟内修改过的文件:

find/ -mmin -10

修订控制:
你也可以把/ etc的版本控制在subversion下。 这是关于这个的博客条目 。

花絮:
你也可以使用lvm快照 ,但这可能是矫枉过正的。

如果你是Debian / Ubuntu用户,请尝试etckeeper

有很多这样的实用程序。 我使用afik 。

我会从另一个angular度来谈这个,因为你没有确切地说出你将要修改系统的人。 根据您的环境,也许正确的解决scheme是不允许在本地系统上进行更改。 使用木偶等configurationpipe理系统与修订控制相结合,将所有的变化logging在中央系统上,然后根据情况适用。

这不是特定于OP的问题(由软件包pipe理器所做的更改),但是我发现这个实用程序可以帮助我知道哪些文件已经在系统范围内发生了变化。

我使用这个,因为我有一个倾向,开始新鲜的虚拟机,并作出了很多改变,build立出来,如我所需要的。 一旦完成,我决定是否应该创build一个AWS AMI,或者写厨师食谱/食谱等。有时它是一个树莓派,然后还有一个其他的挑战。

我发现最简单的是hashdeep