यदि रूट एक्सेस डिसेबल है तो मैं एक अमान्य / आदि / sudoers फ़ाइल को कैसे ठीक करूं?


0

यह मेरी रास्पबेरी पाई से संबंधित है, जिस पर मैंने रास्पबम स्थापित किया है। मुझे लगता है कि एक रास्पबेरी पाई StackExchange साइट है, लेकिन मुझे लगा कि मुझे इस समस्या पर अधिक आँखें मिल सकती हैं।

मुद्दा यह है कि मैंने संशोधित किया है /etc/sudoers अनुदान देने के प्रयास में NOPASSWD उपयोगकर्ताओं में से एक के लिए अनुमतियाँ, लेकिन मुझे लगता है कि जिस तरह से मैंने फ़ाइल को बोर किया है और अब मुझे लगता है कि जब भी मैं लॉगिन / उपयोग करने का प्रयास कर रहा हूं तो मुझे निम्न त्रुटि मिल रही है। sudo:

sudo: parse error in /etc/sudoers near line 19
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

मुझे इसी तरह की पोस्ट मिली हैं उबंटू साथ ही साथ स्टैक ओवरफ़्लो , लेकिन समस्या यह है कि सभी उत्तरों को रूट पासवर्ड की आवश्यकता होती है, और रूट खाता Raspbmc पर डिफ़ॉल्ट रूप से अक्षम है , और मैंने स्पष्ट रूप से इसे बदलने के प्रयास से पहले सक्षम नहीं किया था /etc/sudoers

तो मेरा प्रश्न यह है: यदि मेरे पास रूट एक्सेस सक्षम नहीं है, तो मैं फ़ाइल को कैसे ठीक करूं? क्या यह भी संभव है?


2
का उपयोग करने के लिए मत भूलना visudo अगली बार संपादन के लिए।
slhck

जवाबों:


6

रूट तक पहुँच प्राप्त करने के लिए आपको अभी भी पाई को सिंगल यूजर मोड में बूट करने में सक्षम होना चाहिए।

दूसरे कंप्यूटर का उपयोग करके, संशोधित करें cmdline.txt और जोड़ single लाइन के अंत तक
फिर जब आप एसडी कार्ड से पाई बूट करते हैं, तो यह स्वचालित रूप से आपको रूट प्रॉम्प्ट में डंप कर देना चाहिए जो आपको अपडेट करने की अनुमति देता है /etc/sudoers


