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?
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.
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 .
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
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 mediatomb
name__, ç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
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.
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.