Zoeken op website

Hoe u de MD5-sommen van geïnstalleerde pakketten kunt controleren in Debian/Ubuntu Linux


Heeft u zich ooit afgevraagd waarom een bepaald binair bestand of pakket dat op uw systeem is geïnstalleerd, niet volgens uw verwachtingen werkt, wat betekent dat het niet correct functioneert zoals het zou moeten doen, misschien kan het helemaal niet starten.

Tijdens het downloaden van pakketten kunt u te maken krijgen met problemen als instabiele netwerkverbindingen of onverwachte stroomuitval. Dit kan resulteren in de installatie van een beschadigd pakket.

Aangezien dit een belangrijke factor is bij het behouden van onbeschadigde pakketten op uw systeem, is het daarom een cruciale stap om de bestanden op het bestandssysteem te verifiëren aan de hand van de informatie die in het pakket is opgeslagen, met behulp van het volgende artikel.

Voorgesteld lezen: Leer hoe u bestanden genereert en verifieert met MD5 Checksum in Linux

Hoe u geïnstalleerde Debian-pakketten kunt verifiëren aan de hand van MD5-controlesommen

Op Debian/Ubuntu-systemen kunt u de tool debsums gebruiken om de MD5-sommen van geïnstalleerde pakketten te controleren. Als u de informatie over het debsums pakket wilt weten voordat u het installeert, kunt u APT-CACHE als volgt gebruiken:

apt-cache search debsums

Installeer het vervolgens als volgt met de opdracht apt:

sudo apt install debsums

Nu is het tijd om te leren hoe u de debsums tool kunt gebruiken om MD5sum van geïnstalleerde pakketten te verifiëren.

Opmerking: ik heb sudo gebruikt met alle onderstaande opdrachten omdat bepaalde bestanden mogelijk geen leesrechten hebben voor gewone gebruikers.

Bovendien toont de uitvoer van de opdracht debsums u de bestandslocatie aan de linkerkant en de controleresultaten aan de rechterkant. Er zijn drie mogelijke resultaten die u kunt behalen, waaronder:

  1. OK – geeft aan dat de MD5-som van een bestand goed is.
  2. mislukt – geeft aan dat de MD5-som van een bestand niet overeenkomt.
  3. VERVANGEN – betekent dat het specifieke bestand is vervangen door een bestand uit een ander pakket.

Als je het zonder enige opties uitvoert, controleert debsums elk bestand op je systeem met de standaard md5sum-bestanden.

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

Om het controleren van elk bestand en configuratiebestanden voor elk pakket op eventuele wijzigingen mogelijk te maken, voegt u de optie -a of --all toe:

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

Het is ook mogelijk om alleen het configuratiebestand te controleren, met uitsluiting van alle andere pakketbestanden, door de optie -e of --config te gebruiken:

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

Om vervolgens alleen gewijzigde bestanden weer te geven in de uitvoer van debsums, gebruikt u de optie -c of --changed. Ik heb geen gewijzigde bestanden in mijn systeem gevonden.

sudo debsums --changed

De volgende opdracht drukt bestanden af die geen md5sum-info bevatten. Hier gebruiken we de optie -l en --list-missing. Op mijn systeem toont de opdracht geen enkel bestand.

sudo debsums --list-missing

Nu is het tijd om de md5-som van een enkel pakket te verifiëren door de naam ervan op te geven:

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

Ervan uitgaande dat u debsums uitvoert als een gewone gebruiker zonder sudo, kunt u toestemmingsfouten behandelen als waarschuwingen door de optie --ignore-permissions te gebruiken :

debsums --ignore-permissions 

Hoe MD5-sommen te genereren uit .Deb-bestanden

De optie -g vertelt debsums om MD5-sommen te genereren uit deb-inhoud, waarbij:

  1. ontbreekt – instrueer debsums om MD5-sommen uit de deb te genereren voor pakketten die er niet in voorzien.
  2. alles – geeft debsums de opdracht om de bedragen op schijf te negeren en de bedragen te gebruiken die aanwezig zijn in het deb-bestand, of daaruit gegenereerd als er geen zijn.
  3. keep – vertelt debsums om de geëxtraheerde/gegenereerde sommen naar het bestand /var/lib/dpkg/info/package.md5sums te schrijven.
  4. nocheck – betekent dat de geëxtraheerde/gegenereerde bedragen niet worden gecontroleerd aan de hand van het geïnstalleerde pakket.

Als je naar de inhoud van de map /var/lib/dpkg/info/ kijkt, zie je md5sums voor verschillende bestanden die worden verpakt zoals in de onderstaande afbeelding:

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

Houd er rekening mee dat het gebruik van de optie -g hetzelfde is als --generate=missing. U kunt proberen een MD5-som te genereren voor het apache2-pakket door het uit te voeren het volgende commando.

sudo debsums --generate=missing apache2 

Omdat het apache2-pakket op mijn systeem al md5-sommen bevat, wordt de onderstaande uitvoer weergegeven, wat hetzelfde is als bij het uitvoeren:

sudo debsums apache2

Voor meer interessante opties en gebruiksinformatie kunt u de manpagina van debsums raadplegen.

man debsums

In dit artikel hebben we gedeeld hoe u geïnstalleerde Debian/Ubuntu-pakketten kunt verifiëren aan de hand van MD5-controlesommen. Dit kan handig zijn om te voorkomen dat u beschadigde binaire bestanden of pakketbestanden op uw computer installeert en uitvoert. systeem door de bestanden op het bestandssysteem te controleren aan de hand van de informatie die in het pakket is opgeslagen.

Voor vragen of feedback kunt u gebruik maken van het onderstaande reactieformulier. Het is denkbaar dat u net zo goed een of twee suggesties kunt doen om dit bericht te verbeteren.