Vyhledávání na webu

Jak zkontrolovat MD5 součty nainstalovaných balíčků v Debian/Ubuntu Linux


Přemýšleli jste někdy nad tím, proč daný binární soubor nebo balíček nainstalovaný na vašem systému nefunguje podle vašich očekávání, to znamená, že nefunguje správně tak, jak má, možná se vůbec nemůže spustit.

Při stahování balíčků můžete čelit problémům s nestabilním síťovým připojením nebo neočekávaným výpadkem napájení, což může vést k instalaci poškozeného balíčku.

Vzhledem k tomu, že je to důležitý faktor při udržování nepoškozených balíčků ve vašem systému, je proto životně důležitým krokem ověření souborů v systému souborů podle informací uložených v balíčku pomocí následujícího článku.

Doporučená četba: Naučte se generovat a ověřovat soubory pomocí kontrolního součtu MD5 v systému Linux

Jak ověřit nainstalované balíčky Debianu podle kontrolních součtů MD5

Na systémech Debian/Ubuntu můžete ke kontrole součtů MD5 nainstalovaných balíčků použít nástroj debsums. Pokud chcete znát informace o balíčku debsums před jeho instalací, můžete použít APT-CACHE takto:

apt-cache search debsums

Dále jej nainstalujte pomocí příkazu apt takto:

sudo apt install debsums

Nyní je čas naučit se používat nástroj debsums k ověření MD5sum nainstalovaných balíčků.

Poznámka: Se všemi níže uvedenými příkazy jsem použil sudo, protože některé soubory nemusí mít oprávnění ke čtení pro běžné uživatele.

Kromě toho výstup z příkazu debsums zobrazuje umístění souboru vlevo a výsledky kontroly vpravo. Můžete získat tři možné výsledky, mezi které patří:

  1. OK – označuje, že součet MD5 souboru je dobrý.
  2. FAILED – ukazuje, že součet MD5 souboru neodpovídá.
  3. REPLACED – znamená, že konkrétní soubor byl nahrazen souborem z jiného balíčku.

Když jej spustíte bez jakýchkoli voleb, debsums porovná každý soubor ve vašem systému se zásobními soubory md5sum.

sudo debsums
/usr/bin/a11y-profile-manager-indicator                                       OK
/usr/share/doc/a11y-profile-manager-indicator/copyright                       OK
/usr/share/man/man1/a11y-profile-manager-indicator.1.gz                       OK
/usr/share/accounts/providers/facebook.provider                               OK
/usr/share/accounts/qml-plugins/facebook/Main.qml                             OK
/usr/share/accounts/services/facebook-microblog.service                       OK
/usr/share/accounts/services/facebook-sharing.service                         OK
/usr/share/doc/account-plugin-facebook/copyright                              OK
/usr/share/accounts/providers/flickr.provider                                 OK
/usr/share/accounts/qml-plugins/flickr/Main.qml                               OK
/usr/share/accounts/services/flickr-microblog.service                         OK
/usr/share/accounts/services/flickr-sharing.service                           OK
/usr/share/doc/account-plugin-flickr/copyright                                OK
/usr/share/accounts/providers/google.provider                                 OK
/usr/share/accounts/qml-plugins/google/Main.qml                               OK
/usr/share/accounts/services/google-drive.service                             OK
/usr/share/accounts/services/google-im.service                                OK
/usr/share/accounts/services/picasa.service                                   OK
/usr/share/doc/account-plugin-google/copyright                                OK
/lib/systemd/system/accounts-daemon.service                                   OK
/usr/lib/accountsservice/accounts-daemon                                      OK
/usr/share/dbus-1/interfaces/org.freedesktop.Accounts.User.xml                OK
/usr/share/dbus-1/interfaces/org.freedesktop.Accounts.xml                     OK
/usr/share/dbus-1/system-services/org.freedesktop.Accounts.service            OK
/usr/share/doc/accountsservice/README                                         OK
/usr/share/doc/accountsservice/TODO                                           OK
....

Chcete-li povolit kontrolu změn všech souborů a konfiguračních souborů pro každý balíček, zahrňte možnost -a nebo --all:

