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

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

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

Чтобы найти все управляемые файлы конфигурации 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

из man debsums:

  debsums -ce
          List changed configuration files.

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

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

Найдите файлы в / etc / that debsums делает не сообщить как действительный. Это означает либо неотслеживаемые файлы, либо файлы, которые не соответствуют требованиям (хеши не совпадают).

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

Видеть:

Or debsums -e | grep FAILED, который также покажет все отсутствующие файлы

(из пакета дебютных сумм)

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

http://devstructure.com/blueprint/

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

Это немного отличается от исходного вопроса в том, что он также предоставит ДОБАВЛЕННЫЕ файлы конфигурации, а не только те, которые были изменены. Хотя файлы, не включенные в какой-либо пакет deb, также будут пойманы. Оба поведения вполне могут быть желательными.

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

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

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 сценарием после установки, а не перечислено как часть пакета. Если в такой файл было внесено изменение, методы, связанные с dpkg, его не обнаружат.