パッケージに属していないシステム上のすべてのファイルを一覧表示することは可能ですか?またはそれらが変更されている場合は?
Apt-get、apt-files、dpkg-queryなどのようなものを使用する必要があるかもしれません
コンテキストとして、フォーマットできない古いサーバーを継承し、すべてのファイルが正常であることを確認したい場合を想像してみてください... Debianのバージョン間でアップグレードする場合、または削除した後はそうではないことを私は知っています「--purge」のないパッケージ。(通常はconfig)ファイルの割り当てが残っているようです。
同様に、そのサーバーを新しいサーバーに置き換える場合は、(基本インストールと比較して)すべての構成の違いが転送されていることを確認する必要があります(または、関連性がなくなった場合は無視されます-たとえば、ルージュの「ポート」行が追加されますsshd_configへ)。
また、apt-getを使用せずに何かがインストールされているかどうかを識別するのにも役立ちます。
パッケージによるすべてのインストールされたファイルは、リストcat /var/lib/dpkg/info/*.list
を見るとわかります。ほとんどのパッケージには、cat /var/lib/dpkg/info/*.md5sums
を見るとわかるファイルコンテンツのmd5sumsが含まれています。ただし、一部のパッケージにはこれらの合計が含まれていません。
パッケージdebsumをインストールすると、debsums -a
のようなプログラムを実行できます。これにより、インストールされているすべてのファイルと構成のmd5sumがチェックされます。
一部のパッケージは構成ファイルまたはコンテンツをインストールしないことに注意してください。代わりに、これらのファイルはインストール時にこれらのパッケージによって作成されます。これらのファイルは、パッケージに関連付けられているファイルリストまたはmd5sumsリストには含まれません。パッケージシステムに関する限り、これらはそれが所有していないデータファイルです。
同様に、そのサーバーを新しいサーバーに置き換える場合は、(基本インストールと比較して)すべての構成の違いが転送されていることを確認する必要があります(または、関連性がなくなった場合は無視されます-たとえば、ルージュの「ポート」行が追加されますsshd_configへ)。
システムをインストールした後、最初にetckeeperパッケージをインストールする必要があると思います。このパッケージは基本的に/etc
を選択したバージョン管理システムに入れます(私はgitを好みます)。これを配置すると、いつ何が変わったかを正確に確認できます。このリポジトリを新しいシステムに複製して、新しいシステムに対して差分を作成するのは簡単です。したがって、1つのコマンドで、送信元システムと宛先システムの違いを正確に確認できます。
cruft/etckeeper/debsums
Package: cruft
Description-en: program that finds any cruft built up on your system
cruft is a program to look over your system for anything that shouldn't
be there, but is; or for anything that should be there, but isn't..
It bases most of its results on dpkg's database, as well as a list of
`extra files' that can appear during the lifetime of various packages.
cruft is still in pre-release; your assistance in improving its accuracy
and performance is appreciated.
Package: debsums
Description-en: tool for verification of installed package files against MD5 checksums
debsums can verify the integrity of installed package files against
MD5 checksums installed by the package, or generated from a .deb
archive.
Package: etckeeper
Description-en: store /etc in git, Mercurial, bzr or darcs
The etckeeper program is a tool to let /etc be stored in a git, Mercurial,
bzr or darcs repository. It hooks into APT to automatically commit changes
made to /etc during package upgrades. It tracks file metadata that version
control systems do not normally support, but that is important for /etc, such
as the permissions of /etc/shadow. It's quite modular and configurable, while
also being simple to use if you understand the basics of working with version
control.
Debsumを使用できるパッケージ以降、debianパッケージの非設定ファイルが変更されているかどうかを確認します。
サードパーティのパッケージがインストールされているかどうかを確認するのは難しいので、バージョン番号とチェックサムをpackages.debian.orgの情報と比較することはできますが、それを自動化するのがどれほど難しいかはわかりません。
構成ファイルはいくつかの異なる方法で管理できるため、構成ファイルの変更を確認することは困難です。それらが「conffiles」である場合、dpkgはそれらが変更されているかどうかを認識しますが、多くの構成ファイルは変更されていません。
サーバーが最新の状態に保たれている場合は、同じパッケージがインストールされている同じバージョンのDebianの新規インストールとの相互比較が適切なオプションとなる可能性があります。サーバーを更新したくない場合は、明らかにそれはうまく機能しません(サーバーのイメージを作成して更新することはできますが、それ自体がワームの缶を開きます)。