웹사이트 검색

Debian/Ubuntu Linux에 설치된 패키지의 MD5 합계를 확인하는 방법


시스템에 설치된 특정 바이너리나 패키지가 기대한 대로 작동하지 않는 이유, 즉 예상대로 제대로 작동하지 않거나 이벤트가 전혀 시작되지 않을 수 있다는 뜻인지 궁금한 적이 있습니까?

패키지를 다운로드하는 동안 불안정한 네트워크 연결이나 예상치 못한 정전 문제에 직면할 수 있으며 이로 인해 손상된 패키지가 설치될 수 있습니다.

이를 시스템에서 손상되지 않은 패키지를 유지하는 데 중요한 요소로 고려하면 다음 문서를 사용하여 패키지에 저장된 정보와 비교하여 파일 시스템의 파일을 확인하는 것이 중요한 단계입니다.

권장 읽기: Linux에서 MD5 체크섬을 사용하여 파일을 생성하고 확인하는 방법 알아보기

MD5 체크섬에 대해 설치된 데비안 패키지를 확인하는 방법

Debian/Ubuntu 시스템에서는 debsums 도구를 사용하여 설치된 패키지의 MD5 합계를 확인할 수 있습니다. 설치하기 전에 debsums 패키지에 대한 정보를 알고 싶다면 다음과 같이 APT-CACHE를 사용할 수 있습니다.

apt-cache search debsums

그런 다음 다음과 같이 apt 명령을 사용하여 설치하십시오.

sudo apt install debsums

이제 debsums 도구를 사용하여 설치된 패키지의 MD5sum을 확인하는 방법을 배울 차례입니다.

참고: 특정 파일에는 일반 사용자에 대한 읽기 권한이 없을 수 있으므로 아래의 모든 명령에 sudo를 사용했습니다.

또한 debsums 명령의 출력에서는 왼쪽에 파일 위치가 표시되고 오른쪽에 확인 결과가 표시됩니다. 얻을 수 있는 세 가지 결과는 다음과 같습니다.

  1. 확인 – 파일의 MD5 합계가 양호함을 나타냅니다.
  2. FAILED – 파일의 MD5 합계가 일치하지 않음을 나타냅니다.
  3. REPLACED – 특정 파일이 다른 패키지의 파일로 대체되었음을 의미합니다.

옵션 없이 실행하면 debsums는 기본 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
....

각 패키지의 모든 파일과 구성 파일에 변경 사항이 있는지 확인하려면 -a 또는 --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
...

-e 또는 --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
...

다음으로, debsum 출력에 변경된 파일만 표시하려면 -c 또는 --changed 옵션을 사용하세요. 내 시스템에서 변경된 파일을 찾지 못했습니다.

sudo debsums --changed

다음 명령은 md5sum 정보가 없는 파일을 인쇄합니다. 여기서는 -l--list-missing 옵션을 사용합니다. 내 시스템에서는 명령이 파일을 표시하지 않습니다.

sudo debsums --list-missing

이제 이름을 지정하여 단일 패키지의 md5 sum을 확인할 차례입니다.

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

sudo 없이 일반 사용자로 debsums를 실행한다고 가정하면 --ignore-permissions 옵션을 사용하여 권한 오류를 경고로 처리할 수 있습니다. :

debsums --ignore-permissions 

.Deb 파일에서 MD5 합계를 생성하는 방법

-g 옵션은 debsum이 deb 콘텐츠에서 MD5 합계를 생성하도록 지시합니다. 여기서:

  1. 누락 – MD5 합계를 제공하지 않는 패키지에 대해 deb에서 MD5 합계를 생성하도록 debsum에 지시합니다.
  2. all – 디스크 합계를 무시하고 deb 파일에 있거나 존재하지 않는 경우 생성된 합계를 사용하도록 debsum에 지시합니다.
  3. keep – debsum에게 추출/생성된 합계를 /var/lib/dpkg/info/package.md5sums 파일에 쓰도록 지시합니다.
  4. nocheck – 추출/생성된 합계가 설치된 패키지에 대해 확인되지 않음을 의미합니다.

/var/lib/dpkg/info/ 디렉터리의 내용을 보면 아래 이미지와 같이 패키징하는 다양한 파일에 대한 md5sum을 볼 수 있습니다.

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

-g 옵션을 사용하는 것은 --generate=missing과 동일하다는 점을 기억하세요. 다음을 실행하여 apache2 패키지에 대한 md5 합계를 생성할 수 있습니다. 다음 명령.

sudo debsums --generate=missing apache2 

내 시스템의 apache2 패키지에는 이미 md5 합계가 있으므로 실행과 동일한 아래 출력이 표시됩니다.

sudo debsums apache2

더 흥미로운 옵션과 사용법 정보를 보려면 debsums 매뉴얼 페이지를 살펴보세요.

man debsums

이 문서에서는 설치된 Debian/Ubuntu 패키지를 MD5 체크섬과 비교하여 확인하는 방법을 공유했습니다. 이는 손상된 바이너리 또는 패키지 파일의 설치 및 실행을 방지하는 데 유용할 수 있습니다. 패키지에 저장된 정보와 파일 시스템의 파일을 비교하여 시스템을 검사합니다.

질문이나 피드백이 있으면 아래 의견 양식을 활용하세요. 아마도 이 게시물을 더 좋게 만들기 위해 한두 가지 제안을 제안할 수도 있습니다.