阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

教你校验 Debian 软件包的MD5

29次阅读
没有评论

共计 6514 个字符,预计需要花费 17 分钟才能阅读完成。

导读 下载软件包时,你可能面临这些问题:网络连接不稳定或者突然断电,这会导致安装的软件包受到损坏。那么本文将指导你如何在 Linux 下生成 MD5 校验和并使用它来校验文件。

教你校验 Debian 软件包的 MD5

如何对照 MD5 校验和校验已安装的 Debian 软件包

在 Debian/Ubuntu 系统上,你可以使用 debsums 工具来校验已安装软件包的 MD5 和。如果你想在安装之前知道关于 debsums 软件包的信息,可以使用 APT-CACHE,就像这样:

apt-cache search debsums

下一步,使用 apt 命令来安装它,如下所示:

sudo apt install debsums

现在可以了解如何使用 debsums 工具,来校验已安装软件包的 MD5 和了。

说明:我在下面的所有命令中使用了 sudo,因为普通用户可能没有某些文件的读取权限。

此外,来自 debsums 命令的输出在左边显示了文件位置,在右边显示了检验结果。你会得到三种可能的结果,它们包括:

  • · OKDD 表明某个文件的 MD5 和是好的。
  • · FAILEDDD 表明某个文件的 MD5 和不匹配。
  • · REPLACEDDD 意味着某个特定文件已被来自另一个软件包的文件所更换。

如果你不用任何选项来运行,debsums 会对照常规的 md5sum 文件来校验系统上的每个文件,扫描文件系统、寻找 MD5 和

  1. /usr/bin/a11y-profile-manager-indicator OK
  2. /usr/share/doc/a11y-profile-manager-indicator/copyright OK
  3. /usr/share/man/man1/a11y-profile-manager-indicator.1.gz OK
  4. /usr/share/accounts/providers/facebook.provider OK
  5. /usr/share/accounts/qml-plugins/facebook/Main.qml OK
  6. /usr/share/accounts/services/facebook-microblog.service OK
  7. /usr/share/accounts/services/facebook-sharing.service OK
  8. /usr/share/doc/account-plugin-facebook/copyright OK
  9. /usr/share/accounts/providers/flickr.provider OK
  10. /usr/share/accounts/qml-plugins/flickr/Main.qml OK
  11. /usr/share/accounts/services/flickr-microblog.service OK
  12. /usr/share/accounts/services/flickr-sharing.service OK
  13. /usr/share/doc/account-plugin-flickr/copyright OK
  14. /usr/share/accounts/providers/google.provider OK
  15. /usr/share/accounts/qml-plugins/google/Main.qml OK
  16. /usr/share/accounts/services/google-drive.service OK
  17. /usr/share/accounts/services/google-im.service OK
  18. /usr/share/accounts/services/picasa.service OK
  19. /usr/share/doc/account-plugin-google/copyright OK
  20. /lib/systemd/system/accounts-daemon.service OK
  21. /usr/lib/accountsservice/accounts-daemon OK
  22. /usr/share/dbus-1/interfaces/org.freedesktop.Accounts.User.xml OK
  23. /usr/share/dbus-1/interfaces/org.freedesktop.Accounts.xml OK
  24. /usr/share/dbus-1/system-services/org.freedesktop.Accounts.service OK
  25. /usr/share/doc/accountsservice/README OK
  26. /usr/share/doc/accountsservice/TODO OK
  27. ….

为了能够校验每个软件包的每个文件和配置文件,查找任何变化,请加入 - a 或 –all 选项:

sudo debsums --all

校验所有配置文件的 MD5 和:

  1. /usr/bin/a11y-profile-manager-indicator OK
  2. /usr/share/doc/a11y-profile-manager-indicator/copyright OK
  3. /usr/share/man/man1/a11y-profile-manager-indicator.1.gz OK
  4. /etc/xdg/autostart/a11y-profile-manager-indicator-autostart.desktop OK
  5. /usr/share/accounts/providers/facebook.provider OK
  6. /usr/share/accounts/qml-plugins/facebook/Main.qml OK
  7. /usr/share/accounts/services/facebook-microblog.service OK
  8. /usr/share/accounts/services/facebook-sharing.service OK
  9. /usr/share/doc/account-plugin-facebook/copyright OK
  10. /etc/signon-ui/webkit-options.d/www.facebook.com.conf OK
  11. /usr/share/accounts/providers/flickr.provider OK
  12. /usr/share/accounts/qml-plugins/flickr/Main.qml OK
  13. /usr/share/accounts/services/flickr-microblog.service OK
  14. /usr/share/accounts/services/flickr-sharing.service OK
  15. /usr/share/doc/account-plugin-flickr/copyright OK
  16. /etc/signon-ui/webkit-options.d/login.yahoo.com.conf OK
  17. /usr/share/accounts/providers/google.provider OK
  18. /usr/share/accounts/qml-plugins/google/Main.qml OK
  19. /usr/share/accounts/services/google-drive.service OK
  20. /usr/share/accounts/services/google-im.service OK
  21. /usr/share/accounts/services/picasa.service OK
  22. /usr/share/doc/account-plugin-google/copyright OK

还有可能只校验配置文件,不包括软件包的其他所有文件,为此只要使用 - e 或 –config 选项:

sudo debsums --config

