web-dev-qa-db-fra.com

Utilisateur inconnu dans le fichier statoverride

J'avais une application installée sur mon serveur HTPC exécutant le serveur Ubuntu appelée Mediatomb. Il y a quelques mois, je l'ai désinstallée et remplacée par une installation Plex. Le week-end, lorsqu’il interrogeait des utilisateurs existants sur la machine, j’ai remarqué que l’utilisateur et le groupe de mediatomb existaient toujours. J’ai donc utilisé la commande

Sudo deluser mediatomb

supprimer l'utilisateur. Un jour ou deux plus tard, je suis allé installer htop Sudo apt-get install htop mais j’ai trouvé que j’obtenais une erreur:

erreur de syntaxe: utilisateur inconnu 'mediatomb' dans le fichier statoverride.

Je pensais pouvoir ouvrir le fichier statoverride avec nano et supprimer toutes les références à mediatomb, mais je n’ai pas pu l’ouvrir correctement avec nano. J'ai couru une commande grep

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

qui a renvoyé deux emplacements dans le fichier qui n'existent plus sur le système. La seule façon pour moi de contourner le problème pour le moment est de recréer le mediatomb utilisateur, puis tout fonctionnera bien. Évidemment, ce n'est pas une bonne solution à long terme.

Ce que je voudrais savoir, c’est quoi, le fichier statoverride et pourquoi conserve-t-il les utilisateurs qui ont été supprimés du système? Est-ce que je supprime les utilisateurs de manière incorrecte ou obsolète?

19
Aesir

Je sais que cette question est un peu ancienne, mais je l’ai déjà vue deux fois. Une fois avec puppet, une fois avec virtualbox. Il est apparu à nouveau et j'ai trouvé quelque chose qui a fonctionné. C'est une variation sur serverfault.com .

Au lieu de s’appuyer sur dpkg-statoverride --remove /path/to/offending/file.ext qui renvoie l’erreur

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

sed, ou vous pouvez simplement ouvrir /var/lib/dpkg/statoverride dans votre éditeur de texte favori et supprimer uniquement les lignes contenant le ou les éléments à l'origine du problème. l'erreur. J'ai trouvé qu'il s'agissait d'un bogue documenté, pour Debian et Ubuntu,

Cela dit, je viens de réparer le mien en supprimant manuellement toute entrée générant une erreur, et je télécharge à nouveau avec plaisir des packages. J'espère que cela aidera la prochaine personne qui visite ce résultat de recherche Google numéro 1 pour ce problème.

43
blanket_cat

Bien que je ne puisse pas répondre à votre question comme demandé, je peux vous aider à résoudre votre dilemme. J'ai rencontré exactement le même problème que vous rencontrez après l'utilisation de "Comptes d'utilisateurs" pour supprimer l'utilisateur "backuppc" - un utilisateur que j'ai configuré manuellement pour les sauvegardes. Eh bien, j’ai abandonné cette route, mais je n’ai essayé de supprimer l’utilisateur que quelques semaines plus tard (c’est-à-dire aujourd’hui). Je n'avais rencontré aucun problème jusqu'à ce que Update Manager détecte et tente d'appliquer les mises à jour. le processus échouerait à la lecture

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:

Après quelques recherches, j'ai trouvé une solution.

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

Corrigé en lançant: 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

Désolé, je ne suis pas en mesure de répondre à votre question, mais comme il s’agissait du deuxième résultat de Google, je voulais donc proposer une solution aux personnes. Ma réponse provenait de http://rickfoosusa.blogspot.com/2012/04/howto-ubuntu-unknown-user-in.html .

16
Hall

Je devenais erreur suivante:

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)

La commande ci-dessous a résolu mon problème d'installation apt-get

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

Vous pouvez changer la crontab Word mais garder le '/ d' jusqu'à ce que vous puissiez installer avec succès apt-get sans erreur de syntaxe.

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

C’est parce que vous avez peut-être supprimé l’utilisateur et maintenant que dpkg interroge /etc/passwd pour le comparer au fichier statoverride. Il vérifie que toutes les entrées du fichier statoverride sont dans le mot de passe. Si ce n’est pas le cas, émettez un avertissement, ce qui se passe. .

Cela est facilement réparable si vous reconfigurez/réinstallez le paquet approprié (dans votre cas, c'était mediatombname__, ça peut être autre chose, heureusement, Debian (le système d'exploitation est basé sur Ubuntu) utilise normalement le même nom d'utilisateur que le nom du projet) et il (re) créera l'utilisateur dans le fichier passwd.

Sudo apt-get --reinstall install package

ou

Sudo dpkg-reconfigure package
2
Braiam

Lorsque j'ai installé DelugeD, il a créé un utilisateur appelé debian-deluged. Plus tard, j'ai changé la configuration de Deluge pour utiliser un autre ID utilisateur et j'ai supprimé l'utilisateur créé automatiquement. Cela a entraîné l'erreur statoverride lors de l'installation de l'indicateur de vitesse du package.

J'ai lancé Sudo nano /var/lib/dpkg/statoverride et remplacé manuellement l'utilisateur créé automatiquement par l'ID utilisateur attribué et l'erreur a été résolue.

1
Rajib Ghosh

J'ai eu une erreur similaire et je l'ai corrigé en sauvegardant d'abord le fichier statoverride, puis en supprimant toutes les lignes contenant le mot postdrop.

N'oubliez pas d'ajouter une nouvelle ligne à la fin du fichier statoverride.

0
Sangeet