Cum să verificați sumele MD5 ale pachetelor instalate în Debian/Ubuntu Linux


Te-ai întrebat vreodată de ce un anumit binar sau pachet instalat pe sistemul tău nu funcționează conform așteptărilor tale, adică nu funcționează corect așa cum ar trebui să facă, poate că nu poate începe deloc.

În timp ce descărcați pachete, este posibil să vă confruntați cu provocări legate de conexiuni instabile la rețea sau întreruperi neașteptate de curent, ceea ce poate duce la instalarea pachetului corupt.

Considerând acest lucru ca fiind un factor important în menținerea pachetelor necorupte pe sistemul dvs., este, prin urmare, un pas vital să verificați fișierele din sistemul de fișiere față de informațiile stocate în pachet, folosind următorul articol.

Lectură sugerată: Aflați cum să generați și să verificați fișiere cu suma de verificare MD5 în Linux

Cum să verificați pachetele Debian instalate împotriva sumelor de verificare MD5

Pe sistemele Debian/Ubuntu, puteți utiliza instrumentul debsums pentru a verifica sumele MD5 ale pachetelor instalate. Dacă doriți să aflați informațiile despre pachetul debsums înainte de a-l instala, puteți utiliza APT-CACHE astfel:

apt-cache search debsums

Apoi, instalați-l folosind comanda apt, după cum urmează:

sudo apt install debsums

Acum este timpul să învățați cum să utilizați instrumentul debsums pentru a verifica MD5sum a pachetelor instalate.

Notă: am folosit sudo cu toate comenzile de mai jos, deoarece este posibil ca anumite fișiere să nu aibă permisiuni de citire pentru utilizatorii obișnuiți.

În plus, rezultatul comenzii debsums vă arată locația fișierului în stânga și rezultatele verificării în dreapta. Există trei rezultate posibile pe care le puteți obține, acestea includ:

  1. OK – indică faptul că suma MD5 a unui fișier este bună.
  2. FAILED – arată că suma MD5 a unui fișier nu se potrivește.
  3. ÎNLOCUIT – înseamnă că fișierul specific a fost înlocuit cu un fișier dintr-un alt pachet.

Când îl rulați fără opțiuni, debsums verifică fiecare fișier din sistemul dvs. cu fișierele stoc 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
....

Pentru a activa verificarea fiecărui fișier și a fișierelor de configurare pentru fiecare pachet pentru orice modificări, includeți opțiunea -a sau --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
...

De asemenea, este posibil să verificați numai fișierul de configurare, excluzând toate celelalte fișiere de pachet, utilizând opțiunea -e sau --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
...

Apoi, pentru a afișa numai fișierele modificate în ieșirea debsum-urilor, utilizați opțiunea -c sau --changed. Nu am găsit niciun fișier modificat în sistemul meu.

sudo debsums --changed

Următoarea comandă imprimă fișiere care nu au informații despre md5sum, aici folosim opțiunile -l și --list-missing. Pe sistemul meu, comanda nu afișează niciun fișier.

sudo debsums --list-missing

Acum este timpul să verificați suma md5 a unui singur pachet specificând numele acestuia:

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

Presupunând că rulați debsums ca utilizator obișnuit fără sudo, puteți trata erorile de permisiune ca avertismente utilizând opțiunea --ignore-permissions :

debsums --ignore-permissions 

Cum se generează sume MD5 din fișiere .Deb

Opțiunea -g le spune debsum-urilor să genereze sume MD5 din conținutul deb, unde:

  1. lipsă – instruiți debsums să genereze sume MD5 din deb pentru pachetele care nu oferă unul.
  2. toate – direcționează sumele debs să ignore sumele de pe disc și să o utilizeze pe cea prezentă în fișierul deb sau generată din acesta dacă nu există.
  3. păstrați – le spune debsums-urilor să scrie sumele extrase/generate în fișierul /var/lib/dpkg/info/package.md5sums.
  4. nocheck – înseamnă că sumele extrase/generate nu sunt verificate în raport cu pachetul instalat.

Când vă uitați la conținutul directorului /var/lib/dpkg/info/, veți vedea md5sums pentru diferite fișiere care se împachetează ca în imaginea de mai jos:

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

Amintiți-vă că utilizarea opțiunii -g este aceeași cu --generate=missing, puteți încerca să generați o sumă md5 pentru pachetul apache2 rulând următoarea comandă.

sudo debsums --generate=missing apache2 

Deoarece pachetul apache2 de pe sistemul meu are deja sume md5, va afișa rezultatul de mai jos, care este același cu rularea:

sudo debsums apache2

Pentru mai multe opțiuni interesante și informații despre utilizare, consultați pagina de manual debsums.

man debsums

În acest articol, am împărtășit cum să verificați pachetele Debian/Ubuntu instalate în raport cu sumele de verificare MD5, acest lucru poate fi util pentru a evita instalarea și executarea fișierelor binare sau pachetelor corupte pe dvs. sistem prin verificarea fișierelor din sistemul de fișiere cu informațiile stocate în pachet.

Pentru orice întrebări sau feedback, profitați de formularul de comentarii de mai jos. În mod imaginabil, puteți oferi și una sau două sugestii pentru a îmbunătăți această postare.