Statoverride dosyasında bilinmeyen kullanıcı


22

Benim htpc yüklü medyatomb adlı ubuntu sunucusunda yüklü bir uygulama vardı, birkaç ay önce kaldırdım ve Plex kurulum ile değiştirdim. Makinede mevcut kullanıcıları sorgularken hafta sonlarında mediatomb kullanıcısı ve grubunun hala var olduğunu fark ettim, bu yüzden komutu kullandım

sudo deluser mediatomb

kullanıcıyı kaldırmak için. Bir gün kadar sonra htop'u kurmaya gittim sudo apt-get install htopama bir hata alıyorum:

sözdizimi hatası: statoverride dosyasında bilinmeyen kullanıcı 'mediatomb'.

Ben sadece nano kullanarak statoverride dosyasını açmak ve mediatomb herhangi bir referans düzenlemek mümkün olacağını düşündüm ama nano kullanarak dosyayı doğru açamadım. Bir grep komutu çalıştırdım

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

dosyada artık sistemde olmayan iki konum döndürdü. Şimdilik sorunu çözebilmemin tek yolu, kullanıcı mediatomb'sini yeniden oluşturmak ve her şey yolunda gidiyor. Açıkçası bu uzun vadeli iyi bir çözüm değil.

Bilmek istediğim, statoverride dosyası nedir ve neden sistemden kaldırılan kullanıcıları tutuyor? Kullanıcıları yanlış veya kullanımdan kaldırılıyor mu?

Yanıtlar:


47

Bu sorunun biraz eski olduğunu biliyorum, ama şimdi iki kez karşılaştım. Bir kez puppet, bir kez virtualbox. Tekrar kırpıldı ve işe yarayan bir şey buldum. Serverfault.com'da bir varyasyon .

dpkg-statoverride --remove /path/to/offending/file.extHangisine güvenmek yerine hatayı atar

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

Süslenebilir sedveya /var/lib/dpkg/statoverrideen sevdiğiniz metin düzenleyicide açabilir ve yalnızca hataya neden olan öğeleri içeren satırları kaldırabilirsiniz . Bunun Debian ve Ubuntu için belgelenmiş bir hata olduğunu gördüm,

Dedi ki, sadece bir hata attı herhangi bir giriş elle düzenleyerek benimkini düzeltti ve ben mutlu paketleri tekrar indiriyorum. Umarım bu sorun için bu 1 numaralı Google arama sonucunu ziyaret eden bir sonraki kişiye yardımcı olur.


Çok teşekkür ederim! Ben sadece birkaç gün önce yaptığım bu basit cockup çözmek için sonsuza kadar linux dünyasının karanlık köşelerini keşfetmek tüm sonsuzluk harcama olacağından endişelenmeye başlamıştı. bunu nasıl başardı bilmiyorum, ama bu dosyadan bir satır kaldırmak sorunu çözdü. Bana çok zaman kazandığınız için çok teşekkürler!
Peter Perháč

Müthişsin! Sorunum düzeltildi.
Elad Weiss

16

Sorunuza istendiği gibi cevap veremesem de ikileminizde size yardımcı olabilirim. Yedekleme için manuel olarak yapılandırdığım bir kullanıcı olan 'backuppc'i kaldırmak için' Kullanıcı Hesapları'nı kullandıktan sonra yaşadığınız sorunu yaşıyorum. Peki bu yolu hurdaya attım ama birkaç hafta sonraya kadar kullanıcıyı kaldırmaya çalışmadı (IE - bugün). Güncelleme Yöneticisi güncellemeleri bulup uygulamaya çalışana kadar hiç sorun yaşamadım; süreç okumada başarısız olur

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:

Biraz araştırma yaptıktan sonra bir çözüm buldum.

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

Koşarak düzeltildi: 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

Üzgünüm, sorunuza cevap veremiyorum, ancak bu google'daki ikinci sonuç oldu, bu yüzden insanlar için bir çözüm koymak istedim. Cevabım http://rickfoosusa.blogspot.com/2012/04/howto-ubuntu-unknown-user-in.html kaynaklıdır .


3
Bu, soruna en kötü yaklaşımdır. Bunun yerine, silinmesi amaçlanmayan şeyleri silmek yerine paketi yeniden yüklemeniz / yeniden yapılandırmanız gerekir.
Braiam

4

Aşağıdaki hatayı alıyordum:

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)

Aşağıdaki komut apt-get kurulum sorunumu çözdü

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

Crontab sözcüğünü değiştirebilir, ancak herhangi bir sözdizimi hatası olmadan herhangi bir apt-get'i başarıyla yükleyene kadar '/ d' yi saklayabilirsiniz.

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

2

/etc/passwdStatoverride dosyası ile karşılaştırmak için kullanıcı ve şimdi dpkg sorguları silmiş olabilirsiniz, bu statoverride dosyasındaki tüm girişlerin passwd içinde olup olmadığını kontrol eder ve eğer değilse, olan bir uyarı verir.

İlgili paketi yeniden yapılandırırsanız / yeniden yüklerseniz (bu durumda mediatomb, başka bir şey olabilir, neyse ki Debian (OS Ubuntu tabanlı) normalde projenin adıyla aynı kullanıcı adını kullanır) ve passwd dosyasında kullanıcıyı (yeniden) oluşturur.

sudo apt-get --reinstall install package

veya

sudo dpkg-reconfigure package

1

DelugeD'yi kurduğumda, debian-deluged adlı bir kullanıcı yarattı. Daha sonra, Deluge yapılandırmasını başka bir kullanıcı kimliği kullanacak şekilde değiştirdim ve otomatik oluşturulan kullanıcıyı kaldırdım. Bu statoverride, paket hız göstergesini kurarken hatayla sonuçlandı .

Ben başlattı sudo nano /var/lib/dpkg/statoverrideve elle atanan kullanıcı kimliği ile otomatik olarak oluşturulan kullanıcı yerini ve hata giderildi.


1

Benzer bir hatayla karşılaştım ve önce statoverride dosyasını yedekledikten sonra kelime postdropunu içeren tüm satırları kaldırarak düzelttim .

Statoverride dosyasının sonuna yeni bir satır eklemeyi unutmayın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.