Unbekannter Benutzer in Statoverride-Datei

22

Ich hatte eine Anwendung namens mediatomb auf meinem htpc-Ubuntu-Server installiert. Vor ein paar Monaten habe ich sie deinstalliert und durch eine Plex-Installation ersetzt. Am Wochenende, als ich vorhandene Benutzer auf dem Computer abfragte, bemerkte ich, dass der Mediatomb-Benutzer und die Gruppe immer noch vorhanden waren, also habe ich den Befehl verwendet

sudo deluser mediatomb

um den Benutzer zu entfernen. Etwa einen Tag später ging ich zur Installation von htop, stellte sudo apt-get install htopjedoch fest, dass ein Fehler auftrat:

Syntaxfehler: Unbekannter Benutzer 'mediatomb' in Statoverride-Datei.

Ich dachte, ich könnte die Statoverride-Datei nur mit nano öffnen und alle Verweise auf mediatomb herausschneiden, aber ich konnte die Datei nicht richtig mit nano öffnen. Ich habe einen grep-Befehl ausgeführt

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

Dadurch wurden zwei Speicherorte in der Datei zurückgegeben, die nicht mehr auf dem System vorhanden sind. Die einzige Möglichkeit, das Problem zu umgehen, besteht darin, das Benutzermedium neu zu erstellen, und dann funktioniert alles einwandfrei. Dies ist offensichtlich keine gute langfristige Lösung.

Was ich wissen möchte, ist, was ist die Statoverride-Datei und warum behält sie Benutzer darin, die aus dem System entfernt wurden? Entferne ich die Benutzer falsch oder veraltet?

Asen
quelle

Antworten:

47

Ich weiß, dass diese Frage ein bisschen alt ist, aber ich bin sie jetzt zweimal angetroffen. Einmal mit puppet, einmal mit virtualbox. Es tauchte wieder auf und ich fand etwas, das funktionierte. Es ist eine Variation von serverfault.com .

Anstatt sich darauf zu verlassen dpkg-statoverride --remove /path/to/offending/file.ext, löst das den Fehler aus

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

Sie können mit etwas anfangen sedoder einfach /var/lib/dpkg/statoverridein Ihrem bevorzugten Texteditor öffnen und nur die Zeilen entfernen , die die Elemente enthalten, die den Fehler verursacht haben. Ich fand, dass dies ein dokumentierter Fehler ist, sowohl für Debian als auch für Ubuntu.

Das heißt, ich habe meinen Fehler gerade behoben, indem ich jeden fehlerhaften Eintrag manuell herausgeschnitten habe, und ich lade gerne wieder Pakete herunter. Ich hoffe, dies hilft der nächsten Person, die dieses Google-Suchergebnis Nr. 1 für dieses Problem besucht.

blanket_cat
quelle
Ich danke dir sehr! Ich hatte gerade die Sorge, dass ich die ganze Ewigkeit damit verbringen werde, obskure Ecken der Linux-Welt zu entdecken, um dieses einfache Problem zu lösen, das ich vor einigen Tagen gemacht hatte. Ich weiß nicht, wie ich das geschafft habe, aber das Entfernen dieser einen Zeile aus dieser Datei hat das Problem behoben. Vielen Dank, dass Sie mir viel Zeit gespart haben!
Peter Perháč
Du bist toll! Mein Problem wurde behoben.
Elad Weiss
16

Auch wenn ich Ihre Frage nicht beantworten kann, kann ich Ihnen in Ihrem Dilemma helfen. Ich hatte genau dasselbe Problem, nachdem ich mit "Benutzerkonten" den Benutzer "backuppc" entfernt habe - einen Benutzer, den ich manuell für Sicherungen konfiguriert habe. Nun, ich habe diese Route verworfen, aber erst ein paar Wochen später versucht, den Benutzer zu entfernen (IE - heute). Ich hatte keine Probleme, bis Update Manager Updates gefunden und versucht hatte, diese anzuwenden. Der Prozess würde fehlschlagen zu lesen

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:

Nach einigem Suchen fand ich eine Lösung.

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

Behoben durch Ausführen von: 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

Entschuldigung, ich kann Ihre Frage nicht beantworten, aber dies war das zweite Ergebnis in Google. Deshalb wollte ich hier eine Lösung für die Leute finden. Meine Antwort stammt von http://rickfoosusa.blogspot.com/2012/04/howto-ubuntu-unknown-user-in.html .

Halle
quelle
3
Dies ist die schlechteste Herangehensweise an das Problem. Sie sollten das Paket stattdessen neu installieren / konfigurieren, anstatt Dinge zu löschen, die nicht gelöscht werden sollen.
Braiam
4

Ich habe folgenden Fehler erhalten:

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)

Der folgende Befehl hat mein Problem mit der Installation von apt-get behoben

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

Sie können das crontab-Wort ändern, aber das '/ d' beibehalten, bis Sie apt-get ohne Syntaxfehler erfolgreich installieren können.

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

/etc/passwdDies liegt daran, dass Sie möglicherweise den Benutzer gelöscht haben und jetzt dpkg-Abfragen zum Vergleich mit der statoverride-Datei ausführen. Es wird überprüft, ob alle Einträge der statoverride-Datei im passwd enthalten sind. Wenn dies nicht der Fall ist, wird eine Warnung ausgegeben.

Das ist leicht zu beheben, wenn Sie das betreffende Paket neu konfigurieren / neu installieren (in Ihrem Fall kann mediatombes sich um alles andere handeln, zum Glück verwendet Debian (das Betriebssystem, auf dem Ubuntu basiert) denselben Benutzernamen wie der Name des Projekts, normalerweise) und es erstellt den Benutzer in der passwd-Datei (neu).

sudo apt-get --reinstall install package

oder

sudo dpkg-reconfigure package
Braiam
quelle
1

Bei der Installation von DelugeD wurde ein Benutzer namens debian-deluged erstellt. Später habe ich die Deluge-Konfiguration geändert, um eine andere Benutzer-ID zu verwenden, und den automatisch erstellten Benutzer entfernt. Dies führte zu dem statoverrideFehler beim Installieren des Pakettachometers.

Ich habe sudo nano /var/lib/dpkg/statoverrideden automatisch erstellten Benutzer gestartet und manuell durch die zugewiesene Benutzer-ID ersetzt, und der Fehler wurde behoben.

Rajib Ghosh
quelle
1

Ich hatte einen ähnlichen Fehler und habe ihn behoben, indem ich zuerst die Statoverride- Datei gesichert und dann alle Zeilen mit dem Wort postdrop entfernt habe .

Denken Sie daran, am Ende von eine neue Zeile einzufügen Statoverride- Datei einzufügen .

Sangeet
quelle