Kako provjeriti MD5 sume instaliranih paketa u Debian/Ubuntu Linuxu


Da li ste se ikada zapitali zašto određeni binarni fajl ili paket instaliran na vašem sistemu ne radi u skladu sa vašim očekivanjima, što znači da ne funkcioniše ispravno kako bi trebalo da radi, možda ne može uopšte da se pokrene.

Prilikom preuzimanja paketa možete se suočiti s izazovima nestabilnih mrežnih veza ili neočekivanih nestanka struje, što može rezultirati instalacijom oštećenog paketa.

Smatrajući ovo važnim faktorom u održavanju neoštećenih paketa na vašem sistemu, stoga je važan korak da provjerite datoteke na sistemu datoteka u odnosu na informacije pohranjene u paketu korištenjem sljedećeg članka.

Preporučeno čitanje: Naučite kako generirati i provjeriti datoteke pomoću MD5 kontrolne sume u Linuxu

Kako provjeriti instalirane Debian pakete protiv MD5 kontrolnih suma

Na Debian/Ubuntu sustavima, možete koristiti debsums alat za provjeru MD5 zbroja instaliranih paketa. Ako želite saznati informacije o debsums paketu prije nego ga instalirate, možete koristiti APT-CACHE na sljedeći način:

apt-cache search debsums

Zatim ga instalirajte koristeći apt naredbu na sljedeći način:

sudo apt install debsums

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

Napomena: Koristio sam sudo sa svim naredbama ispod jer određene datoteke možda nemaju dozvole za čitanje za obične korisnike.

Osim toga, izlaz naredbe debsums pokazuje vam lokaciju datoteke na lijevoj strani i rezultate provjere na desnoj strani. Postoje tri moguća rezultata koje možete dobiti, a oni uključuju:

  1. OK – označava da je MD5 zbir datoteke dobar.
  2. FAILED – pokazuje da se MD5 zbir datoteke ne podudara.
  3. REPLACED – znači da je određeni fajl zamijenjen fajlom iz drugog paketa.

Kada ga pokrenete bez ikakvih opcija, debsums provjerava svaki fajl na vašem sistemu u odnosu na osnovne 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 ostale 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
...

Zatim, da biste prikazali samo promijenjene datoteke u izlazu debsuma, koristite opciju -c ili --changed. Nisam pronašao nijednu promijenjenu datoteku u svom sistemu.

sudo debsums --changed

Sljedeća komanda ispisuje datoteke koje nemaju md5sum informacije, ovdje koristimo opciju -l i --list-missing. Na mom sistemu komanda ne prikazuje nijedan fajl.

sudo debsums --list-missing

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

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 koristite debsums kao običan korisnik bez sudo, greške u dozvolama možete tretirati kao upozorenja korištenjem opcije --ignore-permissions :

debsums --ignore-permissions 

Kako generirati MD5 sume iz .Deb datoteka

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

  1. nedostaje – uputite debsume da generiraju MD5 sume iz deb-a za pakete koji ga ne pružaju.
  2. sve – usmjerava debsume da zanemare zbrojeve na disku i koriste onu koja je prisutna u deb datoteci, ili generirana iz nje ako ne postoji.
  3. čuvaj – govori debsumima da zapišu izvučene/generirane sume u /var/lib/dpkg/info/package.md5sums datoteku.
  4. nocheck – znači da se ekstrahovani/generisani sumi ne provjeravaju u odnosu na instalirani paket.

Kada pogledate sadržaj direktorija /var/lib/dpkg/info/, vidjet ćete md5sums za različite datoteke koje se 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 što i --generate=missing, možete pokušati generirati md5 sumu za apache2 paket tako što ćete pokrenuti sljedeću naredbu.

sudo debsums --generate=missing apache2 

Budući da paket apache2 na mom sistemu već ima md5 sume, prikazat će se donji izlaz, što je isto kao i pokretanje:

sudo debsums apache2

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

man debsums

U ovom članku podijelili smo kako provjeriti instalirane Debian/Ubuntu pakete u odnosu na MD5 kontrolne sume, ovo može biti korisno kako bi se izbjeglo instaliranje i izvršavanje oštećenih binarnih ili paketnih datoteka na vašem sistem provjeravanjem datoteka na sistemu datoteka u odnosu na informacije pohranjene u paketu.

Za bilo kakva pitanja ili povratne informacije, iskoristite formu za komentare ispod. Zamislivo, možete ponuditi i jedan ili dva prijedloga kako bi ovaj post bio bolji.