सुडो त्रुटि, मोड 0777 है, 0440 होना चाहिए


26

मुझे sudo त्रुटियाँ हो रही हैं, मैं इस त्रुटि को कैसे ठीक करूँ?

sudo: /etc/sudoers is mode 0777, should be 0440
sudo: no valid sudoers sources found, quitting 

जैसा कि पहले उल्लेख किया गया है, जब sudoers.d / README फ़ाइल में "chmod 0440 / etc / sudoers" का उपयोग किया गया है, तो गलत chmod गलत नहीं है।
kentfx

क्या आप यह सुझाव दे रहे हैं कि जब समस्या की अनुमति है /etc/sudoers.d/README, तो त्रुटि अभी भी कह सकती है sudo: /etc/sudoers is mode 0777, should be 0440?
एलिया कगन

जवाबों:


26

पहला विकल्प

के बाद इस पोस्ट :

  1. रिबूट पीसी
  2. जब GRUB बूट चयन स्क्रीन दिखाता है, तो रिकवरी मोड चुनें। (यदि यह ऊपर नहीं आता है, तो Shiftकुंजी दबाए रखें जब आप नीचे GRUB लोडर देखें)।
  3. एक काला टर्मिनल सामने आना चाहिए, इस बिंदु पर आप इस कमांड को चला सकते हैं (आपके पास रूट विशेषाधिकार होने चाहिए):

    chmod 0440 /etc/sudoers
    

वैकल्पिक रूप से

आपको Ubuntu को LiveCD पर रखना होगा, LiveCD में बूट करना होगा, हार्ड ड्राइव पर अपना Ubuntu विभाजन माउंट करना होगा (Nautilus की तरह एक फ़ाइल ब्राउज़र खोलें, और अपने Ubuntu विभाजन पर क्लिक करें; या स्थानों पर क्लिक करें -> "xxGB विभाजन या आपका Ubuntu विभाजन") ")।

फिर, LiveCD सत्र के भीतर एक टर्मिनल खोलें और इन दो कमांड्स को टाइप करें:

cd /media/<name of permanent ubuntu partition>/etc
sudo chmod 0440 sudoers

अतिरिक्त समस्याएं

यदि कोई त्रुटि है (जैसा कि नीचे पोस्ट किया गया है), त्रुटि संकेत का पालन करें और उपरोक्त दो चरणों में से एक का उपयोग करके तदनुसार प्रत्येक फ़ाइल को समायोजित करें:

sudo apt-get update sudo: /etc/sudoers.d/README मोड 0777 है, 0440 sudo होना चाहिए: / var / lib / sudo Writable by non-owner (040777), को मोड 0700 [sudo] के लिए पासवर्ड चाहिए

निम्नलिखित के माध्यम से ठीक करें:

chmod 0440 /etc/sudoers.d/README
chmod 0700 /var/lib/sudo

इन दोनों आदेशों को ऊपर उल्लिखित चरणों के साथ उचित रूप से उपयोग किया जाना चाहिए। वे उस फ़ाइल से जुड़ी फ़ाइल अनुमतियों को बदल देंगे। 0440 मालिक (रूट) को देगा और ग्रुप रीड परमिशन देगा और 0700 ओनर (रूट) को रीडिंग, राइट और परमिशन देगा।


मैं sudo कमांड का उपयोग कर सकता हूं लेकिन सीमित। sudo apt-get update sudo: /etc/sudoers.d/README is mode 0777, should be 0440 sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700 [sudo] password for
user20698

@ एलेक्स: ESC GRUB विरासत के लिए सही है? GRUB2 के लिए शिफ्ट को दबाया जाना चाहिए।
लेकेनस्टीन

@ user20698: आपको sudoपहले की आवश्यकता नहीं है , दूसरी को लाइव सीडी से किया जाना चाहिए।
लेकेनस्टीन

अगर sudoers 0777 है तो क्या उपयोगकर्ता chmod 0440 /etc/sudoerssudo के बिना नहीं चल सकता है क्योंकि sudoers हर किसी के लिए योग्य है?
सेप्पो एरविला

2
@Seppo: नहीं, केवल फ़ाइल का स्वामी ही फ़ाइल अनुमतियां बदल सकता है।
लेकेनस्टाइन

16

sudoइस स्थिति में टूट गया है, लेकिन pkexec( पॉलिसीकीट के लिए कमांड-लाइन फ्रंटेंड ) अभी भी काम करता है, इसलिए आप इसे एकल कमांड के साथ ठीक कर सकते हैं। कोई रीबूटिंग आवश्यक नहीं है।

pkexec chmod 0440 /etc/sudoers

यह माना जाता है कि PolicyKit स्थापित है। यदि यह एक डेस्कटॉप सिस्टम है (बजाय GUI वाला सर्वर नहीं है), तो यह है।


4

पुनर्प्राप्ति मोड में बूट करें, मूल शेल चुनें, और:

chmod 0440 /etc/sudoers

