Відповіді:
Щоб знайти всі керовані файли конфігурації 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
Редагувати (працює з пакетами з ОК у назві файлу):
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
md5sum --quiet
хоча, щоб уникнути фільтрації файлів ОК за допомогою awk
(і, таким чином, проблем з локалізацією?). До речі: ви не знаєте, як включити непотрібні файли в / etc? Як, наприклад, в / etc / apache2 / доступні сайти?
debsums -ec
реально працює моя відповідь ( ), оскільки, здається, вона отримує набагато менше результатів, ніж ця.
debsums -ec
: якщо я використовую цей метод для повторної інсталяції версій пакета , то деякі файли, перелічені за допомогою цього методу, не змінюються.
find /etc -type f \( -iname '*.ucf-dist' -o -iname '*.ucf-old' -o -iname '*.dpkg-old' -o -iname '*.dpkg-dist' \) -print | sort
від 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$//')
Пошук файлів в / і т.д. / , що debsums
робить НЕ повідомляти дійсним. Це означає, що або відслідковуються файли, або файли, які не є "ОК" (хеші не відповідають).
debsums --list-missing
щоб перевірити, чи немає в одному або декількох пакетах контрольних сум включених файлів. На сьогодні вихід має бути порожнім.
Я, як правило, люблю налаштовувати etckeeper в системі майже відразу. З чимось на кшталт etckeeper я можу знайти не лише те, коли файл відрізняється, але я можу насправді отримати різницю в тому, як він відрізняється.
Побачити:
Це може бути зайвим, але оскільки хтось згадав etckeeper і, поки я розслідував, що я натрапив на цей інший дорогоцінний камінь, який може бути кориснішим, якщо ви намагаєтеся з'ясувати речі "після факту".
http://devstructure.com/blueprint/
План - це простий інструмент управління конфігурацією, який використовує сервери реверсу. Він визначає, що ви зробили вручну, зберігає його локально у сховищі Git, генерує код, який здатний відтворити ваші зусилля та допомагає розгорнути ці зміни у виробництві.
Це трохи відходить від початкового питання в тому, що він також надасть ADDED конфігураційні файли на відміну від лише тих, що були змінені. Хоча файли, не включені до жодного дебютного пакету, також будуть спіймані. Обидві форми поведінки можуть бути бажаними.
Це залежить від того, що ви використовували etckeeper з git vcs в ідеалі з початку роботи, хоча це також має працювати, якщо ви спеціально додаєте та виконувати раніше змінені файли після першого введення. Зауважте, що тут є те, що Ubuntu налаштовує etckeeper для використання Bazaar за замовчуванням (Canonical спонсор 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, не розкриють його.
git log
тепер є --invert-grep
опція, яка дозволяє відфільтрувати нецікаві комісії без використання sed
.