Cómo comprobar las sumas MD5 de los paquetes instalados en Debian/Ubuntu Linux
¿Alguna vez se ha preguntado por qué un determinado binario o paquete instalado en su sistema no funciona según sus expectativas, lo que significa que no funciona correctamente como se supone que debe hacerlo, tal vez ni siquiera pueda iniciarse?
Mientras descarga paquetes, puede enfrentar desafíos como conexiones de red inestables o cortes de energía inesperados, lo que puede resultar en la instalación de un paquete dañado.
Considerando esto como un factor importante para mantener paquetes incorruptos en su sistema, es por lo tanto un paso vital verificar los archivos en el sistema de archivos con la información almacenada en el paquete utilizando el siguiente artículo.
Lectura sugerida: Aprenda a generar y verificar archivos con suma de comprobación MD5 en Linux
Cómo verificar los paquetes Debian instalados con sumas de comprobación MD5
En los sistemas Debian/Ubuntu, puede utilizar la herramienta debsums para comprobar las sumas MD5 de los paquetes instalados. Si desea conocer la información sobre el paquete debsums antes de instalarlo, puede usar APT-CACHE de esta manera:
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 siguientes porque es posible que ciertos archivos no tengan permisos de lectura para usuarios habituales.
Además, el resultado 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:
- OK: indica que la suma MD5 de un archivo es buena.
- FAILED: muestra que la suma MD5 de un archivo no coincide.
- REPLACED: significa que el archivo específico ha sido reemplazado por un archivo de otro paquete.
Cuando lo ejecuta sin ninguna opción, debsums compara cada archivo de su sistema con los archivos md5sum originales.
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 cada archivo 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 del 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 información de md5sum, 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 único 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 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 genere sumas MD5 a partir del contenido deb, donde:
- faltante: indica a debsums que genere sumas MD5 a partir de deb para paquetes que no la proporcionan.
- todos: indica a los debsums que ignoren las sumas en el disco y utilicen la presente en el archivo deb, o la generada a partir de él si no existe ninguna.
- keep: le dice a debsums que escriba las sumas extraídas/generadas en el archivo /var/lib/dpkg/info/package.md5sums.
- nocheck: significa que las sumas extraídas/generadas no se comparan con el paquete instalado.
Cuando observa el contenido del directorio /var/lib/dpkg/info/
, verá md5sums para varios archivos empaquetados como en la imagen a continuación:
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=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 siguiente resultado, que es lo mismo que ejecutar:
sudo debsums apache2
Para obtener más opciones interesantes e información de uso, consulta 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 comparando 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. Imaginablemente, también puedes ofrecer una o dos sugerencias para mejorar esta publicación.