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:
- OK – indica que a soma MD5 de um arquivo é boa.
- FAILED – mostra que a soma MD5 de um arquivo não corresponde.
- 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:
- missing – instrui debsums a gerar somas MD5 a partir do deb para pacotes que não fornecem uma.
- 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.
- keep – diz ao debsums para gravar as somas extraídas/geradas no arquivo /var/lib/dpkg/info/package.md5sums.
- 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.