Cómo comprobar las sumas MD5 de los paquetes instalados en Debian/Ubuntu Linux


¿Alguna vez se ha preguntado por qué un binario o paquete determinado instalado en su sistema no funciona de acuerdo con sus expectativas, lo que significa que no funciona correctamente como se supone que debe hacerlo, tal vez no pueda iniciar el evento en absoluto?

Al descargar paquetes, puede enfrentar desafíos de conexiones de red inestables o cortes de energía inesperados, esto puede resultar en la instalación de un paquete dañado.

Teniendo en cuenta esto como un factor importante para mantener los paquetes no corruptos en su sistema, es por lo tanto un paso vital para verificar los archivos en el sistema de archivos con la información almacenada en el paquete utilizando el siguiente artículo.

Cómo verificar paquetes Debian instalados con sumas de comprobación MD5

En los sistemas Debian/Ubuntu, puede usar la herramienta debsums para verificar las sumas MD5 de los paquetes instalados. Si desea conocer la información sobre el paquete debsums antes de instalarlo, puede usar APT-CACHE así:

$ apt-cache search debsums

A continuación, instálelo usando el comando apt de la siguiente manera:

$ sudo apt install debsums

Ahora es el momento de aprender a utilizar la herramienta debsums para verificar MD5sum de los paquetes instalados.

Nota: He usado sudo con todos los comandos a continuación porque es posible que ciertos archivos no tengan permisos de lectura para usuarios normales.

Además, la salida del comando debsums le muestra la ubicación del archivo a la izquierda y los resultados de la verificación a la derecha. Hay tres resultados posibles que puede obtener, que incluyen:

  1. OK: indica que la suma MD5 de un archivo es buena.
  2. FALLIDO: muestra que la suma MD5 de un archivo no coincide.
  3. REEMPLAZADO: significa que el archivo específico ha sido reemplazado por un archivo de otro paquete.

Cuando lo ejecuta sin ninguna opción, debsums comprueba todos los archivos de su sistema con los archivos de stock 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
....

Para habilitar la verificación de todos los archivos y archivos de configuración para cada paquete en busca de cambios, incluya la opción -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
...

También es posible verificar solo el archivo de configuración excluyendo todos los demás archivos de paquete usando la opción -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ón, para mostrar solo los archivos modificados en la salida de debsums, use la opción -c o --changed . No encontré ningún archivo modificado en mi sistema.

$ sudo debsums --changed

El siguiente comando imprime archivos que no tienen md5sum info, aquí usamos la opción -l y --list-missing . En mi sistema, el comando no muestra ningún archivo.

$ sudo debsums --list-missing

Ahora es el momento de verificar la suma md5 de un solo paquete especificando su nombre:

$ 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

Suponiendo que está ejecutando debsums como un usuario normal sin sudo, puede tratar los errores de permisos como advertencias empleando la opción --ignore-permissions :

$ debsums --ignore-permissions 

Cómo generar sumas MD5 a partir de archivos .Deb

La opción -g le dice a debsums que generen sumas MD5 a partir del contenido de deb, donde:

  1. faltante: indique a debsums que generen sumas MD5 a partir de deb para paquetes que no proporcionan una.
  2. all: indica a debsums que ignoren las sumas en disco y utilicen la presente en el archivo deb, o la generada a partir de él si no existe ninguna.
  3. keep - le dice a debsums que escriba las sumas extraídas/generadas en el archivo /var/lib/dpkg/info/package.md5sums.
  4. nocheck: significa que las sumas extraídas/generadas no se comparan con el paquete instalado.

Cuando observe el contenido del directorio /var/lib/dpkg/info/, verá md5sums para varios archivos que se empaquetan como en la siguiente imagen:

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

Recuerde que usar la opción -g es lo mismo que --generate u003d missing , puede intentar generar una suma md5 para el paquete apache2 ejecutando el siguiente comando.

$ sudo debsums --generate=missing apache2 

Dado que el paquete apache2 en mi sistema ya tiene sumas md5, mostrará el resultado a continuación, que es el mismo que se ejecuta:

$ sudo debsums apache2

Para obtener opciones e información de uso más interesantes, consulte la página de manual de debsums.

$ man debsums

En este artículo, compartimos cómo verificar los paquetes Debian/Ubuntu instalados con las sumas de verificación MD5, esto puede ser útil para evitar instalar y ejecutar archivos binarios o paquetes corruptos en su sistema al verificar los archivos en el sistema de archivos con la información almacenada en el paquete.

Para cualquier pregunta o comentario, aproveche el formulario de comentarios a continuación. Imagínese, también puede ofrecer una o dos sugerencias para mejorar esta publicación.