Pesquisa de site

Como verificar somas MD5 de pacotes instalados no Debian/Ubuntu Linux


Você já se perguntou por que um determinado binário ou pacote instalado em seu sistema não funciona de acordo com suas expectativas, o que significa que ele não funciona corretamente como deveria, talvez nem consiga iniciar o evento.

Ao baixar pacotes, você pode enfrentar desafios de conexões de rede instáveis ou cortes de energia inesperados, o que pode resultar na instalação de pacotes corrompidos.

Considerando isso como um fator importante na manutenção de pacotes não corrompidos em seu sistema, é, portanto, uma etapa vital verificar os arquivos no sistema de arquivos em relação às informações armazenadas no pacote usando o artigo a seguir.

Leitura sugerida: Aprenda como gerar e verificar arquivos com soma de verificação MD5 no Linux

Como verificar pacotes Debian instalados em relação a somas de verificação MD5

Em sistemas Debian/Ubuntu, você pode usar a ferramenta debsums para verificar as somas MD5 dos pacotes instalados. Se você quiser saber as informações sobre o pacote debsums antes de instalá-lo, você pode usar o APT-CACHE assim:

apt-cache search debsums

Em seguida, instale-o usando o comando apt da seguinte forma:

sudo apt install debsums

Agora é hora de aprender como usar a ferramenta debsums para verificar o MD5sum dos pacotes instalados.

Nota: usei sudo com todos os comandos abaixo porque certos arquivos podem não ter permissões de leitura para usuários regulares.

Além disso, a saída do comando debsums mostra a localização do arquivo à esquerda e os resultados da verificação à direita. Existem três resultados possíveis que você pode obter, eles incluem:

  1. OK – indica que a soma MD5 de um arquivo é boa.
  2. FAILED – mostra que a soma MD5 de um arquivo não corresponde.
  3. REPLACED – significa que o arquivo específico foi substituído por um arquivo de outro pacote.

Quando você o executa sem nenhuma opção, debsums verifica todos os arquivos do seu sistema em relação aos arquivos md5sum de estoque.

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

Para ativar a verificação de quaisquer alterações em todos os arquivos e arquivos de configuração de cada pacote, inclua a opção -a ou --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
...

Também é possível verificar apenas o arquivo de configuração, excluindo todos os outros arquivos do pacote, usando a opção -e ou --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
...

A seguir, para exibir apenas os arquivos alterados na saída de debsums, use a opção -c ou --changed. Não encontrei nenhum arquivo alterado em meu sistema.

sudo debsums --changed

O próximo comando imprime arquivos que não possuem informações de md5sum, aqui usamos a opção -l e --list-missing. No meu sistema, o comando não mostra nenhum arquivo.

sudo debsums --list-missing

Agora é hora de verificar a soma md5 de um único pacote especificando seu nome:

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

Supondo que você esteja executando debsums como um usuário normal sem sudo, você pode tratar erros de permissão como avisos empregando a opção --ignore-permissions :

debsums --ignore-permissions 

Como gerar somas MD5 a partir de arquivos .Deb

A opção -g diz ao debsums para gerar somas MD5 a partir do conteúdo deb, onde:

  1. missing – instrui debsums a gerar somas MD5 a partir do deb para pacotes que não fornecem uma.
  2. todos – instrui os debsums a ignorar as somas no disco e usar aquela presente no arquivo deb, ou gerada a partir dele se não existir nenhuma.
  3. keep – diz ao debsums para gravar as somas extraídas/geradas no arquivo /var/lib/dpkg/info/package.md5sums.
  4. nocheck – significa que as somas extraídas/geradas não são verificadas em relação ao pacote instalado.

Ao olhar o conteúdo do diretório /var/lib/dpkg/info/, você verá md5sums para vários arquivos que são empacotados como na imagem abaixo:

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

Lembre-se que usar a opção -g é o mesmo que --generate=missing, você pode tentar gerar uma soma md5 para o pacote apache2 executando o seguinte comando.

sudo debsums --generate=missing apache2 

Como o pacote apache2 no meu sistema já possui somas md5, ele mostrará a saída abaixo, que é o mesmo que executar:

sudo debsums apache2

Para opções mais interessantes e informações de uso, consulte a página de manual debsums.

man debsums

Neste artigo, compartilhamos como verificar pacotes Debian/Ubuntu instalados em relação às somas de verificação MD5. Isso pode ser útil para evitar a instalação e execução de binários ou arquivos de pacotes corrompidos em seu sistema verificando os arquivos no sistema de arquivos em relação às informações armazenadas no pacote.

Para qualquer dúvida ou feedback, aproveite o formulário de comentários abaixo. Imaginavelmente, você também pode oferecer uma ou duas sugestões para melhorar este post.