是否可以列出系统上不属于软件包的每个文件?或者它们是否已被修改?
可能需要使用类似:apt-get、apt-files、dpkg-query 等
就上下文而言,想象一下继承一个无法格式化的旧服务器,并且您想要检查每个文件是否正常...我知道在 Debian 版本之间升级时或在没有“--purge”的情况下删除软件包后不会出现这种情况,因为它似乎留下了大量(通常是配置)文件。
同样,如果要用新服务器替换该服务器,您需要确保所有配置差异(与基本安装相比)都已转移(如果不再相关则忽略 - 例如,在 sshd_config 中添加了一条红色“端口”行)。
它还可以帮助识别是否在不使用 apt-get 的情况下安装了任何东西。
答案1
一切安装的文件可以通过查看列表来查看软件包cat /var/lib/dpkg/info/*.list
。大多数软件包都包含文件内容的 md5sum,可以通过查看来查看cat /var/lib/dpkg/info/*.md5sums
。但有些软件包不包含这些总和。
如果您安装了软件包 debsums,您可以像debsums -a
这样运行该程序,它将检查所有已安装文件和配置的 md5sum。
请注意,有些软件包不会安装配置文件或内容。相反,这些文件是由这些软件包在安装时创建的。这些文件不会出现在与软件包关联的文件列表或 md5sums 列表中。就软件包系统而言,这些是它不拥有的数据文件。
同样,如果要用新服务器替换该服务器,您需要确保所有配置差异(与基本安装相比)都已转移(如果不再相关则忽略 - 例如,在 sshd_config 中添加了一条红色“端口”行)。
我认为你应该安装etckeeper安装系统后,首先要安装软件包。此软件包基本上会放入/etc
您选择的版本控制系统(我更喜欢 git)。有了这个,您可以准确地看到何时发生了哪些变化。很容易将此存储库克隆到新系统,然后针对新系统进行差异分析。因此,您只需一个命令就可以准确地看到源系统和目标系统之间的差异。
答案2
cruft / etckeeper / debsums
Package: cruft
Description-en: program that finds any cruft built up on your system
cruft is a program to look over your system for anything that shouldn't
be there, but is; or for anything that should be there, but isn't..
It bases most of its results on dpkg's database, as well as a list of
`extra files' that can appear during the lifetime of various packages.
cruft is still in pre-release; your assistance in improving its accuracy
and performance is appreciated.
Package: debsums
Description-en: tool for verification of installed package files against MD5 checksums
debsums can verify the integrity of installed package files against
MD5 checksums installed by the package, or generated from a .deb
archive.
Package: etckeeper
Description-en: store /etc in git, mercurial, bzr or darcs
The etckeeper program is a tool to let /etc be stored in a git, mercurial,
bzr or darcs repository. It hooks into APT to automatically commit changes
made to /etc during package upgrades. It tracks file metadata that version
control systems do not normally support, but that is important for /etc, such
as the permissions of /etc/shadow. It's quite modular and configurable, while
also being simple to use if you understand the basics of working with version
control.
答案3
答案4
要查看 debian 软件包中是否有任何非配置文件自该软件包以来被修改过,您可以使用 debsums。
查看第三方软件包是否已安装比较棘手,您可以将版本号和校验和与来自 packages.debian.org 的信息进行比较,但我不确定自动执行这一操作有多困难。
检查配置文件的修改很困难,因为配置文件可以通过多种不同的方式管理。如果它们是“conffiles”,那么 dpkg 会知道它们是否被修改,但许多配置文件却没有。
如果服务器保持最新状态,那么与安装相同软件包的相同版本的 Debian 进行交叉比较可能是一个不错的选择。显然,如果您不想更新服务器,这种方法效果不佳(我想您可以制作服务器映像并对其进行更新,但这会引发一系列问题)。