sudo debsums --all
/usr/bin/a11y-profile-manager-indicator                                       OK
/usr/share/doc/a11y-profile-manager-indicator/copyright                       OK
/usr/share/man/man1/a11y-profile-manager-indicator.1.gz                       OK
/etc/xdg/autostart/a11y-profile-manager-indicator-autostart.desktop           OK
/usr/share/accounts/providers/facebook.provider                               OK
/usr/share/accounts/qml-plugins/facebook/Main.qml                             OK
/usr/share/accounts/services/facebook-microblog.service                       OK
/usr/share/accounts/services/facebook-sharing.service                         OK
/usr/share/doc/account-plugin-facebook/copyright                              OK
/etc/signon-ui/webkit-options.d/www.facebook.com.conf                         OK
/usr/share/accounts/providers/flickr.provider                                 OK
/usr/share/accounts/qml-plugins/flickr/Main.qml                               OK
/usr/share/accounts/services/flickr-microblog.service                         OK
/usr/share/accounts/services/flickr-sharing.service                           OK
/usr/share/doc/account-plugin-flickr/copyright                                OK
/etc/signon-ui/webkit-options.d/login.yahoo.com.conf                          OK
/usr/share/accounts/providers/google.provider                                 OK
/usr/share/accounts/qml-plugins/google/Main.qml                               OK
/usr/share/accounts/services/google-drive.service                             OK
/usr/share/accounts/services/google-im.service                                OK
/usr/share/accounts/services/picasa.service                                   OK
/usr/share/doc/account-plugin-google/copyright                                OK
...

Je také možné zkontrolovat pouze konfigurační soubor s výjimkou všech ostatních souborů balíčku pomocí volby -e nebo --config:

sudo debsums --config
/etc/xdg/autostart/a11y-profile-manager-indicator-autostart.desktop           OK
/etc/signon-ui/webkit-options.d/www.facebook.com.conf                         OK
/etc/signon-ui/webkit-options.d/login.yahoo.com.conf                          OK
/etc/signon-ui/webkit-options.d/accounts.google.com.conf                      OK
/etc/dbus-1/system.d/org.freedesktop.Accounts.conf                            OK
/etc/acpi/asus-keyboard-backlight.sh                                          OK
/etc/acpi/events/asus-keyboard-backlight-down                                 OK
/etc/acpi/ibm-wireless.sh                                                     OK
/etc/acpi/events/tosh-wireless                                                OK
/etc/acpi/asus-wireless.sh                                                    OK
/etc/acpi/events/lenovo-undock                                                OK
/etc/default/acpi-support                                                     OK
/etc/acpi/events/ibm-wireless                                                 OK
/etc/acpi/events/asus-wireless-on                                             OK
/etc/acpi/events/asus-wireless-off                                            OK
/etc/acpi/tosh-wireless.sh                                                    OK
/etc/acpi/events/asus-keyboard-backlight-up                                   OK
/etc/acpi/events/thinkpad-cmos                                                OK
/etc/acpi/undock.sh                                                           OK
/etc/acpi/events/powerbtn                                                     OK
/etc/acpi/powerbtn.sh                                                         OK
/etc/init.d/acpid                                                             OK
/etc/init/acpid.conf                                                          OK
/etc/default/acpid                                                            OK
...

Dále, chcete-li ve výstupu debsumů zobrazit pouze změněné soubory, použijte volbu -c nebo --changed. Ve svém systému jsem nenašel žádné změněné soubory.

sudo debsums --changed

Další příkaz vytiskne soubory, které nemají informace o součtu md5, zde použijeme volbu -l a --list-missing. V mém systému příkaz nezobrazuje žádný soubor.

sudo debsums --list-missing

Nyní je čas ověřit součet md5 jednoho balíčku zadáním jeho názvu:

