Kaip patikrinti MD5 sumas įdiegtų paketų Debian/Ubuntu Linux


Ar kada susimąstėte, kodėl jūsų sistemoje įdiegtas dvejetainis failas ar paketas neveikia pagal jūsų lūkesčius, vadinasi, jis neveikia tinkamai, kaip manoma, galbūt įvykis visai negali prasidėti.

Atsisiųsdami paketus galite susidurti su netikrų tinklo ryšių ar netikėtų elektros energijos tiekimo sutrikimų problemomis, todėl galite įdiegti sugadintą paketą.

Atsižvelgiant į tai kaip svarbų veiksnį palaikant nesugadintus paketus jūsų sistemoje, todėl labai svarbu patikrinti failų sistemoje esančius failus pagal pakete saugomą informaciją, naudojant šį straipsnį.

Kaip patikrinti įdiegtus „Debian“ paketus, palyginti su MD5 kontrolinėmis sumomis

„Debian“/„Ubuntu“ sistemose galite naudoti įrankį debsums, kad patikrintumėte įdiegtų paketų MD5 sumas. Jei norite sužinoti informaciją apie debsums paketą prieš jį įdiegdami, galite naudoti APT-CACHE taip:

$ apt-cache search debsums

Tada įdiekite jį naudodami apt komandą taip:

$ sudo apt install debsums

Dabar atėjo laikas sužinoti, kaip naudoti debsum įrankį, norint patikrinti įdiegtų paketų MD5sum.

Pastaba: Aš naudoju sudo su visomis toliau pateiktomis komandomis, nes tam tikri failai gali neturėti skaitymo leidimų įprastiems vartotojams.

Be to, komandos debsums išvestis rodo failo vietą kairėje, o patikrinimo rezultatus - dešinėje. Galite gauti tris galimus rezultatus: jie apima:

  1. Gerai - rodo, kad failo MD5 suma yra gera.
  2. NEPAVYKO - parodo, kad failo MD5 suma nesutampa.
  3. PAKEISTA - reiškia, kad konkretus failas buvo pakeistas kito paketo failu.

Kai paleisite ją be jokių parinkčių, debsums tikrins kiekvieną jūsų sistemos failą pagal atsarginius „md5sum“ failus.

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

Norėdami įgalinti kiekvieno paketo failų ir konfigūracijos failų tikrinimą dėl pakeitimų, įtraukite parinktį -a arba - 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
...

Naudojant parinktį -e arba --config galima patikrinti tik konfigūracijos failą, išskyrus visus kitus paketo failus.

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

Jei norite, kad debsumų išvestyje būtų rodomi tik pakeisti failai, naudokite parinktį -c arba --changed . Neradau jokių pakeistų failų savo sistemoje.

$ sudo debsums --changed

Kita komanda išspausdina failus, kuriuose nėra „md5sum“ informacijos, čia mes naudojame parinktis -l ir --list-missing . Mano sistemoje komanda nerodo jokio failo.

$ sudo debsums --list-missing

Dabar atėjo laikas patikrinti vieno paketo md5 sumą nurodant jo pavadinimą:

$ 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

Darant prielaidą, kad debsumus naudojate kaip įprastas vartotojas be „sudo“, leidimo klaidas galite laikyti įspėjimais naudodami parinktį --ignore-permissions :

$ debsums --ignore-permissions 

Kaip sugeneruoti MD5 sumas iš .Deb failų

Parinktis -g nurodo debsums sugeneruoti MD5 sumas iš deb turinio, kur:

  1. trūksta - nurodykite debsams sugeneruoti MD5 sumas iš deb paketams, kurie tokios nepateikia.
  2. viskas - nurodo debsumus ignoruoti diske esančias sumas ir naudoti debo faile esančią arba iš jos sugeneruotą, jei tokios nėra.
  3. saugoti - liepia debsoms įrašyti išgautas/sugeneruotas sumas į /var/lib/dpkg/info/package.md5sums failą.
  4. nocheck - reiškia, kad ištrauktos/sugeneruotos sumos nėra tikrinamos pagal įdiegtą paketą.

Pažvelgę į katalogo /var/lib/dpkg/info/ turinį, pamatysite įvairių failų md5sums, kaip nurodyta toliau pateiktame paveikslėlyje:

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

Atminkite, kad parinktis -g yra tokia pati kaip --generate = missing , galite pabandyti sugeneruoti paketo md5 sumą vykdydami šią komandą.

$ sudo debsums --generate=missing apache2 

Kadangi mano sistemoje „apache2“ pakete jau yra md5 sumos, jis parodys žemiau pateiktą išvestį, kuri yra tokia pati kaip ir vykdant:

$ sudo debsums apache2

Norėdami sužinoti daugiau įdomių parinkčių ir informacijos apie naudojimą, peržiūrėkite debsumų vadovo puslapį.

$ man debsums

Šiame straipsnyje mes pasidalijome, kaip patikrinti įdiegtus „Debian“/„Ubuntu“ paketus, palyginti su MD5 kontrolinėmis sumomis. Tai gali būti naudinga siekiant išvengti sugadintų dvejetainių failų ar paketų failų diegimo ir vykdymo jūsų sistemoje, patikrinant failų sistemoje esančius failus pagal informaciją, saugomą paketas.

Jei turite klausimų ar atsiliepimų, pasinaudokite toliau pateikta komentarų forma. Įsivaizduojama, kad taip pat galite pasiūlyti vieną ar du pasiūlymus, kaip šį įrašą pagerinti.