स्टेटओवर्राइड फ़ाइल में अज्ञात उपयोगकर्ता


22

मैंने अपने htpc रनिंग ubuntu सर्वर पर मेडियाटॉम्ब नामक एक एप्लिकेशन इंस्टॉल किया था, कुछ महीने पहले मैंने इसे अनइंस्टॉल कर दिया और इसे Plex इंस्टॉल के साथ बदल दिया। सप्ताहांत में जब मशीन पर मौजूदा उपयोगकर्ताओं को क्वेरी करते हुए मैंने देखा कि मेडियाटॉम्ब उपयोगकर्ता और समूह अभी भी मौजूद हैं तो मैंने कमांड का उपयोग किया

sudo deluser mediatomb

उपयोगकर्ता को निकालने के लिए। एक दिन या बाद में मैं htop स्थापित करने के लिए गया था, sudo apt-get install htopलेकिन मैंने पाया कि मुझे एक त्रुटि मिल रही थी:

सिंटैक्स त्रुटि: अज्ञात उपयोगकर्ता 'मेडियाटॉम्ब' स्टेटओवर्राइड फ़ाइल में।

मैंने सोचा कि मैं सिर्फ नैनो का उपयोग कर स्टेटओवर्राइड फ़ाइल को खोलने और मेडियाटॉम्ब के किसी भी संदर्भ को संपादित करने में सक्षम होगा, लेकिन मैं नैनो का उपयोग करके फ़ाइल को सही ढंग से खोलने में सक्षम नहीं था। मैंने एक grep कमांड चलाया

grep 'mediatomb' /var/lib/dpkg/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 खोज परिणाम पर जाता है।


आपको बहुत - बहुत धन्यवाद! मुझे बस इस बात की चिंता होने लगी थी कि मैं कुछ दिन पहले किए गए इस साधारण कॉकप को हल करने के लिए अनंत दुनिया के सभी कोनों की खोज कर रहा हूं। पता नहीं कैसे मैं ऐसा करने में कामयाब रहा, लेकिन उस फ़ाइल से उस एक लाइन को हटाने से समस्या ठीक हो गई। मुझे बहुत समय बचाने के लिए बहुत बहुत धन्यवाद!
पीटर पेर्क

आप कमाल के है! मेरा मुद्दा तय किया।
Elad Weiss

16

हालांकि मैं आपके सवाल का जवाब नहीं दे सकता क्योंकि मैं आपकी दुविधा में आपकी मदद कर सकता हूं। उपयोगकर्ता 'बैकपेक' को हटाने के लिए 'उपयोगकर्ता खातों' का उपयोग करने के बाद आपको जो समस्या हो रही है, मैंने ठीक उसी समस्या का अनुभव किया है - एक उपयोगकर्ता जिसे मैंने मैन्युअल रूप से बैकअप के लिए कॉन्फ़िगर किया था। खैर मैंने उस मार्ग को खत्म कर दिया, लेकिन कुछ हफ्ते बाद तक उपयोगकर्ता को हटाने की कोशिश नहीं की (IE - आज)। जब तक अपडेट मैनेजर नहीं मिला और अपडेट लागू करने का प्रयास करने तक मुझे कोई परेशानी नहीं हुई; प्रक्रिया पढ़ने में विफल होगी

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

रनिंग द्वारा फिक्स्ड: सुडो सेडी-आई '/ बैकपेक / डी' / var / लीबी / dpkg / स्टेटओवराइड

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 install की समस्या हल कर दी

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

आप crontab शब्द को बदल सकते हैं लेकिन '/ d' को तब तक रख सकते हैं जब तक कि आप बिना किसी सिंटैक्स त्रुटि के किसी भी apt-get को सफलतापूर्वक स्थापित नहीं कर सकते।

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

2

ऐसा इसलिए है क्योंकि आपने उपयोगकर्ता और अब dpkg प्रश्नों /etc/passwdको स्टेटओवराइड फ़ाइल के साथ तुलना करने के लिए हटा दिया है , यह जाँचता है कि स्टेटओवराइड फ़ाइल की सभी प्रविष्टियाँ पासवार्ड में हैं, और यदि वे नहीं हैं, तो चेतावनी जारी करें, जो कि हो रहा है।

यदि आप संबंधित पैकेज को फिर से कॉन्फ़िगर / पुनः इंस्टॉल करते हैं तो यह आसानी से ठीक हो जाता है (आपके मामले में mediatomb, यह कुछ और भी हो सकता है, सौभाग्य से डेबियन (ओएस उबंटू आधारित है) परियोजना के नाम के समान उपयोगकर्ता नाम का उपयोग करता है, सामान्य रूप से और यह (फिर से) पासवार्ड फ़ाइल में उपयोगकर्ता बनाएँ।

sudo apt-get --reinstall install package

या

sudo dpkg-reconfigure package

1

जब मैंने DelugeD को स्थापित किया, तो इसने debian-deluged नामक एक उपयोगकर्ता बनाया। बाद में, मैंने एक अन्य उपयोगकर्ता आईडी का उपयोग करने के लिए Deluge config को बदल दिया और मैंने स्वतः-निर्मित उपयोगकर्ता को हटा दिया। statoverrideपैकेज स्पीडोमीटर स्थापित करते समय यह त्रुटि हुई ।

मैंने sudo nano /var/lib/dpkg/statoverrideस्वतः-निर्मित उपयोगकर्ता को असाइन किए गए उपयोगकर्ता-आईडी के साथ लॉन्च और मैन्युअल रूप से प्रतिस्थापित किया और त्रुटि हल हो गई।


1

मेरे पास एक समान त्रुटि थी और पहले स्टेटओवर्राइड फ़ाइल का बैकअप लेकर और फिर पोस्टड्रॉप शब्द वाली सभी लाइनों को हटाकर इसे ठीक किया ।

स्टेटओवर्राइड फ़ाइल के अंत में एक नई लाइन जोड़ना याद रखें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.