Usuario desconocido en el archivo statoverride

22

Tenía una aplicación instalada en mi htpc que ejecutaba un servidor ubuntu llamado mediatomb, hace unos meses la desinstalé y la reemplacé por una instalación de Plex. El fin de semana, al consultar a los usuarios existentes en la máquina, noté que el usuario y el grupo de mediatomb todavía existían, así que utilicé el comando

sudo deluser mediatomb

para eliminar al usuario. Un día más tarde fui a instalar htop sudo apt-get install htoppero descubrí que recibía un error:

error de sintaxis: usuario desconocido 'mediatomb' en el archivo statoverride.

Pensé que solo sería capaz de abrir el archivo statoverride usando nano y editar cualquier referencia a mediatomb, pero no pude abrir el archivo correctamente usando nano. Ejecuté un comando grep

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

que devolvió dos ubicaciones en el archivo que ya no existen en el sistema. La única forma en que puedo solucionar el problema por ahora es volver a crear la mediatomb de usuario y luego todo funciona bien. Obviamente, esta no es una buena solución a largo plazo.

Lo que me gustaría saber es, ¿qué es el archivo statoverride y por qué retiene a los usuarios que han sido eliminados del sistema? ¿Estoy eliminando a los usuarios de forma incorrecta o en desuso?

Aesir
fuente

Respuestas:

47

Sé que esta pregunta es un poco vieja, pero la he encontrado dos veces. Una vez con puppet, una vez con virtualbox. Surgió de nuevo y encontré algo que funcionó. Es una variación en serverfault.com .

En lugar de confiar en dpkg-statoverride --remove /path/to/offending/file.extcuál, arroja el error

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

Puede ser elegante sedo simplemente puede abrir /var/lib/dpkg/statoverrideen su editor de texto favorito y eliminar solo las líneas que contienen los elementos que estaban causando el error. Descubrí que este es un error documentado, tanto para Debian como para Ubuntu,

Dicho esto, acabo de arreglar el mío editando manualmente cualquier entrada que arroje un error, y estoy felizmente descargando paquetes nuevamente. Espero que esto ayude a la siguiente persona, que visita este resultado de búsqueda número 1 de Google para este problema.

blanket_cat
fuente
Muchas gracias! Estaba empezando a preocuparme de que pasaría toda la eternidad descubriendo rincones oscuros del mundo de Linux para resolver este simple problema que había hecho hace unos días. No sé cómo pude hacer esto, pero eliminar esa línea de ese archivo solucionó el problema. ¡Muchas gracias por ahorrarme mucho tiempo!
Peter Perháč
¡Usted es maravilloso! Se solucionó mi problema.
Elad Weiss
16

Si bien no puedo responder a su pregunta tal como se la pedí, puedo ayudarlo con su dilema. Experimenté exactamente el mismo problema que tiene después de usar 'Cuentas de usuario' para eliminar el usuario 'backuppc', un usuario que configuré manualmente para las copias de seguridad. Bueno, eliminé esa ruta pero no intenté eliminar al usuario hasta un par de semanas después (IE - hoy). No había tenido ningún problema hasta que Update Manager encontró e intentó aplicar actualizaciones; el proceso no leería

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:

Después de algunas búsquedas encontré una solución.

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

Se corrigió ejecutando: 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

Lo siento, no puedo responder a su pregunta, pero este fue el segundo resultado en Google, así que quería poner una solución aquí para las personas. Mi respuesta se originó en http://rickfoosusa.blogspot.com/2012/04/howto-ubuntu-unknown-user-in.html .

salón
fuente
3
Este es el peor enfoque del problema. En su lugar, debe reinstalar / reconfigurar el paquete en lugar de eliminar las cosas que no deben eliminarse.
Braiam
4

Estaba recibiendo el siguiente error:

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)

El siguiente comando resolvió mi problema de instalación de apt-get

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

Puede cambiar la palabra crontab pero mantener la '/ d' hasta que pueda instalar con éxito cualquier apt-get sin ningún error de sintaxis.

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

Es porque puede haber eliminado el usuario y ahora consultas dpkg /etc/passwdpara comparar con el archivo statoverride, comprueba que todas las entradas del archivo statoverride están en passwd y, si no lo están, emite una advertencia, que es lo que está sucediendo.

Eso es fácilmente reparable si reconfigura / reinstala el paquete relevante (en su caso mediatomb, puede ser cualquier otra cosa, por suerte Debian (el sistema operativo basado en Ubuntu) usa el mismo nombre de usuario que el nombre del proyecto, normalmente) y (re) creará el usuario en el archivo passwd.

sudo apt-get --reinstall install package

o

sudo dpkg-reconfigure package
Braiam
fuente
1

Cuando instalé DelugeD, creó un usuario llamado debian-deluged. Más tarde, cambié la configuración de Deluge para usar otra ID de usuario y eliminé el usuario creado automáticamente. Esto provocó el statoverrideerror al instalar el velocímetro del paquete.

Lancé sudo nano /var/lib/dpkg/statoverridey reemplacé manualmente el usuario creado automáticamente con el ID de usuario asignado y se resolvió el error.

Rajib Ghosh
fuente
1

Tuve un error similar y lo solucioné primero haciendo una copia de seguridad del archivo statoverride y luego eliminando todas las líneas que contienen la palabra postdrop .

Recuerde agregar una nueva línea al final del archivo statoverride .

Sangeet
fuente