Проверка установленных пакетов помощью программы debsums

Иногда возникают сомнения в качестве установленного на систему бинарного или открытого программного пакета. Они могут работать некорректно или вовсе не запускаться. Проблемы с поврежденными программными пакетами могут быть вызваны нестабильным интернет-соединением и перепадами в электропитании. Помимо этого, встречаются пользователи, которые могут попытаться заменить ключевые команды своими собственными, чтобы в дальнейшем наносить вред системе. Поэтому полезно сравнивать файлы файловой системы с информацией программного пакета.
Программа debsums является утилитой Ubuntu и других операционных систем на базе Debian, которая сверяет информацию ключей MD5 каждого установленного пакета с файлами md5sum, найденными в папке /var/ 1 i b/dpkg/inf.
С помощью следующей команды вы можете установить эту программу:
$ sudo aptitude install debsums
В табл. 2.7 приведены наиболее полезные параметры команды debsums. Более подробную информацию о debsums можно получить в МAN-руководстве.
Для выполнения большинства операций необязательно обладать правами суперпользователя (использовать команду sudo), однако к некоторым файлам простой пользователь не имеет доступа, поэтому, если появится сообщение «debsums: cant open at file /etc/at. deny (Permission denied), вам придется использовать sudo.
Если выполнить команду debsums без дополнительных параметров, будет проверен каждый известный ей файл системы. При необходимости результат может быть переадресован в файл. Если md5sum проверяет выход для файла, название файла, выводимое утилитой debsums, сопровождается надписью ОК, расположенной справа от сообщения. Кроме того, могут выводиться и другие сообщения: md5sums missing («md5sums потерян») для отдельного файла или слово REPLACED («Перемещен»), если утилита не нашла требуемого соответствия md5sum. Позже, если вы решите использовать это приложение в качестве основной программы получения нужной информации, чтобы все было установлено именно так, как вы хотите, вы сможете восстановить md5sum для отсутствующих или неработающих приложений. Таким образом, вы будете уверены, что у вас установлены наиболее свежие приложения.
Эта команда сверяет все файлы системы с имеющимися в наличии файлами md5sum. В приведенном ниже примере видно, что некоторые файлы отсутствуют или перемещены. Перед тем как восстановить файлы md5sum, убедитесь, что в системе отсутствуют проблемы с этими файлами:
$ debsums
/usr/bin/acpi OK
/usr/share/man/manl/acpi. l.gz OK
/usr/share/doc/acpi/README OK
/usr/share/doc/acpi/AUTHORS OK
/usr/share/app-install/icons/pybliographic. png OK
Debsums debsums debsums
No md5sums for bsdutils no md5sums for bzip2 no md5sums for cdrecord
/usr/share/1ocalе-1angpack/en_AU/LC_MESSAGES/adduser. mo REPLACED /usr/share/locale-langpack/en_AU/LC_MESSAGES/alsa-utils. mo OK
Если вы хотите сохранить эту информацию в файл, а также сохранить сообщения stdout и stderr, переадресуйте stdout – и stderr-потоки в файл. Чтобы впоследствии можно было продолжить работу в командной оболочке, в конце команды установлен знак &:
$ debsums &> /tmp/foo &
Чтобы проверить конфигурационные файлы каждого программного пакета на наличие изменений, выполните команду debsums с параметром – а:
$ debsums – а
/usr/bin/acpi OK
/usr/share/man/manl/acpi.1.gz OK
Чтобы проверить только конфигурационные файлы, пропуская остальные, воспользуйтесь параметром – е. Данный способ позволяет убедиться, что вы не изменили случайно какой-либо конфигурационный файл. Ниже видно, что некоторые Х-конфигурационные файлы были изменены:
$ debsums – е
/etc/Xll/Xresources/xll-common /etc/Xll/Xsession /etc/Xll/rgb. txt /etc/init. d/xll-common
/etc/Xll/Xsession. d/50xll-common_determine-startup /etc/Xll/Xsession. d/30xll-common_xresources /etc/Xll/Xsession. d/20xll-common_process-args /etc/Xll/Xsession. options
OK
FAILED
OK
OK
OK
OK
OK
FAILED
По умолчанию debsums отображает достаточно большое количество информации, однако вы можете отобразить и только измененные файлы. Результат выполнения команды debsums с параметром – с показан ниже:
$ debsums – с
Debsums: no md5sums for at debsums: no md5sums for base-files debsums: no md5sums for be
Предыдущая команда отображает сообщения о файлах, содержащих информацию о md5sum. Выполнив команду debsums с параметром -1, вы сможете искать файлы, которые не содержат информации о md5sum:
$ debsums -1
At
Base-files be
Binutils binutils-static
Если вы захотите, чтобы debsums вывел информацию только об ошибках, воспользуйтесь параметром – s:
$ debsums -s
Debsums: no md5sums for at debsums: no md5sums for base-files debsums: no md5sums for be debsums: no md5sums for binutils
Чтобы проверить конкретный пакет, в качестве аргумента debsums укажите имя соответствующего пакета:
$ debsums coreutils
/bin/cat OK /bin/chgrp OK /bin/chmod OK
Следующая команда проверяет только те файлы, которые перечислены в файле md5sum пакета, содержащегося в папке / var/1 i b/dpkg/i nfo, поэтому, если в программном пакете отсутствует файл md5sum, будет выведено сообщение об ошибке:
$ debsums rsync
Debsums: no md5sums for rsync
Для генерации недостающих данных md5sum для rsync воспользуйтесь комбинацией из dpkg и утилиты md5sum и простым сценарием для командного процессора. Сначала для получения списка всех известных dpkg-файлов в пакете rsync выполните команду dpkg – L. В полученном списке будут, помимо имен файлов, содержаться другие строки данных. Далее необходимо будет передать полученные данные grep и отфильтровать все записи, которые не начинаются со знака /. Затем определите, чем является строка выводимых dpkg-данных — папкой или файлом (названия папок также начинаются с символа /). Если это файл, значит md5sum будет выполнена на строке вывода, которая на этом этапе будет являться именем файла. Наконец, сохраните все данные в текстовый файл с тем же соглашением об именах, что и файлы md5sum в папке /var/1 i b/dpkg/i nfo.
$ for file 1n 4 dpkg – L rsync | grep A/4; do test – f "$f1le" && md5sum H$f1leH; done > /tmp/rsync. md5sums
Эта команда полезна тем, что позволяет получить базу данных md5sum, которая затем может быть записана на компакт-диск и использована для последующей проверки системы. Если файлы md5sum записаны на компакт-диск, они не могут быть случайно удалены или стать причиной возникновения проблем с файловыми системами жесткого диска. Если вы решите позже проверить ключи md5sun то воспользуйтесь командой md5sum вместе с параметром – с и добавьте к ней имя файла данных md5sum:
$ md5sum – с /tmp/rsync. md5sums
/usr/bin/rsync: OK
/usr/share/doc/rsync/examples/rsyncd. conf: OK /usr/share/doc/rsync/README. gz: OK /usr/share/doc/rsync/TODO. gz: OK
Чтобы воспользоваться файлом rsync. md5sum с приложением debsums, потребуется внести одно изменение, которое может повлечь за собой проблемы с md5sum, но все же является обязательным условием для работы с debsums, — убрать первый слэш в имени файла. Сделать это можно в текстовом редакторе либо командном процессоре:
$ cat /tmp/rsync. md5sums
302916114c29191cd9c8cb51d67ee60a /usr/bin/rsync
Чтобы убрать первый слэш в начале /usr/bi n/rsync, попробуйте воспользоваться текстовым или потоковым редактором (Stream Editor):
$ sed – е s# /# #g /tmp/rsync. md5sums > /tmp/rsync. debsums $ cat /tmp/rsync. debsums
302916114c29191cd9c8cb51d67ee60a usr/bin/rsync
Теперь, удалив первый слэш в rsync. debsums, вы можете скопировать этот файл в папку /var/1 i b/dpkg/i nfo, после чего debsums сможет использовать его:
$ sudo mv /tmp/rsync. debsums /var/1ib/dpkg/info/rsync. md5sums $ debsums rsync
/usr/bin/rsync OK
/usr/share/doc/rsync/examples/rsyncd. conf OK /usr/share/doc/rsync/README. gz OK
Поделиться новостью...
Смотрите также:
- Linux запуск процесса в новой консоли
- Управление пользователями в ubuntu 12 04
- Команда chage пароль
- Команда ps
- Linux tune2fs консоль


