Sådan kontrolleres MD5-summer af installerede pakker i Debian/Ubuntu Linux
Har du nogensinde spekuleret over, hvorfor en given binær eller pakke, der er installeret på dit system, ikke fungerer efter dine forventninger, hvilket betyder, at den ikke fungerer korrekt, som den skal, måske kan den slet ikke starte begivenheden.
Under download af pakker kan du blive udsat for udfordringer med ustabile netværksforbindelser eller uventede strømafbrydelser, hvilket kan resultere i installation af beskadiget pakke.
I betragtning af dette som en vigtig faktor i vedligeholdelsen af ukorrupte pakker på dit system er det derfor et vigtigt skridt at verificere filerne på filsystemet mod de oplysninger, der er gemt i pakken ved hjælp af følgende artikel.
Sådan verificeres installerede Debian-pakker mod MD5-kontrolsummer
På Debian/Ubuntu-systemer kan du bruge debsums-værktøjet til at kontrollere MD5-summen af installerede pakker. Hvis du vil vide oplysningerne om debsums-pakken, inden du installerer den, kan du bruge APT-CACHE sådan:
$ apt-cache search debsums
Installer det derefter ved hjælp af apt-kommandoen som følger:
$ sudo apt install debsums
Nu er det tid til at lære at bruge debsums-værktøj til at verificere MD5sum af installerede pakker.
Bemærk: Jeg har brugt sudo med alle nedenstående kommandoer, fordi visse filer muligvis ikke har læsetilladelser for almindelige brugere.
Derudover viser output fra kommandoen debsums dig filplaceringen til venstre og kontrolresultaterne til højre. Der er tre mulige resultater, du kan få, de inkluderer:
- OK - angiver, at en fils MD5-sum er god.
- FAILED - viser, at en fils MD5-sum ikke stemmer overens.
- UDSKIFTET - betyder, at den specifikke fil er blevet erstattet af en fil fra en anden pakke.
Når du kører det uden nogen indstillinger, kontrollerer debsums hver fil på dit system mod stock md5sum-filerne.
$ 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 ....
For at aktivere kontrol af hver fil og konfigurationsfiler for hver pakke for eventuelle ændringer, skal du medtage indstillingen -a
eller --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 ...
Det er så godt muligt kun at kontrollere konfigurationsfilen eksklusive alle andre pakkefiler ved hjælp af indstillingen -e
eller --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 ...
Brug derefter indstillingen -c
eller --changed
til kun at få vist ændrede filer i output fra debsums. Jeg fandt ingen ændrede filer i mit system.
$ sudo debsums --changed
Den næste kommando udskriver filer, der ikke har md5sum info, her bruger vi indstillingen -l
og --list-missing
. På mit system viser kommandoen ingen filer.
$ sudo debsums --list-missing
Nu er det tid til at verificere md5-summen af en enkelt pakke ved at angive dens navn:
$ 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
Forudsat at du kører debsums som en almindelig bruger uden sudo, kan du behandle tilladelsesfejl som advarsler ved at bruge indstillingen --ignore-permissions
:
$ debsums --ignore-permissions
Sådan genereres MD5-summer fra .Deb-filer
Indstillingen -g
fortæller debsums at generere MD5-summer fra deb-indhold, hvor:
- mangler - instruer debsums om at generere MD5-summer fra deb for pakker, der ikke leverer en.
- alle - dirigerer debsums til at ignorere diskdosummerne og bruge den, der er til stede i deb-filen, eller genereres ud fra den, hvis der ikke findes nogen.
- keep - beder debsums om at skrive de ekstraherede/genererede summer til /var/lib/dpkg/info/package.md5sums-filen.
- nocheck - betyder, at de udpakkede/genererede summer ikke kontrolleres i forhold til den installerede pakke.
Når du ser på indholdet af kataloget /var/lib/dpkg/info/
, vil du se md5sums for forskellige filer, der pakker som i billedet nedenfor:
$ 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 ...
Husk, at brug af -g
er den samme som --generate = mangler
, du kan prøve at generere en md5-sum til apache2-pakke ved at køre følgende kommando.
$ sudo debsums --generate=missing apache2
Da apache2-pakken på mit system allerede har md5-summer, viser den output nedenfor, hvilket er det samme som at køre:
$ sudo debsums apache2
For mere interessante muligheder og brugsinfo, se gennem debsums mandesiden.
$ man debsums
I denne artikel delte vi, hvordan vi kontrollerer installerede Debian/Ubuntu-pakker mod MD5-kontrolsummer, dette kan være nyttigt for at undgå installation og udførelse af beskadigede binære filer eller pakkefiler på dit system ved at kontrollere filerne på filsystemet mod de oplysninger, der er gemt i pakken.
Hvis du har spørgsmål eller feedback, kan du benytte nedenstående kommentarformular. Det kan forestilles, at du lige så godt kan tilbyde et eller to forslag for at gøre dette indlæg bedre.