web-dev-qa-db-ja.com

Debianシステムで変更された設定ファイルを確認する方法は?

デフォルトから変更されたすべてのDebian管理構成ファイルを見つける方法は?

65
malclocke

デフォルトから変更されたすべての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
82
malclocke

から man debsums

  debsums -ce
          List changed configuration files.
49
naught101

ネクロに申し訳ありませんが、@ naught101の答えは変更ファイルに対しては正解でしたが、追加ファイルに対しては役に立ちませんでした。 @Graemeの解決策はいいですが、etckeeperに依存しています。ファイルシステムを変更したくありません。

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

/ etc /でdebsumsが実行するファイルを検索notは有効であると報告します。これは、追跡されていないファイルまたは「OK」ではないファイル(ハッシュが一致しない)を意味します。

12

私は通常、システムにetckeeperをすぐにセットアップするのが好きです。 etckeeperのようなものを使用すると、ファイルが異なる場合だけでなく、実際にそれがどのように異なるかを正確に知ることができます。

見る:

8
Zoredache

またはdebsums -e | grepが失敗し、見つからないすべてのconffileも表示されます

(debsumsパッケージから)

6
Wookey

これはやり過ぎかもしれませんが、誰かがetckeeperについて言及していて、私が調査しているときに、「事後」に物事を理解しようとしている場合に役立つかもしれないこの他の宝石に出くわしたので、.

http://devstructure.com/blueprint/

ブループリントは、サーバーをリバースエンジニアリングするシンプルな構成管理ツールです。手動で行ったことを把握し、Gitリポジトリにローカルに保存し、作業を再現できるコードを生成し、それらの変更を本番環境にデプロイするのに役立ちます。

2
dragon788

これは、変更されたものだけではなく、追加の構成ファイルも提供するという点で、元の質問とは少し異なります。 debパッケージに含まれていないファイルもキャッチされますが。両方の動作が望ましい場合があります。

Git vcsでetckeeperを使用することが理想的ですが、以前に変更されたファイルを具体的に追加してコミットする場合にも機能するはずですafter最初のコミット。ここで注意すべき点の1つは、Ubuntuがetckeeperを、etckeeper開発者が設定したgitのデフォルトではなく、デフォルトでBazaar(正規スポンサーBazaar)を使用するように構成していることです。

アイデアは、apt実行後に自動的に行われないすべてのコミットのリストを取得することです。次に、最初のコミット以外のすべての変更されたファイルをリストします。

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関連のメソッドはそれを明らかにしません。

1
Graeme