Utente sconosciuto nel file statoverride


22

Avevo installato un'applicazione sul mio htpc con Ubuntu Server chiamato mediatomb, qualche mese fa l'ho disinstallata e sostituita con un'installazione Plex. Nel fine settimana, quando ho interrogato gli utenti esistenti sulla macchina, ho notato che l'utente e il gruppo mediatomb esistevano ancora, quindi ho usato il comando

sudo deluser mediatomb

per rimuovere l'utente. Circa un giorno dopo sono andato a installare htop sudo apt-get install htopma ho scoperto che stavo ricevendo un errore:

errore di sintassi: utente sconosciuto 'mediatomb' nel file statoverride.

Pensavo che sarei stato in grado di aprire il file statoverride usando nano e modificare qualsiasi riferimento a mediatomb, ma non ero in grado di aprire correttamente il file utilizzando nano. Ho eseguito un comando grep

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

che ha restituito due posizioni nel file che non esistono più sul sistema. L'unico modo in cui sono in grado di aggirare il problema per ora è ricreare l'utente mediatomb e quindi tutto funziona correttamente. Ovviamente questa non è una buona soluzione a lungo termine.

Quello che vorrei sapere è, qual è il file statoverride e perché conserva gli utenti che sono stati rimossi dal sistema? Sto rimuovendo gli utenti nel modo sbagliato o deprecato?

Risposte:


47

So che questa domanda è un po 'vecchia, ma l'ho trovata due volte ora. Una volta con puppet, una volta con virtualbox. Ritornò di nuovo e trovai qualcosa che funzionava. È una variazione su serverfault.com .

Invece di fare affidamento su dpkg-statoverride --remove /path/to/offending/file.extquale, genera l'errore

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

Puoi divertirti con sed, oppure puoi semplicemente aprire il /var/lib/dpkg/statoverridetuo editor di testo preferito e rimuovere solo le righe contenenti gli elementi che hanno causato l'errore. Ho scoperto che si tratta di un bug documentato, sia per Debian, sia per Ubuntu,

Detto questo, ho appena risolto il mio modificando manualmente qualsiasi voce che generasse un errore e sto scaricando di nuovo felicemente i pacchetti. Spero che questo aiuti la persona successiva, che visita questo risultato di ricerca Google numero 1 per questo problema.


Grazie mille! Stavo appena iniziando a preoccuparmi che passerò tutta l'eternità a scoprire angoli oscuri del mondo di Linux per risolvere questo semplice errore che avevo fatto alcuni giorni fa. non so come sono riuscito a farlo, ma rimuovendo quella riga da quel file è stato risolto il problema. grazie mille per avermi risparmiato un sacco di tempo!
Peter Perháč,

Sei fantastico! Risolto il mio problema
Elad Weiss,

16

Anche se non posso rispondere alla tua domanda come ho chiesto, posso aiutarti con il tuo dilemma. Ho riscontrato lo stesso identico problema riscontrato dopo aver utilizzato "Account utente" per rimuovere l'utente "backuppc", un utente configurato manualmente per i backup. Beh, ho eliminato quel percorso ma non ho provato a rimuovere l'utente fino a un paio di settimane dopo (IE - oggi). Non avevo riscontrato alcun problema fino a quando Update Manager non ha trovato e provato ad applicare gli aggiornamenti; il processo non riuscirebbe a leggere

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:

Dopo alcune ricerche ho trovato una soluzione.

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

Risolto eseguendo: 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

Spiacenti, non sono in grado di rispondere alla tua domanda, ma questo è stato il secondo risultato in Google, quindi ho voluto mettere una soluzione qui per le persone. La mia risposta è nata da http://rickfoosusa.blogspot.com/2012/04/howto-ubuntu-unknown-user-in.html .


3
Questo è l'approccio peggiore al problema. Dovresti invece reinstallare / riconfigurare il pacchetto invece di andare in giro eliminando cose che non dovrebbero essere cancellate.
Braiam,

4

Stavo ottenendo il seguente errore:

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)

Sotto il comando ho risolto il mio problema di installazione di apt-get

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

È possibile modificare la parola crontab ma mantenere '/ d' fino a quando non è possibile installare correttamente apt-get senza errori di sintassi.

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

2

È perché potresti aver eliminato l'utente e ora le query dpkg /etc/passwdda confrontare con il file statoverride, controlla che tutte le voci del file statoverride siano nel passwd e, in caso contrario, emettono un avviso, che è ciò che sta accadendo.

Ciò è facilmente risolvibile se si riconfigura / reinstalla il pacchetto pertinente (nel tuo caso mediatomb, potrebbe essere qualcos'altro, per fortuna Debian (il sistema operativo Ubuntu si basa) usa normalmente lo stesso nome utente del nome del progetto) e (ri) creerà l'utente nel file passwd.

sudo apt-get --reinstall install package

o

sudo dpkg-reconfigure package

1

Quando ho installato DelugeD, ha creato un utente chiamato debian-deluged. Successivamente, ho modificato la configurazione di Diluvio per utilizzare un altro ID utente e ho rimosso l'utente creato automaticamente. Ciò ha provocato l' statoverrideerrore durante l'installazione del tachimetro del pacchetto.

Ho avviato sudo nano /var/lib/dpkg/statoverridee sostituito manualmente l'utente creato automaticamente con l'ID utente assegnato e l'errore è stato risolto.


1

Ho riscontrato un errore simile e l'ho risolto eseguendo prima il backup del file statoverride e quindi rimuovendo tutte le righe contenenti la parola postdrop .

Ricorda di aggiungere una nuova riga alla fine del file statoverride .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.