Kā pārbaudīt MD5 instalēto pakotņu summas Debian/Ubuntu Linux


Vai esat kādreiz aizdomājušies, kāpēc jūsu sistēmā instalētā dotā binārā versija vai pakotne nedarbojas atbilstoši jūsu cerībām, proti, tas nedarbojas pareizi, kā paredzēts, iespējams, tas nemaz nevar sākties.

Lejupielādējot paketes, var rasties nestabila tīkla savienojuma vai negaidītas strāvas padeves pārtraukuma problēmas, kā rezultātā var tikt instalēta bojāta pakete.

Uzskatot to par svarīgu faktoru nesabojātu paku uzturēšanai jūsu sistēmā, tāpēc ir ļoti svarīgi pārbaudīt failu sistēmā esošos failus, salīdzinot ar paketē saglabāto informāciju, izmantojot šo rakstu.

Kā pārbaudīt instalētās Debian paketes pret MD5 kontrolsummām

Debian/Ubuntu sistēmās varat izmantot debsums rīku, lai pārbaudītu instalēto pakotņu MD5 summas. Ja vēlaties uzzināt informāciju par debsums pakotni pirms tās instalēšanas, varat izmantot APT-CACHE šādi:

$ apt-cache search debsums

Pēc tam instalējiet to, izmantojot komandu apt šādi:

$ sudo apt install debsums

Ir pienācis laiks uzzināt, kā izmantot debsums rīku, lai pārbaudītu instalēto pakotņu MD5sum.

Piezīme: Esmu izmantojis sudo ar visām tālāk norādītajām komandām, jo dažiem failiem parastajiem lietotājiem, iespējams, nav lasīšanas atļauju.

Turklāt komandas debsums izvade parāda faila atrašanās vietu kreisajā pusē un pārbaudes rezultātus labajā pusē. Jūs varat iegūt trīs iespējamos rezultātus, tostarp:

  1. Labi - norāda, ka faila MD5 summa ir laba.
  2. Neveiksmīgs - parāda, ka faila MD5 summa nesakrīt.
  3. REPLACED - nozīmē, ka konkrētais fails ir aizstāts ar citu pakotnes failu.

Palaižot to bez jebkādām opcijām, debsums pārbauda visus jūsu sistēmas failus, salīdzinot ar krājuma md5sum failiem.

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

Lai iespējotu katra faila un katras paketes konfigurācijas failu pārbaudi attiecībā uz izmaiņām, iekļaujiet opciju -a vai - 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
...

Izmantojot opciju -e vai --config , ir iespējams pārbaudīt tikai konfigurācijas failu, izņemot visus citus pakotnes 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
...

Pēc tam, lai parādītu tikai mainītos failus debsumu izvadā, izmantojiet opciju -c vai --changed . Es savā sistēmā neatradu nevienu mainītu failu.

$ sudo debsums --changed

Nākamā komanda izdrukā failus, kuriem nav informācijas md5sum, šeit mēs izmantojam opciju -l un --list-missing . Manā sistēmā komanda neparāda nevienu failu.

$ sudo debsums --list-missing

Ir pienācis laiks pārbaudīt vienas paketes md5 summu, norādot tās nosaukumu:

$ 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

Pieņemot, ka debsums darbojas kā parasts lietotājs bez sudo, atļauju kļūdas varat uzskatīt par brīdinājumiem, izmantojot opciju --ignore-permissions :

$ debsums --ignore-permissions 

Kā izveidot MD5 summas no .Deb failiem

Opcija -g liek debsumiem ģenerēt MD5 summas no deb satura, kur:

  1. trūkst - norādiet debsumiem ģenerēt MD5 summas no deb paketēm, kuras tādas nenodrošina.
  2. viss - norāda debsums ignorēt diskā esošās summas un izmantot deb failā esošo vai, ja tāda nav, ģenerēt.
  3. glabāt - liek debsums ierakstīt iegūtās/ģenerētās summas failā /var/lib/dpkg/info/package.md5sums.
  4. nocheck - nozīmē, ka iegūtās/ģenerētās summas netiek pārbaudītas pēc instalētās pakotnes.

Aplūkojot direktorijas /var/lib/dpkg/info/ saturu, tiks parādīti dažādu failu pakotņu md5sums, kā parādīts zemāk esošajā attēlā:

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

Atcerieties, ka opcijas -g izmantošana ir tāda pati kā --generate = missing , varat mēģināt ģenerēt md5 summu apache2 pakotnei, izpildot šo komandu.

$ sudo debsums --generate=missing apache2 

Tā kā apache2 pakotnei manā sistēmā jau ir md5 summas, tā parādīs zemāk esošo izvadi, kas ir tāds pats kā palaišana:

$ sudo debsums apache2

Lai iegūtu interesantākas iespējas un informāciju par lietošanu, skatiet debsums man lapu.

$ man debsums

Šajā rakstā mēs dalījāmies, kā pārbaudīt instalētās Debian/Ubuntu paketes pret MD5 kontrolēm sūtījums.

Ja jums ir kādi jautājumi vai atsauksmes, izmantojiet zemāk esošo komentāru veidlapu. Iedomājams, jūs varat arī piedāvāt vienu vai divus ieteikumus, kā padarīt šo ziņu labāku.