या यदि आप पुनः आरंभ नहीं करना चाहते हैं तो आप इस विकल्प का उपयोग कर सकते हैं:

pkexec chmod 0440 /etc/sudoers
pkexec chmod 0440 /etc/sudoers.d/README

यह अनुमति बदल देगा। कोशिश करो यह काम करेगा।


1
आप chmodकुछ फ़ाइलों को 440और दूसरों को क्यों भेज रहे हैं 0440? क्या आपको 0440समान रूप से उपयोग नहीं करना चाहिए ? और /etc/sudoers.d/READMEजब आप pkexecरास्ते का उपयोग करते हैं तो आप अनुमति क्यों बदल रहे हैं , लेकिन अन्यथा नहीं? और क्या अन्य संभव फ़ाइलों के बारे में /etc/sudoers.d?
एलिया कगन

1

इन त्रुटियों को प्राप्त करने के लिए आपने क्या किया?

  • यदि आपने किया था: आपको इसे sudo chmod -R 777 /etcसुधारने के लिए एक लाइव सीडी की आवश्यकता है।

    1. एक लाइव सीडी में बूट करें और "इसे आज़माएं" चुनें
    2. अपने उबंटू विभाजन को माउंट करें (या /etcयदि आपने /etcएक अलग विभाजन पर रखा है तो विभाजन)। यह Nautilus या स्थान मेनू जैसे फ़ाइल ब्राउज़र का उपयोग करके किया जा सकता है
    3. एप्लिकेशन => एक्सेसरीज़ => टर्मिनल पर जाकर एक टर्मिनल खोलें
    4. आप उबंटू विभाजन के फ़ोल्डर को निर्धारित करें, आप उपयोग करके घुड़सवार विभाजन की सामग्री को सूचीबद्ध कर सकते हैं ls -l /media। संभवतः इसका नाम ubuntuया है disk। अगले चरणों में, मैं मान लूंगा ubuntu
    5. टर्मिनल में, डिफ़ॉल्ट रूप से प्रतिबंधात्मक अनुमतियाँ सेट करें:

      sudo find /media/ubuntu/etc -type f -exec chmod g-wx,o-rwx {} \;
      sudo find /media/ubuntu/etc -type d -exec chmod g-w,o-rwx {} \;
      
    6. अगला, फ़ाइल अनुमतियों को पुनर्स्थापित करने के लिए संदर्भ बिंदु के रूप में लाइव सीडी का उपयोग करें। नीचे दी गई कमांड लाइव सीडी पर फ़ोल्डर को संदर्भ बिंदु के रूप में /etc/media/ubuntuउपयोग करने के लिए फ़ाइल अनुमतियों को बदल देगी /etc। यह केवल फाइलों ( -type f) और निर्देशिकाओं ( -type d) पर एक ही फाइल सिस्टम ( -xdev) पर अनुमतियों को बदल देगा । त्रुटियों के लिए कोई त्रुटि लिखी जाती है ~/errors.logजैसे "फ़ाइल नहीं मिली" इंगित करता है कि सिस्टम पर एक फ़ाइल स्थापित है, लेकिन लाइव सीडी पर नहीं मिली है। चरण 5 से कमांड को इसके लिए सही अनुमतियाँ सेट करनी चाहिए, लेकिन सर्वोत्तम परिणामों के लिए, आप बेहतर तरीके से संकुल को पुनः स्थापित करेंगे।

      cd /media/ubuntu && sudo find etc -xdev \( -type f -o -type d \) -f -exec chmod --reference=/{} {} \; 2>~/errors.log
      
    7. अब ~/errors.logकहीं सुरक्षित है (जैसे http://paste.ubuntu.com/ ) तो आप इसे इस उत्तर में टिप्पणी के रूप में जोड़ सकते हैं, आपको अनुप्रयोगों के साथ कोई समस्या होनी चाहिए।

1

उबंटू में आप पहले Ctrl+ Alt+ हड़ताल कर सकते हैं Tजो टर्मिनल खोलता है। उसके बाद आप कर सकते हैं के साथ नीचे आदेश कॉपी-पेस्ट Ctrl+ Cऔर साथ टर्मिनल में पेस्ट Ctrl+ Shift+ V

pkexec chmod 0440 /etc/sudoers

0

मेरे लिए, मैं एक और कदम जोड़ने के लिए किया था pkexecसुझाव, प्रति इस , मैं भाग्यशाली था कि मैं जा रहा 2 ssh सत्र जब मैं बेवकूफ गलती की है करने के लिए हुआ:

  1. 2 टर्मिनल खोलें
  2. टर्मिनल 2 में, echo $$पीआईडी ​​पाने के लिए दौड़ें
  3. pkttyagent --process PID_FROM_STEP2टर्मिनल 2 में चलाएं
  4. टर्मिनल 1 में, भागो pkexec chmod 0440 /etc/sudoers
  5. मेरे मामले में, मुझे भी भागना पड़ा pkexec chown root:root /etc/sudoers
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.