Com comprovar les sumes MD5 dels paquets instal·lats a Debian/Ubuntu Linux


Alguna vegada us heu preguntat per què un determinat binari o paquet instal·lat al vostre sistema no funciona segons les vostres expectatives, és a dir, no funciona correctament com se suposa que ha de fer, potser no pot començar en absolut.

Durant la descàrrega de paquets, és possible que tingueu problemes de connexions de xarxa inestables o talls d'alimentació inesperats, això pot provocar la instal·lació del paquet danyat.

Tenint en compte això com un factor important per mantenir paquets no corrompus al vostre sistema, és per tant un pas vital verificar els fitxers del sistema de fitxers amb la informació emmagatzemada al paquet utilitzant l'article següent.

Com verificar els paquets de Debian instal·lats contra les sumes de comprovació MD5

Als sistemes Debian/Ubuntu, podeu utilitzar l'eina debsums per comprovar les sumes MD5 dels paquets instal·lats. Si voleu conèixer la informació sobre el paquet debsums abans d'instal·lar-lo, podeu utilitzar APT-CACHE d'aquesta manera:

$ apt-cache search debsums

A continuació, instal·leu-lo mitjançant l'ordre apt de la següent manera:

$ sudo apt install debsums

Ara és el moment d'aprendre a utilitzar l'eina debsums per verificar MD5sum dels paquets instal·lats.

Nota: he utilitzat sudo amb totes les ordres següents perquè és possible que alguns fitxers no tinguin permisos de lectura per als usuaris habituals.

A més, la sortida de l'ordre debsums us mostra la ubicació del fitxer a l'esquerra i els resultats de la comprovació a la dreta. Hi ha tres resultats possibles que podeu obtenir, que inclouen:

  1. D'acord: indica que la suma MD5 d'un fitxer és bona.
  2. FALLADA: mostra que la suma MD5 d'un fitxer no coincideix.
  3. SUBSTITUÏT: significa que el fitxer específic ha estat substituït per un fitxer d'un altre paquet.

Quan l'executeu sense cap opció, debsums comprova tots els fitxers del vostre sistema amb els fitxers md5sum d'existències.

$ 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
....

Per habilitar la comprovació de tots els fitxers i fitxers de configuració de cada paquet per a qualsevol canvi, incloeu l'opció -a o --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
...

També és possible comprovar només el fitxer de configuració excloent tots els altres fitxers de paquet utilitzant l'opció -e o --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
...

A continuació, per mostrar només els fitxers modificats a la sortida de debsums, utilitzeu l'opció -c o --changed. No he trobat cap fitxer modificat al meu sistema.

$ sudo debsums --changed

La següent ordre imprimeix fitxers que no tenen informació md5sum, aquí fem servir l'opció -l i --list-missing. Al meu sistema, l'ordre no mostra cap fitxer.

$ sudo debsums --list-missing

Ara és el moment de verificar la suma md5 d'un sol paquet especificant el seu nom:

$ 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

Suposant que esteu executant debsums com un usuari normal sense sudo, podeu tractar els errors de permís com a advertències utilitzant l'opció --ignore-permissions:

$ debsums --ignore-permissions 

Com generar sumes MD5 a partir de fitxers .Deb

L'opció -g indica als debsums que generin sumes MD5 a partir del contingut deb, on:

  1. falta: indiqueu als debsums que generin sumes MD5 a partir del deb per als paquets que no en proporcionen cap.
  2. tot: indica a les sumes debsums que ignorin les sumes del disc i que utilitzin la present al fitxer deb, o generada a partir d'ell si no n'hi ha cap.
  3. mantenir: diu als debsums que escriguin les sumes extretes/generades al fitxer /var/lib/dpkg/info/package.md5sums.
  4. nocheck: significa que les sumes extretes/generades no es comparen amb el paquet instal·lat.

Quan mireu el contingut del directori /var/lib/dpkg/info/, veureu md5sums per a diversos fitxers que empaqueten com a la imatge següent:

$ 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
...

Recordeu que utilitzar l'opció -g és el mateix que --generate=missing, podeu provar de generar una suma md5 per al paquet apache2 executant l'ordre següent.

$ sudo debsums --generate=missing apache2 

Com que el paquet apache2 al meu sistema ja té sumes md5, mostrarà la sortida següent, que és la mateixa que executar:

$ sudo debsums apache2

Per obtenir més opcions interessants i informació d'ús, consulteu la pàgina de manual de debsums.

$ man debsums

En aquest article, vam compartir com verificar els paquets Debian/Ubuntu instal·lats amb les sumes de comprovació MD5, això pot ser útil per evitar instal·lar i executar fitxers binaris o paquets danyats al vostre sistema comprovant els fitxers del sistema de fitxers amb la informació emmagatzemada a el paquet.

Per a qualsevol pregunta o comentari, aprofita el formulari de comentaris a continuació. Imaginablement, també podeu oferir un o dos suggeriments per millorar aquesta publicació.