दुर्भाग्य से मुझे संशोधित करने में सक्षम होने के लिए रूट एक्सेस की आवश्यकता है /boot/cmdline.txt :(
3cheesewheel

2
इसलिये दूसरे कंप्यूटर का उपयोग करना
Lawrence

1
रास्पबेरी पाई की हार्ड ड्राइव सिर्फ एसडी कार्ड है, इसलिए इसे कार्ड रीडर के माध्यम से दूसरे कंप्यूटर में प्लग करना संभव है और सिंगल मोड में पाई को बूट किए बिना वहां सभी बदलाव किए जा सकते हैं।
VL-80

@Nikolay ओपी का मानना ​​है कि लिनक्स के साथ एक और कंप्यूटर स्थापित है या इसमें लाइव डिस्ट्रो का काम है।
Lawrence

(या VirtualBox के साथ विंडोज / OSX; "USB साझाकरण" सुविधा अच्छी तरह से काम करती है।) हालांकि, single रूट पासवर्ड के लिए भी पूछता है, इसलिए जब तक यह कर देता है एक बंद या समाप्त रूट खाते में लॉगिन करने की अनुमति दें, यह अभी भी अवसर पर पहुंच से इनकार कर सकता है, इसलिए संपादन /etc/sudoers लाइव सिस्टम से सीधे थोड़ा आसान और तेज होगा।
grawity

0

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

मुझे बताएं कि क्या आपके पास प्रश्न हैं और मैं इस उत्तर को संपादित करूंगा - मुझे यकीन नहीं है कि आप लाइव यूएसबी स्थापित करने में कितने सहज हो सकते हैं, लेकिन यह बहुत कठिन है।


0

दो दिनों के अनुसंधान और वेब ब्राउज़ करने के बाद मैंने आखिरकार एक समाधान ढूंढ लिया है और अपने स्वयं के रास्पबेरी पाई सिस्टम को बचाने में सक्षम हो गया (एसडी कार्ड को पुन: स्वरूपित करने और खरोंच से शुरू होने के लिए नहीं)!

ध्यान दें: यह उत्तर बहुत लंबा है। यदि आप जल्दी से वास्तविक समाधान प्राप्त करना चाहते हैं, तो मैंने एक हेडर जोड़ा है जिसे आप नीचे स्क्रॉल कर सकते हैं। मैं आपको पूरे उत्तर को पढ़ने की सलाह देता हूं, क्योंकि यह रास्पियन डिस्ट्रीब्यूशन और अन्य लिनक्स डिस्ट्रीब्यूशन के बीच अंतर के बारे में कुछ अंतर्दृष्टि ला सकता है और साथ ही स्पष्टता भी देता है कि इंटरनेट पर आपके द्वारा सुझाए गए बहुत सारे समाधान आपके पाई पर काम नहीं कर सकते हैं। ।

आम तौर पर, लिनक्स वातावरण में, रिबूट के बिना भी टूटी हुई सुडो को ठीक करने का सबसे तेज़ तरीका पॉलिसीकीट या pkexec इस तरह से:

pkexec visudo

लेकिन पाई पर यह सबसे अधिक संभावना नहीं है, यह रूट पासवर्ड के लिए पूछेगा, लेकिन कोई पासवर्ड स्वीकार नहीं किया जाता है। (मेरा मतलब है, क्या आपको रूट पासवर्ड सेट करना भी याद है? रुको, आप करते हैं? फिर तारांकन पर छोड़ें *)।

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

सुडो की मरम्मत का एक अन्य सामान्य तरीका एकल-उपयोगकर्ता मोड में बूट करना है जो आपको रूट शेल प्रॉम्प्ट पर ले जाता है। जिस तरह से आप इस शब्द को जोड़कर करते हैं single के अंत तक cmdline.txt सिस्टम के बूट विभाजन पर फ़िले। अगली बार जब आपका सिस्टम बूट होगा तो यह सिंगल-यूजर मोड में बूट होगा।

हम आसानी से अपने पाई पर इस समाधान की कोशिश कर सकते हैं, क्योंकि, सुविधाजनक रूप से, पाई की पुनर्प्राप्ति मोड या NOOBS संवाद हमें संपादित करने की अनुमति देता है cmdline.txt -file। रिकवरी मोड या एनओओबीएस डायलॉग में, "एडिट कॉन्फिगर" दबाकर -इस तरह आप एक एडिटर को खोलते हैं जो आपको दो फाइलों को एडिट करने की सुविधा देता है, जिनमें से एक है cmdline.txt। संपादक में "ओके" दबाकर आपके परिवर्तन सहेजे जाते हैं।

दुर्भाग्यवश, जब आप पाई पर एकल-उपयोगकर्ता मोड या "बचाव मोड" में बूट करते हैं, तो आपको निम्नलिखित संदेश प्राप्त होने की संभावना होगी:

Cannot open access to console, the root account is locked.
See sulogin(8) man page for more details.

Press Enter to continue.

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

* यदि आप रूट पासवर्ड स्वयं सेट करते हैं, उदाहरण के लिए कमांड के माध्यम से sudo passwd root, तो आप का उपयोग करने में सक्षम होना चाहिए pkexec -कैंड और बूट एकल-उपयोगकर्ता मोड में। ध्यान दें कि जब आप ऐसा करते हैं, तो आपको sudo का उपयोग करने की आवश्यकता होती है, इसलिए यह स्पष्ट रूप से समाधान नहीं है एक बार sudo टूट गया है, लेकिन मैं इसे इंगित करता हूं क्योंकि शायद यही कारण है कि कुछ लोगों ने अपने पाई को ठीक करने में सफलता पाई जब समाधान लागू करने का सुझाव दिया गया pkexec -कमांड या एकल-उपयोगकर्ता मोड। इन लोगों को कुछ बिंदु पर चला गया था और अपने सिस्टम के रूट खाते को अनलॉक करते हुए मैन्युअल रूप से एक रूट पासवर्ड सेट किया था।

समाधान

यह ब्लॉग पोस्ट यह बताता है कि हमें क्या करना है। चरण एकल-उपयोगकर्ता मोड के माध्यम से sudo को सुधारने की कोशिश करते समय उठाए गए कदमों के समान हैं। आपको संपादित करने के लिए ब्लॉग पोस्ट के सभी बोझिल सामानों को करने की जरूरत नहीं है cmdline.txt -फिल, इसके बजाय सिर्फ नॉब डायल में करें। कुंजी जोड़ने के लिए है init=/bin/sh के अंत तक cmdline.txt -file। उस स्निपेट के साथ, अगली बार जब आप अपने पाई को बूट करेंगे, तो आपको रूट शेल प्रॉम्प्ट में छोड़ दिया जाएगा।

प्रारंभ में, फ़ाइल सिस्टम को रीड-ओनली मोड में लोड किया जाएगा, इसलिए कुछ भी संपादित करने में सक्षम होने से पहले, आपको निम्नलिखित कमांड निष्पादित करके मोड को पढ़ने और लिखने के मोड में बदलना होगा:

mount -o remount,rw /dev/mmcblk0p2 /

अब आपको रूट शेल प्रॉम्प्ट में होना चाहिए, जहां आप टूटी हुई सूडो फाइलों सहित किसी भी फाइल को स्वतंत्र रूप से संपादित कर सकते हैं।

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