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 명령의 출력에서는 왼쪽에 파일 위치가 표시되고 오른쪽에 확인 결과가 표시됩니다. 얻을 수 있는 세 가지 결과는 다음과 같습니다.
- 확인 – 파일의 MD5 합계가 양호함을 나타냅니다.
- FAILED – 파일의 MD5 합계가 일치하지 않음을 나타냅니다.
- 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 합계를 생성하도록 지시합니다. 여기서:
- 누락 – MD5 합계를 제공하지 않는 패키지에 대해 deb에서 MD5 합계를 생성하도록 debsum에 지시합니다.
- all – 디스크 합계를 무시하고 deb 파일에 있거나 존재하지 않는 경우 생성된 합계를 사용하도록 debsum에 지시합니다.
- keep – debsum에게 추출/생성된 합계를 /var/lib/dpkg/info/package.md5sums 파일에 쓰도록 지시합니다.
- 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 체크섬과 비교하여 확인하는 방법을 공유했습니다. 이는 손상된 바이너리 또는 패키지 파일의 설치 및 실행을 방지하는 데 유용할 수 있습니다. 패키지에 저장된 정보와 파일 시스템의 파일을 비교하여 시스템을 검사합니다.
질문이나 피드백이 있으면 아래 의견 양식을 활용하세요. 아마도 이 게시물을 더 좋게 만들기 위해 한두 가지 제안을 제안할 수도 있습니다.