Назад | Перейти на главную страницу

Отслеживание изменений файловой системы в Linux

После установки обновления / нового пакета, похоже, нет стандартного способа изучить изменения, внесенные в файловую систему. Простая утилита, создающая список файлов всей системы до и после установки чего-либо, очень поможет, поскольку разницаВключение двух списков файлов покажет изменения, внесенные в файловую систему. Это также был бы отличный инструмент для определения того, какие файлы конфигурации были изменены определенной панелью настроек графического интерфейса. Как лучше всего решить эту проблему?

Спасибо за вашу помощь.

Большинство менеджеров пакетов сообщат вам, какие именно файлы они установили:

dpkg -L <pkgname>
rpm -ql <pkgname>

Однако это ничего не скажет вам об изменениях, которые могли быть внесены в их сценарии после установки. Я бы сказал, что на самом деле пытаться различать снимок файловой системы после установки - это излишне. Есть ряд инструментов для отслеживания доступа к файлам, которые могут помочь.

  • InstallWatch будет отслеживать изменения файловой системы во время установки.
  • Любая хост-система обнаружения вторжений будет громко жаловаться после установки пакета. я использую Самайн.
  • Ядро интерфейс аудита можно настроить на отслеживание этого материала.

Как настроить и использовать Tripwire.
Tripwire использует список контрольных сумм критических файлов для обнаружения вторжений.

Вы можете использовать что-то подобное
(либо сам Tripwire, либо скрипт, генерирующий контрольные суммы файлов
до и после вашего изменения активности)

Контрольные суммы MD5 довольно быстрые и уже доступны как md5sum.

Найдите то, что было изменено:
В дополнение к тому, что сказал Instyle, вы также можете использовать find для поиска файлов, измененных за последние 10 минут:

найти / -mmin -10

Ревизионный контроль:
Вы также можете поместить / etc под контроль версий с помощью Subversion. Вот запись в блоге об этом.

Снимки:
Вы также можете использовать снимки lvm, это может быть излишним.

если вы пользователь Debian / Ubuntu, попробуйте etckeeper

Таких утилит много. я использую аффик.

Я подхожу к этому с другой стороны, поскольку вы не сказали точно, кто будет модифицировать системы. В зависимости от вашей среды, возможно, правильным решением будет запретить изменениям в локальной системе. Используя систему управления конфигурацией, такую ​​как puppet, в сочетании с контролем версий, все изменения будут записываться в центральной системе, а затем применяться соответствующим образом.

Это не относится к вопросу OP (изменения, внесенные диспетчером пакетов), но я нашел эту утилиту, которая помогает мне узнать, какие файлы были изменены в масштабе всей системы.

Я использую это, потому что у меня есть тенденция начинать со свежих виртуальных машин и вносить много изменений, чтобы построить их так, как мне нужно. После завершения я решаю, следует ли мне создать AWS AMI или написать поваренные книги / рецепты и т. Д. Иногда это Raspberry Pi, а затем возникает целый ряд других проблем.

Я обнаружил, что самым простым является хэш-глубина