dpkg-statoverride ファイルからユーザーを削除するにはどうすればよいですか?

dpkg-statoverride ファイルからユーザーを削除するにはどうすればよいですか?

不要になったサーバーをいくつか削除し、削除したソフトウェア パッケージのユーザーとグループを削除した後、パッケージをインストールしようとしました。新しいパッケージを取得してインストールしようとしたところ、次のエラーが発生しました。

user@localhost~$ sudo apt-get install any-package

... package installation output omitted for brevity ...

dpkg: unrecoverable fatal error, aborting:
syntax error: unknown user 'puppet' in statoverride file
E: Sub-process /usr/bin/dpkg returned an error code (2)

したがって、/usr/bin/dpkg-statoverride にはパスを削除するオプションがありますが、apt-get インストール コンテキスト全体の外部で実行しようとすると、バイナリは同じエラーをスローします。

そこで、ユーザー パペットを追加して、パッケージを再度ダウンロードできるようになりましたが、開発システムから不要な要素を削除しようとしているので、私にとっては、これが機能するからといって解決策になるわけではありません。

私の知る限り、statoverride はパッケージ マネージャーに特定のものを特定のパスにインストールするように指示し、setuid フラグを混乱させるため、未使用のユーザーとグループが共同所有するプログラムをインストールすることで、多数のセキュリティ ホールが開かれる可能性があります。ユーザーが削除されたときに、dpkg-statoverride がシステムの他の部分とともに更新されないのはなぜでしょうか。また、パッケージをインストールするたびに :adduser -> install -> deluser: を実行しなくても済むように、これを回避する方法はありますか。

答え1

これを試すことができます:

sudo sed -i '/puppet/d' /var/lib/dpkg/statoverride

ユーザーを statoverride から削除し、再度インストールするためのアクセス権を付与する必要があります。

関連情報