Кажется, это два вопроса:
- как узнать, был ли изменен конкретный файл
- как проверить все пакеты.
Во-первых, вы можете спросить rpm
, какому пакету принадлежит файл, используя параметры -qf
. Предполагая оболочку POSIX, проверьте /etc/hosts
:
rpm -V $(rpm -qf /etc/hosts) | fgrep /etc/hosts
который, конечно, можно превратить в сценарий, например,
#!/bin/sh
rpm -V $(rpm -qf $1) | fgrep $1
Чтобы проверить все пакеты, используйте опцию -a
, например,
rpm -Va
Отвечая на уточнение: c
, которые вы видите в строках, говорит о том, что файл помечен тегом rpm %config
. На этой странице перечислены буквы, включая использование c
:
База данных RPM записывает только исходный размер, md5sum, принадлежность файлов. Тег %config
— это обходной путь, используемый для подтверждения того, что некоторые файлы должны быть изменены специалистами по обслуживанию системы (и для того, чтобы не загромождать отчет о проверке). У вас есть несколько вариантов (все они связаны с дополнительной работой):
- вы можете скачать бинарный пакет rpm, извлечь из него файлы и сравнить их с установленным rpm
- вы можете записать исходное содержимое пакета (я локально использую rcs для таких вещей) и сравнить с записанной версией.
Для извлечения пригодится скрипт unrpm
. (С таким именем есть несколько; здесь является ссылкой на один из них).
person
Thomas Dickey
schedule
17.09.2015