只校验配置文件的 MD5 和:

  1. /etc/xdg/autostart/a11y-profile-manager-indicator-autostart.desktop OK
  2. /etc/signon-ui/webkit-options.d/www.facebook.com.conf OK
  3. /etc/signon-ui/webkit-options.d/login.yahoo.com.conf OK
  4. /etc/signon-ui/webkit-options.d/accounts.google.com.conf OK
  5. /etc/dbus-1/system.d/org.freedesktop.Accounts.conf OK
  6. /etc/acpi/asus-keyboard-backlight.sh OK
  7. /etc/acpi/events/asus-keyboard-backlight-down OK
  8. /etc/acpi/ibm-wireless.sh OK
  9. /etc/acpi/events/tosh-wireless OK
  10. /etc/acpi/asus-wireless.sh OK
  11. /etc/acpi/events/lenovo-undock OK
  12. /etc/default/acpi-support OK
  13. /etc/acpi/events/ibm-wireless OK
  14. /etc/acpi/events/asus-wireless-on OK
  15. /etc/acpi/events/asus-wireless-off OK
  16. /etc/acpi/tosh-wireless.sh OK
  17. /etc/acpi/events/asus-keyboard-backlight-up OK
  18. /etc/acpi/events/thinkpad-cmos OK
  19. /etc/acpi/undock.sh OK
  20. /etc/acpi/events/powerbtn OK
  21. /etc/acpi/powerbtn.sh OK
  22. /etc/init.d/acpid OK
  23. /etc/init/acpid.conf OK
  24. /etc/default/acpid OK

下一步,如果想在 debsums 的输出中只显示变化的文件,请使用 - c 或 –changed 选项。我在自己的系统中没有找到任何变化的文件。

sudo debsums --changed

下一个命令输出没有 md5sum 信息的文件,这里我们使用 - l 和 –list-missing 选项。在我的系统上,该命令没有显示任何文件。

sudo debsums --list-missing

现在只要指定名称,就可以校验单一软件包的 md5 和:

sudo debsums apache2

校验已安装软件包的 MD5 和:

  1. /lib/systemd/system/apache2.service.d/apache2-systemd.conf OK
  2. /usr/sbin/a2enmod OK
  3. /usr/sbin/a2query OK
  4. /usr/sbin/apache2ctl OK
  5. /usr/share/apache2/apache2-maintscript-helper OK
  6. /usr/share/apache2/ask-for-passphrase OK
  7. /usr/share/bash-completion/completions/a2enmod OK
  8. /usr/share/doc/apache2/NEWS.Debian.gz OK
  9. /usr/share/doc/apache2/PACKAGING.gz OK
  10. /usr/share/doc/apache2/README.Debian.gz OK
  11. /usr/share/doc/apache2/README.backtrace OK
  12. /usr/share/doc/apache2/README.multiple-instances   OK
  13. /usr/share/doc/apache2/copyright OK
  14. /usr/share/doc/apache2/examples/apache2.monit OK
  15. /usr/share/doc/apache2/examples/secondary-init-script OK
  16. /usr/share/doc/apache2/examples/setup-instance OK
  17. /usr/share/lintian/overrides/apache2 OK
  18. /usr/share/man/man1/a2query.1.gz OK
  19. /usr/share/man/man8/a2enconf.8.gz OK
  20. /usr/share/man/man8/a2enmod.8.gz OK
  21. /usr/share/man/man8/a2ensite.8.gz OK
  22. /usr/share/man/man8/apache2ctl.8.gz OK

假设你以普通用户的身份运行 debsums,没有 sudo 权限,那么可以使用 –ignore-permissions 选项,把权限错误当成警告:

debsums --ignore-permissions
如何利用.Deb 文件生成 MD5 和?

-g  选项告诉 debsums 利用 deb 内容生成 MD5 和,其中:

  • · missingDD 指令 debsums 利用 deb,为不提供 MD5 和的软件包生成 MD5 和。
  • · allDD 指令 debsums 忽视磁盘上和,使用 deb 文件中存在的和,或者如果没有的话,就用它生成一个。
  • · keepDD 指令 debsums 把提取 / 生成的和写入到 /var/lib/dpkg/info/package.md5sums 文件。
  • · nocheckDD 意味着提取 / 生成的和没有对照已安装软件包来进行校验。

如果你看一下目录 /var/lib/dpkg/info/ 的内容,就会看到各个文件的 md5sum,如下图所示:

cd /var/lib/dpkg/info
ls *.md5sums

列出软件包的所有 MD5 和:

  1. a11y-profile-manager-indicator.md5sums
  2. account-plugin-facebook.md5sums
  3. account-plugin-flickr.md5sums
  4. account-plugin-google.md5sums
  5. accountsservice.md5sums
  6. acl.md5sums
  7. acpid.md5sums
  8. acpi-support.md5sums
  9. activity-log-manager.md5sums
  10. adduser.md5sums
  11. adium-theme-ubuntu.md5sums
  12. adwaita-icon-theme.md5sums
  13. aisleriot.md5sums
  14. alsa-base.md5sums
  15. alsa-utils.md5sums
  16. anacron.md5sums
  17. apache2-bin.md5sums
  18. apache2-data.md5sums
  19. apache2.md5sums
  20. apache2-utils.md5sums
  21. apg.md5sums
  22. apparmor.md5sums
  23. app-install-data.md5sums
  24. app-install-data-partner.md5sums

记住:使用 - g 选项与 –generate=missing 一样,你可以试着为 apache2 软件包生成 md5 和,只要运行下面这个命令:

sudo debsums --generate=missing apache2

由于我系统上的 apache2 软件包已经有 md5 和,它会显示下列输出,这与运行 $ sudo debsums apache2 的结果一样。

想了解更多有意思的选项和使用方面的信息,请参阅 debsums 参考手册页。

man debsums

在本文中,我们介绍了如何对照 MD5 校验和校验已安装的 Debian/Ubuntu 软件包,为了避免在你的系统上安装和执行损坏的二进制文件或软件包文件,有必要对照软件包中存储的信息来校验文件系统上的文件。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计6514字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中