如何根据第三方 deb 包验证系统中安装的文件?

如何根据第三方 deb 包验证系统中安装的文件?

我知道dpkg -Vdebsums,但我需要根据给定的 deb 文件检查已安装的文件,而不是存储在系统中的元数据。

答案1

您可以使用它dpkg-deb -x来打开一个包,生成一个要检查的哈希列表,然后验证它们:

$ mkdir /tmp/bat
$ cd /tmp
$ dpkg-deb -x /var/cache/apt/archives/bat_0.12.1-1build1_amd64.deb bat
$ cd bat
$ find . -type f -exec sha256sum '{}' + > /tmp/sums
$ cd /
$ sha256sum -c /tmp/sums 
./usr/share/man/man1/batcat.1.gz: OK
./usr/share/doc/bat/README.Debian: OK
./usr/share/doc/bat/changelog.Debian.gz: OK
./usr/share/doc/bat/copyright: OK
./usr/share/lintian/overrides/bat: OK
./usr/bin/batcat: OK
./usr/.crates2.json: OK
$ 

不过,我不知道您要解决什么问题;安装新的 .deb 软件包需要完全 root 权限,软件包提供的维护者脚本以不受限制的 root 权限运行。如果您严格想要验证软件包中的文件是否与磁盘上的内容匹配,这可以做到这一点,但不能做太多其他事情。

相关内容