Recherche de site Web

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 :

  1. OK – indique que la somme MD5 d’un fichier est bonne.
  2. FAILED : indique que la somme MD5 d’un fichier ne correspond pas.
  3. 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ù :

  1. missing – demande à debsums de générer des sommes MD5 à partir du deb pour les paquets qui n’en fournissent pas.
  2. 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.
  3. keep – indique à Debsums d’écrire les sommes extraites/générées dans le fichier /var/lib/dpkg/info/package.md5sums.
  4. 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.

Articles connexes: