Usuário desconhecido no arquivo statoverride

6

Eu tinha um aplicativo instalado no meu servidor htpc executando ubuntu chamado mediatomb, há alguns meses eu o desinstalei e substituí-lo por uma instalação do Plex. No fim de semana, ao consultar usuários existentes na máquina, notei que o usuário e grupo mediatomb ainda existiam, então usei o comando

sudo deluser mediatomb

para remover o usuário. Um ou dois dias depois, fui instalar o htop sudo apt-get install htop , mas descobri que estava recebendo um erro:

erro de sintaxe: usuário desconhecido 'mediatomb' no arquivo statoverride.

Eu pensei que seria capaz de abrir o arquivo statoverride usando o nano e editar quaisquer referências ao mediatomb, mas não consegui abrir o arquivo corretamente usando o nano. Eu corri um comando grep

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

que retornou dois locais no arquivo que não existem mais no sistema. A única maneira que eu sou capaz de contornar o problema por agora é recriar o mediatomb do usuário e, em seguida, tudo funciona bem. Obviamente, esta não é uma boa solução a longo prazo.

O que eu gostaria de saber é, o que é o arquivo statoverride e por que ele retém os usuários que foram removidos do sistema? Estou removendo os usuários da maneira errada ou obsoleta?

    
por Aesir 21.08.2013 / 22:49

6 respostas

21

Eu sei que esta pergunta é um pouco antiga, mas já vi isso duas vezes agora. Uma vez com puppet , uma vez com virtualbox . Apareceu de novo e encontrei algo que funcionou. É uma variação do serverfault.com .

Em vez de depender de dpkg-statoverride --remove /path/to/offending/file.ext , o que gera o erro

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

Você pode obter a fantasia com sed ou simplesmente abrir /var/lib/dpkg/statoverride em seu editor de texto favorito e remover somente as linhas que contêm o (s) item (ns) que estiveram causando o erro. Eu descobri que este é um bug documentado, tanto para o Debian quanto para o Ubuntu,

Dito isto, acabei de consertar o meu editando manualmente qualquer entrada que tenha lançado um erro, e estou feliz em baixar os pacotes novamente. Espero que isso ajude a próxima pessoa, que visita este número 1 resultado de pesquisa do Google para este problema.

    
por blanket_cat 10.09.2014 / 07:58
12

Embora eu não possa responder à sua pergunta conforme solicitado, posso ajudá-lo com seu dilema. Eu experimentei exatamente o mesmo problema que você está tendo depois de usar 'User Accounts' para remover o usuário 'backuppc' - um usuário que eu configurei manualmente para backups. Bem, eu desfeito essa rota, mas não tentei remover o usuário até algumas semanas depois (IE - hoje). Eu não estava tendo nenhum problema até que o Update Manager encontrou e tentou aplicar as atualizações; o processo falharia na leitura

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:

Após algumas pesquisas, encontrei uma solução.

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

Corrigido pela execução: 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

Desculpe, não sou capaz de responder sua pergunta, mas esse foi o segundo resultado no Google, então queria colocar uma solução aqui para as pessoas. Minha resposta teve origem no link .

    
por Hall 13.09.2013 / 00:23
3

Eu estava recebendo o seguinte erro:

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)

Abaixo, o comando resolveu meu problema com o apt-get install

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

Você pode alterar a palavra crontab mas manter o '/ d' até que você possa instalar com sucesso qualquer apt-get sem qualquer erro de sintaxe.

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

É porque você pode ter excluído o usuário e agora as consultas do dpkg /etc/passwd para comparar com o arquivo estatua, verifica que todas as entradas do arquivo statoverride estão no passwd e, se não estiverem, emite um aviso, o que está acontecendo.

Isso é facilmente corrigível se você reconfigurar / reinstalar o pacote relevante (no seu caso foi mediatomb , pode ser qualquer outra coisa, felizmente o Debian usa o mesmo nome de usuário que o nome do Debian) projeto, normalmente) e irá (re) criar o usuário no arquivo passwd.

sudo apt-get --reinstall install package

ou

sudo dpkg-reconfigure package
    
por Braiam 11.10.2014 / 02:29
0

Quando eu instalei o DelugeD, ele criou um usuário chamado debug-deluged. Mais tarde, mudei a configuração do Deluge para usar outro ID de usuário e removi o usuário criado automaticamente. Isso resultou no erro statoverride ao instalar o velocímetro da embalagem.

Eu iniciei sudo nano /var/lib/dpkg/statoverride e substituío manualmente o usuário criado automaticamente pelo ID de usuário atribuído e o erro foi resolvido.

    
por Rajib Ghosh 21.11.2015 / 15:48
0

Eu tive um erro semelhante e corrigi-lo primeiro fazendo o backup do arquivo statoverride e removendo todas as linhas que continham a palavra postdrop .

Lembre-se de adicionar uma nova linha no final do arquivo statoverride .

    
por Sangeet 26.10.2017 / 14:07

Tags