statoverrideファイルの不明なユーザー


22

mediatombというubuntuサーバーを実行しているhtpcにアプリケーションをインストールしました。数か月前にそれをアンインストールし、Plexインストールに置き換えました。週末にマシンの既存のユーザーにクエリを実行したとき、mediatombユーザーとグループがまだ存在していることに気づいたので、コマンドを使用しました

sudo deluser mediatomb

ユーザーを削除します。1日ほど後にhtopをインストールしましたsudo apt-get install htopが、エラーが発生していることがわかりました。

構文エラー:statoverrideファイルの不明なユーザー「mediatomb」。

nanoを使用してstatoverrideファイルを開き、mediatombへの参照を編集できると思っていましたが、nanoを使用してファイルを正しく開くことができませんでした。grepコマンドを実行しました

grep 'mediatomb' /var/lib/dpkg/statoverride

これにより、システムには存在しない2つの場所がファイルに返されました。今のところ私が問題を回避できる唯一の方法は、ユーザーmediatombを再作成することです。明らかにこれは良い長期的な解決策ではありません。

私が知りたいのは、statoverrideファイルとは何ですか、なぜシステムから削除されたユーザーをそのファイルに保持するのですか?間違った方法または廃止された方法でユーザーを削除していますか?

回答:


47

私はこの質問が少し古いことを知っていますが、今では二度これに出くわしました。で一度、puppetで一度virtualbox。それは再び現れた、そして私は働く何かを見つけた。serverfault.comのバリエーションです。

dpkg-statoverride --remove /path/to/offending/file.extどちらに依存するのではなく、エラーをスローします

dpkg: unrecoverable fatal error, aborting:
syntax error: unknown group offendinggroup in statoverride file

を使いこなすsed/var/lib/dpkg/statoverride、お気に入りのテキストエディタで単純に開き、エラーの原因となったアイテムを含む行のみを削除することができます。これはDebianとUbuntuの両方で文書化されたバグであることがわかりました。

とは言っても、エラーをスローしたエントリを手動で編集して修正し、パッケージを再度ダウンロードしています。これが、この問題でこのナンバー1のGoogle検索結果にアクセスする次の人に役立つことを願っています。


どうもありがとうございます!数日前に作ったこの単純なコックアップを解決するために、Linuxの世界のあいまいなコーナーを発見するために永遠にすべてを費やすことになるのではないかと心配し始めていました。どうやってこれを行うことができたのかわかりませんが、そのファイルからその1行を削除すると問題が修正されました。時間を節約してくれてありがとう!
ピーターペルハッチ

あなたは素晴らしいです!私の問題を修正しました。
エラッドヴァイス

16

質問に答えることはできませんが、ジレンマを解決するのに役立ちます。「ユーザーアカウント」を使用してユーザー「backuppc」(バックアップ用に手動で構成したユーザー)を削除した後、まったく同じ問題が発生しました。さて、私はそのルートを破棄しましたが、数週間後までユーザーを削除しようとしませんでした(IE-今日)。Update Managerが更新プログラムを見つけて適用しようとするまで、私は問題を経験していませんでした。プロセスは読み取りに失敗します

dpkg: unrecoverable fatal error, aborting:  
 syntax error: unknown user 'backuppc' in statoverride file
W: Waited for dpkg --assert-multi-arch but it wasn't there - dpkgGo (10: No child processes)
E: Sub-process /usr/bin/dpkg returned an error code (2)
A package failed to install.  Trying to recover:

いくつかの検索の後、私は解決策を見つけました。

x@y ~ $ cat /var/lib/dpkg/statoverride
root postdrop 2555 /usr/sbin/postdrop
root postdrop 2555 /usr/sbin/postqueue
root mlocate 2755 /usr/bin/mlocate
postfix postdrop 2710 /var/spool/postfix/public
backuppc www-data 4750 /usr/lib/backuppc/cgi-bin/index.cgi
root ssl-cert 710 /etc/ssl/private
root crontab 2755 /usr/bin/crontab

実行により修正:sudo sed -i '/ backuppc / d' / var / lib / dpkg / statoverride

x@y ~ $ sudo sed -i '/backuppc/d' /var/lib/dpkg/statoverride; cat /var/lib/dpkg/statoverride
[sudo] password for x: 
root postdrop 2555 /usr/sbin/postdrop
root postdrop 2555 /usr/sbin/postqueue
root mlocate 2755 /usr/bin/mlocate
postfix postdrop 2710 /var/spool/postfix/public
root ssl-cert 710 /etc/ssl/private
root crontab 2755 /usr/bin/crontab

申し訳ありませんが、あなたの質問に答えることはできませんが、これはgoogleの2番目の結果でしたので、ここに人々のための解決策を入れたかったのです。私の答えはhttp://rickfoosusa.blogspot.com/2012/04/howto-ubuntu-unknown-user-in.htmlから始まりました。


3
これは問題に対する最悪のアプローチです。代わりに、削除するつもりのないものを削除する代わりに、パッケージを再インストール/再構成する必要があります。
Braiam 14年

4

次のエラーが発生しました:

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

以下のコマンドは、apt-getインストールの問題を解決しました

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

crontabの単語は変更できますが、構文エラーなしでapt-getを正常にインストールできるまで「/ d」のままにしてください。

root@localhost:~# sudo sed -i '/messagebus/d' /var/lib/dpkg/statoverride
root@localhost:~# apt-get install wifite
Reading package lists... Done

2

ユーザーを削除/etc/passwdし、statoverrideファイルと比較するためにdpkgクエリを実行した可能性があるためです。statoverrideファイルのすべてのエントリがpasswdにあることを確認し、そうでない場合は警告を発行します。

関連するパッケージを再構成/再インストールすると簡単に修正できます(あなたの場合はそうでしたがmediatomb、幸いなことにDebian(OS Ubuntuのベース)はプロジェクトの名前と同じユーザー名を使用します) passwdファイルにユーザーを(再)作成します。

sudo apt-get --reinstall install package

または

sudo dpkg-reconfigure package

1

DelugeDをインストールすると、debian-delugedというユーザーが作成されました。その後、別のユーザーIDを使用するようにDelugeの構成を変更し、自動作成されたユーザーを削除しました。これによりstatoverride、パッケージ速度計のインストール時にエラーが発生しました。

私は立ち上げsudo nano /var/lib/dpkg/statoverrideて、手動で割り当てられたユーザーIDで自動作成したユーザーを交換し、エラーが解決されました。


1

同様のエラーが発生したため、まずstatoverrideファイルをバックアップしてから、postdropという単語を含むすべての行を削除して修正しました。

statoverrideファイルの最後に必ず新しい行を追加してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.