Jawaban:
Untuk menemukan semua file konfigurasi yang dikelola Debian yang telah diubah dari default, Anda dapat menggunakan perintah seperti ini.
dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS=" "{print $2,$1}' | md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}'
Edit (berfungsi dengan sistem terlokalisasi):
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
Edit (berfungsi dengan paket dengan OK di nama file):
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
meskipun untuk menghindari pemfilteran file OK dengan awk
(dan dengan demikian masalah pelokalan?). Omong-omong: Anda tidak tahu cara memasukkan file yang tidak terlacak dalam / etc? Seperti yang ada di / etc / apache2 / sites-available misalnya?
debsums -ec
) benar-benar berfungsi, karena tampaknya mendapatkan hasil yang jauh lebih sedikit daripada ini.
debsums -ec
: jika saya menggunakan metode ini untuk menginstal ulang versi paket , maka beberapa file yang terdaftar melalui metode ini tidak berubah.
dari man debsums
:
debsums -ce
List changed configuration files.
Maaf necro, tetapi sementara jawaban @ naught101 benar untuk file yang dimodifikasi , itu tidak membantu untuk file yang ditambahkan . @ Graeme's solusinya bagus, tetapi tergantung pada dllkeeper; Saya tidak ingin memodifikasi sistem file.
find /etc -type f | grep -vFf <(debsums -e -r /etc | sed 's/[[:space:]]*OK$//')
Cari file di / etc / yang debsums
tidak tidak melaporkan sebagai valid. Ini berarti file yang tidak dilacak atau file yang bukan "OK" (hash tidak cocok).
debsums --list-missing
untuk memeriksa apakah satu atau lebih paket tidak ada checksum dari file yang disertakan. Saat ini hasilnya harus kosong.
Saya biasanya suka mengatur etckeeper pada sistem dengan segera. Dengan sesuatu seperti etckeeper saya dapat menemukan tidak hanya ketika file berbeda, tetapi saya benar-benar bisa mendapatkan perbedaan persis bagaimana perbedaannya.
Lihat:
Ini mungkin berlebihan tetapi karena seseorang menyebutkan penjaga dll dan ketika saya sedang menyelidiki bahwa saya menemukan permata lain ini yang mungkin lebih berguna jika Anda mencoba untuk mencari tahu hal-hal "setelah fakta".
http://devstructure.com/blueprint/
Blueprint adalah alat manajemen konfigurasi sederhana yang merekayasa balik server. Itu mengetahui apa yang telah Anda lakukan secara manual, menyimpannya secara lokal di repositori Git, menghasilkan kode yang dapat menciptakan kembali upaya Anda, dan membantu Anda menyebarkan perubahan itu ke produksi.
Ini menyimpang sedikit dari pertanyaan awal karena ia juga akan memberikan file konfigurasi ADDED sebagai ganti hanya yang dimodifikasi. Meskipun file tidak termasuk dalam paket deb juga akan ditangkap. Kedua perilaku mungkin diinginkan.
Itu tergantung pada telah menggunakan dllkeeper dengan git vcs idealnya dari awal, meskipun juga harus bekerja jika Anda secara khusus menambahkan dan melakukan file yang sebelumnya diubah setelah komit pertama. Perhatikan bahwa satu yang didapat di sini adalah Ubuntu mengonfigurasi etckeeper untuk menggunakan Bazaar secara default (Canonical sponsor Bazaar), daripada git default yang ditetapkan oleh pengembang etckeeper.
Idenya adalah untuk mendapatkan daftar semua komit yang tidak dibuat secara otomatis setelah dan tepat dijalankan. Kemudian buat daftar file yang diubah di semua kecuali komit pertama:
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"
String filter juga dapat diperluas untuk mencakup komit lainnya jika diberi nama secara konsisten. Mungkin baik untuk menginstal langsung dari file deb atau dari kode sumber.
File penting yang saya ambil ini milik saya xorg.conf
- Anda saat ini harus menambahkan ini ke / etc / X11 sendiri jika Anda membutuhkannya. default/grub
Perubahan saya juga diambil, sepertinya ini disalin dari / usr / share oleh skrip instalasi pos daripada terdaftar sebagai bagian dari paket. Jika ada perubahan pada file seperti ini, metode terkait dpkg tidak akan mengungkapkannya.
git log
sekarang memiliki --invert-grep
opsi yang memungkinkan menyaring komitmen yang tidak menarik tanpa menggunakan sed
.