Вопрос: Как проверить измененные файлы конфигурации в системе Debian?


Как найти все управляемые файлы конфигурации Debian, которые были изменены по умолчанию?


53
2017-12-02 22:26


Источник


Вопрос здесь. Ответ идет ниже. - Dennis Williamson
Я переместил ответ, который вы указали в ответ. - Zoredache


Ответы:


Чтобы найти все управляемые файлы конфигурации Debian, которые были изменены по умолчанию, вы можете использовать такую ​​команду.

dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS="  "{print $2,$1}' | md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}'

Редактировать (работает с локализованными системами):

dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS="  "{print $2,$1}' | LANG=C md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}' | sort | less

Изменить (работает с пакетами с OK в имени файла):

dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS="  "{print $2,$1}' | LANG=C md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK$/{print $1}' | sort | less

69
2017-12-02 22:27



Работает, как прелесть на Ubuntu 10.4, я бы поднял вас тысячу раз :-) - Ludwig Weinzierl
прекрасно работает. вы можете использовать md5sum --quiet хотя для предотвращения фильтрации файлов OK с awk (и, следовательно, проблемы локализации?). Кстати: вы не знаете, как включать файлы без следа в / etc? Например, как в файле / etc / apache2 / sites? - sfussenegger
Было бы интересно узнать, как мой ответ (debsums -ec) на самом деле работает, потому что это, кажется, дает намного меньше результатов, чем это. - naught101
Кроме того, очевидно, что единственные файлы conf проверяются на версии пакета, а затем те, которые появляются в debsums -ec: если я использую этот метод повторного обновления версий пакетов, то некоторые из файлов, перечисленных с помощью этого метода, не изменяются. - naught101


из man debsums:

  debsums -ce
          List changed configuration files.

35
2017-07-21 10:50



Это, безусловно, самый простой и лучший ответ. - mfisch
Только debsums не устанавливается по умолчанию, и вы можете не захотеть его установить. - Alexis Wilke
@AlexisWilke: это 218kb и имеет минимальные зависимости ... - naught101


Извините за некро, но в то время как ответ @ naught101 был правильным для модифицированный файлов, это не помогло добавленной файлы. @ Решение Graeme приятно, но зависит от etckeeper; Я не хочу изменять файловую систему.

find /etc -type f | grep -vFf <(debsums -e | sed 's/[[:space:]]*OK$//')

Поиск файлов в / etc / that debsums делает не отчет действителен. Это означает, что файлы без файлов или файлов, которые не являются «ОК» (хеши не совпадают).


9
2018-01-11 22:33





Обычно мне нравится настраивать etckeeper в системе почти сразу. Что-то вроде etckeeper, которое я могу найти не только тогда, когда файл отличается, но я действительно могу получить разницу точно, как он отличается.

Видеть:


8
2017-12-02 22:49





Или debsums -e | grep FAILED в котором также будут показаны все пропавшие без вести

(из пакета debsums)


5
2018-04-08 15:45





Это немного отличается от первоначального вопроса тем, что он также предоставит файлы конфигурации ADDED, а не только те, которые были изменены. Хотя файлы, не включенные в любой пакет deb, также будут пойманы. Оба поведения вполне могут быть желательными.

Это зависит от того, что вы использовали etckeeper с git vcs в идеале от get go, хотя он также должен работать, если вы специально добавляете и фиксируете ранее измененные файлы после первая фиксация. Обратите внимание, что каждый получил здесь, что Ubuntu настраивает etckeeper для использования Bazaar по умолчанию (Canonical sponsor Bazaar), а не по умолчанию git, установленного разработчиками etckeeper.

Идея состоит в том, чтобы получить список всех коммитов, которые не выполняются автоматически после и apt run. Затем перечислите файлы, которые были изменены во всех случаях, кроме самого первого:

filter_sed="/committing changes in \/etc after apt run\$/d"

etckeeper vcs log --oneline |
  sed "$filter_sed; \$d; s/ .*//" |
  xargs etckeeper vcs show --name-only --format=format: |
  sort |
  uniq |
  sed "/^\$/d"

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

Знаменитый файл, который это забирает для меня, - это мой xorg.conf - вы должны добавить это в / etc / X11 самостоятельно, если вам это нужно. Также мой default/grub изменения были подобраны, кажется, что это скопировано из / usr / share скриптом post install, а не является частью пакета. Если в файл будет внесено изменение, соответствующие методы, связанные с dpkg, не обнаружат его.


1
2017-09-26 13:11



FYI, git log теперь имеет --invert-grep вариант, который позволяет отфильтровывать неинтересные коммиты без использования sed, - Neil Mayhew


Это может быть излишним, но так как кто-то упомянул о клещах, и пока я изучал, что я столкнулся с этим другим камнем, который может быть более полезным, если вы пытаетесь выяснить вещи «после факта».

http://devstructure.com/blueprint/

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


0
2018-06-28 15:37