sudo debsums apache2 
/lib/systemd/system/apache2.service.d/apache2-systemd.conf                    OK
/usr/sbin/a2enmod                                                             OK
/usr/sbin/a2query                                                             OK
/usr/sbin/apache2ctl                                                          OK
/usr/share/apache2/apache2-maintscript-helper                                 OK
/usr/share/apache2/ask-for-passphrase                                         OK
/usr/share/bash-completion/completions/a2enmod                                OK
/usr/share/doc/apache2/NEWS.Debian.gz                                         OK
/usr/share/doc/apache2/PACKAGING.gz                                           OK
/usr/share/doc/apache2/README.Debian.gz                                       OK
/usr/share/doc/apache2/README.backtrace                                       OK
/usr/share/doc/apache2/README.multiple-instances                              OK
/usr/share/doc/apache2/copyright                                              OK
/usr/share/doc/apache2/examples/apache2.monit                                 OK
/usr/share/doc/apache2/examples/secondary-init-script                         OK
/usr/share/doc/apache2/examples/setup-instance                                OK
/usr/share/lintian/overrides/apache2                                          OK
/usr/share/man/man1/a2query.1.gz                                              OK
/usr/share/man/man8/a2enconf.8.gz                                             OK
/usr/share/man/man8/a2enmod.8.gz                                              OK
/usr/share/man/man8/a2ensite.8.gz                                             OK
/usr/share/man/man8/apache2ctl.8.gz                                           OK

Za předpokladu, že spouštíte debsums jako běžný uživatel bez sudo, můžete chyby oprávnění považovat za varování pomocí možnosti --ignore-permissions :

debsums --ignore-permissions 

Jak generovat součty MD5 ze souborů .Deb

Volba -g říká debsums, aby generovaly MD5 součty z obsahu deb, kde:

  1. chybějící – instruujte debsums, aby vygenerovaly z deb součty MD5 pro balíčky, které žádné neposkytují.
  2. all – nařídí debsums tak, aby ignorovaly součty na disku a použily ty, které jsou v deb souboru nebo z něj vygenerované, pokud žádný neexistuje.
  3. keep – řekne debsums, aby zapsaly extrahované/vygenerované součty do souboru /var/lib/dpkg/info/package.md5sums.
  4. nocheck – znamená, že extrahované/vygenerované sumy nejsou porovnávány s nainstalovaným balíčkem.

Když se podíváte na obsah adresáře /var/lib/dpkg/info/, uvidíte md5sums pro různé soubory, které se zabalí jako na obrázku níže:

cd /var/lib/dpkg/info
$ ls *.md5sums
a11y-profile-manager-indicator.md5sums
account-plugin-facebook.md5sums
account-plugin-flickr.md5sums
account-plugin-google.md5sums
accountsservice.md5sums
acl.md5sums
acpid.md5sums
acpi-support.md5sums
activity-log-manager.md5sums
adduser.md5sums
adium-theme-ubuntu.md5sums
adwaita-icon-theme.md5sums
aisleriot.md5sums
alsa-base.md5sums
alsa-utils.md5sums
anacron.md5sums
apache2-bin.md5sums
apache2-data.md5sums
apache2.md5sums
apache2-utils.md5sums
apg.md5sums
apparmor.md5sums
app-install-data.md5sums
app-install-data-partner.md5sums
...

Pamatujte, že použití volby -g je stejné jako --generate=missing, můžete zkusit vygenerovat součet md5 pro balíček apache2 spuštěním následující příkaz.

sudo debsums --generate=missing apache2 

Vzhledem k tomu, že balíček apache2 v mém systému již obsahuje součty md5, zobrazí se níže uvedený výstup, který je stejný jako spuštěný:

sudo debsums apache2

Další zajímavé možnosti a informace o použití naleznete na manuálové stránce debsums.

man debsums

V tomto článku jsme sdíleli, jak ověřit nainstalované balíčky Debian/Ubuntu proti kontrolním součtům MD5, což může být užitečné, abyste se vyhnuli instalaci a spouštění poškozených binárních souborů nebo souborů balíčků na vašem systému kontrolou souborů v systému souborů podle informací uložených v balíčku.

V případě jakýchkoli dotazů nebo zpětné vazby využijte níže uvedený formulář pro komentáře. Lze si představit, že můžete také nabídnout jeden nebo dva návrhy, jak tento příspěvek vylepšit.