Comment vérifier les sommes MD5 des paquets installés dans Debian/Ubuntu Linux
Vous êtes-vous déjà demandé pourquoi un binaire ou un paquet donné installé sur votre système ne fonctionne pas selon vos attentes, c’est-à-dire qu’il ne fonctionne pas correctement comme il est censé le faire, peut-être qu’il ne peut pas démarrer du tout.
Lors du téléchargement de paquets, vous pouvez rencontrer des problèmes de connexions réseau instables ou de pannes de courant inattendues, ce qui peut entraîner l’installation d’un paquet corrompu.
Considérant qu’il s’agit d’un facteur important dans le maintien de paquets non corrompus sur votre système, il est donc essentiel de vérifier les fichiers sur le système de fichiers par rapport aux informations stockées dans le paquet en utilisant l’article suivant.
Lecture suggérée : Apprenez à générer et à vérifier des fichiers avec la somme de contrôle MD5 sous Linux
Comment vérifier les paquets Debian installés par rapport aux sommes de contrôle MD5
Sur les systèmes Debian/Ubuntu, vous pouvez utiliser l’outil debsums pour vérifier les sommes MD5 des paquets installés. Si vous voulez connaître les informations sur le paquet debsums avant de l’installer, vous pouvez utiliser APT-CACHE comme ceci :
$ apt-cache search debsums
Ensuite, installez-le à l’aide de la commande apt comme suit :
$ sudo apt install debsums
Il est maintenant temps d’apprendre à utiliser l’outil debsums pour vérifier la somme MD5 des paquets installés.
Remarque : J’ai utilisé sudo avec toutes les commandes ci-dessous car certains fichiers peuvent ne pas avoir de permissions de lecture pour les utilisateurs réguliers.
De plus, le résultat de la commande debsums vous montre l’emplacement du fichier à gauche et les résultats de la vérification à droite. Il y a trois résultats possibles que vous pouvez obtenir, ils comprennent :
- OK – indique que la somme MD5 d’un fichier est bonne.
- FAILED : indique que la somme MD5 d’un fichier ne correspond pas.
- REPLACED – signifie que le fichier spécifique a été remplacé par un fichier d’un autre package.
Lorsque vous l’exécutez sans aucune option, debsums vérifie chaque fichier de votre système par rapport aux fichiers md5sum d’origine.
$ 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
....
Pour activer la vérification de chaque fichier et des fichiers de configuration de chaque paquet à la recherche de modifications, incluez l’option -a ou --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
...
Il est également possible de vérifier uniquement le fichier de configuration à l’exclusion de tous les autres fichiers de paquet en utilisant l’option -e ou --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
...
Ensuite, pour n’afficher que les fichiers modifiés dans la sortie de debsums, utilisez l’option -c ou --changed. Je n’ai trouvé aucun fichier modifié dans mon système.
$ sudo debsums --changed
La commande suivante imprime les fichiers qui n’ont pas d’informations md5sum, ici nous utilisons l’option -l et --list-missing. Sur mon système, la commande n’affiche aucun fichier.
$ sudo debsums --list-missing
Il est maintenant temps de vérifier la somme md5 d’un seul paquet en spécifiant son 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
En supposant que vous exécutez debsums en tant qu’utilisateur normal sans sudo, vous pouvez traiter les erreurs de permission comme des avertissements en utilisant l’option --ignore-permissions :
$ debsums --ignore-permissions
Comment générer des sommes MD5 à partir de . Dossiers Deb
L’option -g indique aux debsums de générer des sommes MD5 à partir du contenu de deb, où :
- missing – demande à debsums de générer des sommes MD5 à partir du deb pour les paquets qui n’en fournissent pas.
- all – indique aux debsums d’ignorer les sommes sur disque et d’utiliser celle présente dans le fichier deb, ou générée à partir de celui-ci s’il n’en existe pas.
- keep – indique à Debsums d’écrire les sommes extraites/générées dans le fichier /var/lib/dpkg/info/package.md5sums.
- nocheck – signifie que les sommes extraites/générées ne sont pas vérifiées par rapport au paquet installé.
Lorsque vous regardez le contenu du répertoire /var/lib/dpkg/info/, vous verrez des md5sums pour divers fichiers qui empaquettent comme dans l’image ci-dessous :
$ 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
...
N’oubliez pas que l’utilisation de l’option -g est la même que celle de --generate=missing, vous pouvez essayer de générer une somme md5 pour le package apache2 en exécutant la commande suivante.
$ sudo debsums --generate=missing apache2
Étant donné que le package apache2 sur mon système a déjà des sommes md5, il affichera le résultat ci-dessous, qui est le même que lors de l’exécution :
$ sudo debsums apache2
Pour plus d’options intéressantes et d’informations d’utilisation, consultez la page de manuel de debsums.
$ man debsums
Dans cet article, nous avons expliqué comment vérifier les packages Debian/Ubuntu installés par rapport aux sommes de contrôle MD5, ce qui peut être utile pour éviter d’installer et d’exécuter des fichiers binaires ou des fichiers de package corrompus sur votre système en vérifiant les fichiers du système de fichiers par rapport aux informations stockées dans le package.
Pour toute question ou commentaire, profitez du formulaire de commentaire ci-dessous. Imaginement, vous pouvez aussi bien proposer une ou deux suggestions pour améliorer cet article.