web-dev-qa-db-ja.com

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:パッケージをインストールしたいたびにする必要はありませんか?

4
blanket_cat

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

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

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

8
ElefantPhace