Kako provjeriti MD5 zbroj instaliranih paketa u Debian/Ubuntu Linuxu


Jeste li se ikada zapitali zašto određena binarna datoteka ili paket instaliran na vašem sustavu ne radi prema vašim očekivanjima, što znači da ne funkcionira ispravno kako bi trebao, možda se uopće ne može pokrenuti.

Tijekom preuzimanja paketa možete se suočiti s izazovima nestabilnih mrežnih veza ili neočekivanih nestanaka struje, što može dovesti do instalacije oštećenog paketa.

Uzimajući u obzir ovo kao važan čimbenik u održavanju neoštećenih paketa na vašem sustavu, stoga je ključan korak provjeriti datoteke u datotečnom sustavu u odnosu na informacije pohranjene u paketu pomoću sljedećeg članka.

Predloženo za čitanje: Naučite kako generirati i potvrditi datoteke s MD5 kontrolnim zbrojem u Linuxu

Kako provjeriti instalirane Debian pakete u odnosu na MD5 kontrolne zbrojeve

Na Debian/Ubuntu sustavima, možete koristiti debsums alat za provjeru MD5 zbrojeva instaliranih paketa. Ako želite znati informacije o paketu debsums prije nego što ga instalirate, možete koristiti APT-CACHE ovako:

apt-cache search debsums

Zatim ga instalirajte pomoću naredbe apt na sljedeći način:

sudo apt install debsums

Sada je vrijeme da naučite kako koristiti alat debsums za provjeru MD5sum instaliranih paketa.

Napomena: Koristio sam sudo sa svim naredbama u nastavku jer određene datoteke možda nemaju dopuštenje za čitanje za obične korisnike.

Osim toga, izlaz iz naredbe debsums prikazuje lokaciju datoteke s lijeve strane i rezultate provjere s desne strane. Postoje tri moguća rezultata koja možete dobiti, a oni uključuju:

  1. OK – označava da je MD5 zbroj datoteke dobar.
  2. NEUSPJELO – pokazuje da se MD5 zbroj datoteke ne podudara.
  3. ZAMIJENJENO – znači da je određena datoteka zamijenjena datotekom iz drugog paketa.

Kada ga pokrenete bez ikakvih opcija, debsums provjerava svaku datoteku na vašem sustavu u odnosu na standardne datoteke md5sum.

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

Da biste omogućili provjeru svake datoteke i konfiguracijskih datoteka za svaki paket za bilo kakve promjene, uključite opciju -a ili --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
...

Također je moguće provjeriti samo konfiguracijsku datoteku isključujući sve druge datoteke paketa korištenjem opcije -e ili --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
...

Dalje, za prikaz samo promijenjenih datoteka u izlazu debsumova, koristite opciju -c ili --changed. Nisam pronašao nijednu promijenjenu datoteku u svom sustavu.

sudo debsums --changed

Sljedeća naredba ispisuje datoteke koje nemaju md5sum informacije, ovdje koristimo opciju -l i --list-missing. Na mom sustavu naredba ne prikazuje nikakvu datoteku.

sudo debsums --list-missing

Sada je vrijeme da provjerite md5 zbroj jednog paketa navođenjem njegovog naziva:

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

Pod pretpostavkom da pokrećete debsums kao redoviti korisnik bez sudo, pogreške dopuštenja možete tretirati kao upozorenja korištenjem opcije --ignore-permissions :

debsums --ignore-permissions 

Kako generirati MD5 sume iz .Deb datoteka

Opcija -g govori debsumovima da generiraju MD5 sume iz deb sadržaja, gdje:

  1. nedostaje – uputi debsumove da generiraju MD5 zbrojeve iz deb-a za pakete koji ga ne pružaju.
  2. sve – usmjerava debsumove da zanemare zbrojeve na disku i koriste onaj koji je prisutan u deb datoteci ili generiran iz nje ako nijedan ne postoji.
  3. zadrži – kaže debsums da zapiše ekstrahirane/generirane sume u datoteku /var/lib/dpkg/info/package.md5sums.
  4. nocheck – znači da se ekstrahirani/generirani iznosi ne provjeravaju prema instaliranom paketu.

Kada pogledate sadržaj direktorija /var/lib/dpkg/info/, vidjet ćete md5sumove za razne datoteke koje pakiraju kao na slici ispod:

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

Zapamtite da je korištenje opcije -g isto kao --generate=missing, možete pokušati generirati md5 zbroj za apache2 paket pokretanjem sljedeću naredbu.

sudo debsums --generate=missing apache2 

Budući da apache2 paket na mom sustavu već ima md5 sume, prikazat će izlaz ispod, koji je isti kao da se izvodi:

sudo debsums apache2

Za više zanimljivih opcija i informacija o korištenju, pogledajte debsums stranicu priručnika.

man debsums

U ovom smo članku podijelili kako provjeriti instalirane Debian/Ubuntu pakete u odnosu na MD5 kontrolne zbrojeve, ovo može biti korisno kako biste izbjegli instaliranje i izvođenje oštećenih binarnih ili paketnih datoteka na vašem sustav provjerom datoteka u datotečnom sustavu u odnosu na podatke pohranjene u paketu.

Za sva pitanja ili povratne informacije iskoristite obrazac za komentare u nastavku. Zamislivo, također možete ponuditi jedan ili dva prijedloga kako bi ovaj post bio bolji.