Инструмент для удаления всех файлов непакета в системе

Это - все, что я знаю, что это больше всего похоже на B-дерево в Linux

ps -ejH
1
05.05.2011, 14:17
3 ответа

Если то, что Вы хотите, будет средством проверки целостности файлов, то об/мин сделает то, что Вы хотите. rpm -qaV(отметьте верхний регистр V). Это пройдет и проверит:

  • размер файла
  • режим (тип полномочий и тип файла)
  • Контрольная сумма MD5
  • номер устройства (проверяет если чье-то сокрытие файла путем монтирования другого раздела там
  • путь readlink (если символьная ссылка указывает на другой файл),
  • пользовательское владение
  • владение группы
  • время изменения

Это должно быть довольно всесторонним списком.

rpm -qa --filesbypkg | awk '{print $2}' перечислит все файлы в системе, которые составлялись.
find / | grep -vf /tmp/files-on-system.txt найдет все файлы в системе, которые не находятся в базе данных RPM. Другой способ выполнить эти две команды в одной команде был бы rpm -qf 'find /'#replace single quote with backtick Примечание: Это также отметит как ошибочные файлы в каталогах как

  • /dev
  • /home
  • /proc
  • /var/run
  • /var/log
  • /var/lib
  • /tmp
2
27.01.2020, 23:29
  • 1
    Хороший, -qa + -qaV кажется, делает точно, что необходимо. Интересно, как трудный, который должен был бы портировать на DEB... –  l0b0 05.05.2011, 17:30

На Debian и других системах с помощью dpkg, sort -u /var/lib/dpkg/info даст Вам список всех файлов, обеспеченных пакетом. Сравнение со списком файлов на самом деле представляет в системе, показывает большое количество файлов, которые не обеспечиваются никаким пакетом. Этот список от быстрого взгляда на один Debian, сжимают машину, и ни в коем случае не является исчерпывающим.

  • Очевидные подозреваемые: /etc, /usr/local, /opt, /var, /home, /srv, точки монтирования всех видов.
  • Много символьных ссылок, которые создаются сценариями установки пакета. Часто это вызвано тем, что файл раньше был в пакете и был теперь заменен альтернативой: сначала новый пакет распакован, затем старый пакет, который он заменяет, удален, и наконец postinst сценарий нового пакета создает ссылку.
  • Несколько использования dpkg-divert.
  • В /boot, initrd-* (автоматически повторно созданный от установленного ядра и дополнительных модулей), и файлы загрузчика (/boot/grub/*).
  • В /lib/modules/*, файлы зависимости от модуля и карты символа и автоматически-скомпилированные-модули (от dkms).
  • Различное non-redistribuable содержание, которое загружается с его единственного авторизованного источника, когда Вы устанавливаете пакет. Большая часть из него является документацией, существует также несколько шрифтов.
  • Шрифт X11 подстрекает в /usr/X11R6/lib/X11/fonts.
  • Бэкенды CUPS, скопированные с /usr/lib/cups/backend-available/ кому: /usr/lib/cups/backend/http/.
  • Различные файлы, которые компилируются на установке: *.pyc (Python), *.elc (Emacs), *.dll (Моно), …
  • Сгенерированные индексы документации в /usr/share/doc/HTML (от dhelp).

Если Вы хотите объяснить каждый файл, необходимо будет отследить их историю. Другими словами, для передачи аудита Вы не можете только показать файлы, которые Вы имеете, также ваше дело как контролируемый показывать доказательство законности для каждого файла.

Классический подход должен использовать инструмент как растяжка, которая предупреждает Вас, когда файл изменяется. Если Вы после чего-то более мощного, которое позволяет Вам отслеживать изменения, это - точно управление версиями. Debian обеспечивает управление версиями под ключ для /etc через etckeeper. Это не часть стандартной установки (к сожалению). Установите пакет, выберите свою любимую систему управления версиями в /etc/etckeeper/etckeeper.conf, и выполненный etckeeper init. Все изменения под /etc будет фиксироваться автоматически каждую ночь и прежде и после выполнения apt-get или другие фронтенды APT; можно отключить эти автоматические фиксации, чтобы вынудить администратора работать etckeeper commit вручную (и вводят сообщение журнала).

1
27.01.2020, 23:29

Если Вы действительно хотите чистую, последовательную систему сборки, Вы могли бы быть лучше из со снимками файловой системы такой как, что предлагает LVM. Можно установить систему с файловыми системами как/usr на LVM. Затем можно создать снимок любых файловых систем, которые Вы хотите восстановить к их исходному состоянию через lvsnapshot команда. Можно смонтировать эти снимки как записываемые вместо их нормального монтирования. Когда Вы хотите вернуться к более раннему состоянию, просто umount, удалить, и воссоздать снимки и смонтировать новые снимки снова. Если Вы хотите сохранить / домой или другие файловые системы в их текущем состоянии, можно поместить их на LVM, но не создать снимок для них.

Другой подход, который я использую при тестировании развертываний программного обеспечения или дисков пользовательской установки, должен использовать виртуальную машину как рабочая станция VirtualBox или VMware. Они могут взять целые дисковые снимки восстановить их по запросу. Это также обладает преимуществами как приостановка машины в то время как перезагрузки хоста. После того как виртуальная машина запущена, она возобновляется от состояния, которым это было при приостановке. VirtualBox, в частности, может взять несколько дисковых снимков, любой возвращается к любому прежнему снимку, все еще сохраняя их. Вы могли пойти между двумя или больше строками снимков в случае необходимости.

0
27.01.2020, 23:29
  • 1
    Это не применимо. Я попросил способ проверить, что метаданные пакета соответствуют действительности на диске. –  l0b0 05.05.2011, 14:21
  • 2
    @lObO Для ярмарки вопроса не совсем ясен. Вы конкретно упоминаете пример Ваш вопрос, для которого это является намного лучшей заменой. Вместо того, чтобы запускать скрипт для генерации списка комнаты для возврата системы известному чистому состоянию создание снимков было бы намного лучшим решением. На основе Вашего входа это стоит предложить здесь особенно для кого-либо, кто мог бы приехать с идеей сделать что-то подобное. Если у Вас есть причины сохраниться с Вашей прекрасной архитектурой, но много людей думает, что они хотят сделать это, когда действительно они должны делать что-то еще. –  Caleb 05.05.2011, 22:48

Теги

Похожие вопросы