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