statoverride 파일의 알 수없는 사용자


22

몇 달 전에 mediatomb라는 ubuntu 서버를 실행하는 htpc에 응용 프로그램을 설치했지만 몇 달 전에 응용 프로그램을 제거하고 Plex 설치로 교체했습니다. 주말에 컴퓨터에서 기존 사용자를 쿼리 할 때 mediatomb 사용자와 그룹이 여전히 존재한다는 것을 알았으므로 명령을 사용했습니다.

sudo deluser mediatomb

사용자를 제거합니다. 하루 정도 후에 나는 htop을 설치 sudo apt-get install htop하려고했지만 오류가 발생한다는 것을 알았습니다.

구문 오류 : statoverride 파일의 알 수없는 사용자 'mediatomb'입니다.

nano를 사용하여 statoverride 파일을 열고 mediatomb에 대한 참조를 편집 할 수 있다고 생각했지만 nano를 사용하여 파일을 올바르게 열 수 없었습니다. grep 명령을 실행했습니다

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

더 이상 시스템에 존재하지 않는 파일의 두 위치를 반환했습니다. 내가 지금 문제를 해결할 수있는 유일한 방법은 사용자 mediatomb를 다시 만든 다음 모든 것이 잘 작동하는 것입니다. 분명히 이것은 좋은 장기 해결책이 아닙니다.

내가 알고 싶은 것은 statoverride 파일이 무엇이며 왜 시스템에서 제거 된 사용자를 파일에 유지합니까? 잘못되었거나 더 이상 사용되지 않는 방식으로 사용자를 제거하고 있습니까?

답변:


47

나는이 질문이 조금 오래되었다는 것을 알고 있지만 지금이 두 번 나왔습니다. 와 한 번 puppet에 한 번 virtualbox. 다시 자라서 효과가있는 것을 발견했습니다. serverfault.com 의 변형입니다 .

에 의존하는 대신 dpkg-statoverride --remove /path/to/offending/file.ext오류를 던집니다.

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

당신이 좋아하거나 좋아하는 텍스트 편집기에서 sed열고 오류를 일으킨 항목이 포함 된 줄만 /var/lib/dpkg/statoverride제거 하면됩니다 . 나는 이것이 데비안과 우분투 모두에게 문서화 된 버그라는 것을 발견했다.

즉, 오류가 발생한 항목을 수동으로 편집하여 문제를 해결했으며 패키지를 다시 행복하게 다운로드하고 있습니다. 이것이이 문제에 대한 1 번 Google 검색 결과를 방문하는 다음 사람에게 도움이되기를 바랍니다.


정말 고맙습니다! 나는 며칠 전에 내가 만든이 간단한 콕업을 해결하기 위해 리눅스 세계의 모호한 구석을 발견하기 위해 영원을 모두 소비 할 것이라고 걱정하기 시작했다. 내가 어떻게 관리했는지 모르지만 해당 파일에서 한 줄을 제거하면 문제가 해결되었습니다. 시간을 많이 절약 해주셔서 감사합니다!
Peter Perháč

당신은 굉장합니다! 내 문제를 해결했습니다.
Elad Weiss

16

요청에 따라 귀하의 질문에 답변을 드릴 수 없지만 귀하의 딜레마에 도움을 드릴 수 있습니다. '사용자 계정'을 사용하여 'backuppc'사용자 (백업을 위해 수동으로 구성한 사용자)를 제거한 후 똑같은 문제가 발생했습니다. 글쎄, 나는 그 경로를 폐기했지만 몇 주 후에 (IE-오늘) 사용자를 제거하려고 시도하지 않았다. Update Manager가 업데이트를 찾아 적용하려고 시도 할 때까지 아무런 문제가 없었습니다. 프로세스가 읽지 못합니다

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:

일부 검색 후 해결책을 찾았습니다.

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

다음을 실행하여 수정 : 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

죄송합니다. 귀하의 질문에 답변을 드릴 수 없습니다. 그러나 이것은 Google의 두 번째 결과이므로 여기에 사람들을위한 솔루션을 제공하고 싶었습니다. 내 대답은 http://rickfoosusa.blogspot.com/2012/04/howto-ubuntu-unknown-user-in.html 에서 시작되었습니다 .


3
이것이 문제에 대한 최악의 접근법입니다. 대신 삭제되지 않은 항목을 삭제하는 대신 패키지를 다시 설치 / 재구성해야합니다.
Braiam

4

다음과 같은 오류가 발생했습니다.

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)

아래 명령은 apt-get 설치 문제를 해결했습니다.

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

crontab 단어를 변경할 수 있지만 구문 오류없이 apt-get을 성공적으로 설치할 수있을 때까지 '/ d'를 유지하십시오.

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

2

/etc/passwdstatoverride 파일과 비교하기 위해 사용자를 삭제하고 dpkg 쿼리 를 삭제했을 수 있기 때문에 statoverride 파일의 모든 항목이 암호에 있는지 확인하고 그렇지 않은 경우 경고를 발행합니다.

관련 패키지를 재구성 / 재설치하면 쉽게 고칠 수 있습니다 (귀하의 경우 mediatomb데비안 (OS Ubuntu가 기반으로하는)은 일반적으로 프로젝트 이름과 동일한 사용자 이름을 사용합니다) passwd 파일에서 사용자를 (다시) 만듭니다.

sudo apt-get --reinstall install package

또는

sudo dpkg-reconfigure package

1

DelugeD를 설치할 때 debian-deluged라는 사용자를 만들었습니다. 나중에 다른 사용자 ID를 사용하도록 Deluge 구성을 변경하고 자동 생성 된 사용자를 제거했습니다. 이로 인해 statoverride패키지 속도계를 설치할 때 오류가 발생했습니다 .

sudo nano /var/lib/dpkg/statoverride자동 생성 된 사용자를 할당 된 user-ID로 시작 하고 수동으로 교체하면 오류가 해결되었습니다.


1

비슷한 오류가 있었고 statoverride 파일을 백업 한 다음 postdrop 이라는 단어가 포함 된 모든 줄을 제거하여 수정했습니다 .

statoverride 파일 끝에 새 줄을 추가해야 합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.