मैंने उसी गलती को अपने खाते को एक समूह में जोड़ दिया (भूल गया -a
)। मैंने अपना सिस्टम रूट लॉगिन लॉक के साथ स्थापित किया था, और मेरा खाता मशीन पर केवल एक ही था।
स्वीकृत उत्तर ने मेरी मदद नहीं की। रिकवरी मोड में बूट करते समय, मुझे जो कुछ भी मिला वह एक अनहेल्दी मैसेज था
कंसोल के लिए खुली पहुँच नहीं कर सकता, रूट खाता बंद है। अधिक विवरण के लिए sulogin (8) मैन पेज देखें
जारी रखने के लिए ENTER दबाएँ
ENTER दबाने के बाद, सिस्टम सामान्य रूप से बूट होता है: समस्या को ठीक करने के लिए रूट एक्सेस प्राप्त करना कोई भाग्य नहीं है। मैं इस मामले में किसी को मेरे जूते में समाप्त होता है यह जवाब छोड़ रहा हूँ। निम्न का उपयोग केवल तभी करें जब आप Grub मेनू के माध्यम से पुनर्प्राप्ति मोड में न जा सकें ।
रूट शेल प्राप्त करने के लिए एक पूर्वाभ्यास:
- ग्रब मेनू में बूट करें, और हाइलाइट करें ( Enterपर दबाएं नहीं !) सामान्य (डिफ़ॉल्ट, रिकवरी नहीं!) बूट विकल्प।
- प्रेस करें
e
। ग्रब एक कमांड लाइन एडिटर को कई लाइनों के साथ प्रदर्शित करेगा, जिसमें से हर एक अपरिचित दिख सकता है यदि वह डराने वाला नहीं है। चिंता न करें, आपके द्वारा किए गए कोई भी परिवर्तन स्थायी रूप से सहेजे नहीं जाते हैं।
- वह पंक्ति ज्ञात कीजिए जो पढ़ती है
linux ... ro ...
। यह कर्नेल कमांड लाइन है। रूट फाइलसिस्टम को पढ़ने / लिखने के लिए ro
टोकन के साथ बदलें rw
, और एक और कर्नेल कमांड लाइन पैरामीटर जोड़ें init=/bin/sh
। इसके sh
बजाय कर्नेल को निष्पादित करने का निर्देश देता है /sbin/init
। अंत में, रेखा को दिखना चाहिए linux ... rw init=/bin/sh ...
। नोट: आप नंगे grub>
प्रॉम्प्ट से भी प्राप्त कर सकते हैं । मुझे यह समझाने में खुशी होगी कि कैसे कदम दर कदम, अगर आपके लिए और सब विफल हो जाता है; इस उत्तर के लिए एक टिप्पणी छोड़ दें।
- परिवर्तन के बाद, F10सिस्टम को बूट करने के लिए संपादक से कमांड का उपयोग करने के लिए दबाएं (या संपादक विंडो के ठीक नीचे बूट करने का निर्देश पढ़ें, यदि आपका ग्रुब अलग तरह से संकलित किया गया है)। आप रूट शेल प्रॉम्प्ट प्राप्त करेंगे, क्योंकि इनिट प्रक्रिया रूट पहचान के साथ PID 1 के रूप में चलती है।
- उदाहरण के लिए, आप जो बदलाव करना चाहते हैं, उसे करें
usermod -a -Gadm,sudo YOURUSERID
। इस बात की पुष्टि करें id -a YOURUSERID
कि आपको अपनी sudo सदस्यता वापस मिल गई है। मामले में आपको "कमांड नहीं मिली" त्रुटि, उपयोग /sbin/usermod
और /bin/id
।
आप इस बिंदु पर सिस्टम को सफाई से बंद या रिबूट नहीं कर सकते। reboot
, halt
या poweroff
काम नहीं करेगा, और exit
शेल से कर्नेल घबराहट पैदा होगी, क्योंकि PID 1 प्रक्रिया से सिर्फ बाहर निकलने की उम्मीद नहीं है। तो अगले दो आदेश आपको जारी करने चाहिए:
sync
exec /sbin/init
sync
बस कुछ भी गलत होने पर, डिस्क में सभी परिवर्तनों को सहेजने के लिए, और exec
शेल को वास्तविक के साथ बदलने के लिए init
(जो सिस्टमड, अपस्टार्ट या सिस्टम वी इनिट हो सकता है, लेकिन इसे हमेशा कहा जाता है /sbin/init
)। सिस्टम सामान्य रूप से बूट करने की संभावना रखेगा (कोई पुनर्प्राप्ति मोड नहीं)।
- लॉगिन करें और सिस्टम को एक बार रिबूट करें, जैसे - आपको
sudo reboot
अपना सुडोल विशेषाधिकार वापस प्राप्त करना चाहिए। एक रिबूट की सिफारिश की जाती है, जैसा कि (हालांकि शायद ही कभी) init
एक सामान्य बूट के दौरान अतिरिक्त मापदंडों को पारित किया जा सकता है, और यह कि हमने ऐसा नहीं किया। exec
असफल होने की स्थिति में , बस मशीन को रीसेट करें और इसे सामान्य रूप से बूट होने दें। सभी आधुनिक जर्नलिंग फाइलसिस्टम जैसे एक्सटी 4, एक्सएफ़एस और बीट्रॉफ़ अपने आप को जल्दी से ठीक कर लेते हैं (जर्नल की जांच के लिए कुछ सेकंड, यदि sync
रीसेट से पहले एड), और आप सभी सेट हो जाएंगे।
थोड़ी पृष्ठभूमि
इस बहुत ही समस्या के बारे में डेबियन बग रिपोर्ट पर एक चर्चा हुई और, जहाँ तक समझ में आया, यह एक सुविधा का निर्णय लिया गया था और बग का नहीं, जिसे मैं समझता हूँ कि यह एक गलती थी। 25 साल से इस व्यवसाय में है, मैं मदद नहीं कर सकता, लेकिन पूरी तरह से माइकल बेबल के तर्क को संदेश में # 31 से सहमत नहीं हूं :
इस पर विचार करें: आपके पास एक लॉक रूट खाते वाला एक लैपटॉप है। डिफ़ॉल्ट रूप से ग्रब बूट लोडर बचाव मोड के लिए एक बूट प्रविष्टि बनाता है। इसलिए, भले ही आप सीडी-रोम या यूएसबी से बूटिंग की अनुमति न देने के लिए बायोस को लॉक करते हैं, और आप पासवर्ड को ग्रब से बचाते हैं, अगर आप लैपटॉप को क्षण भर के लिए छोड़ देते हैं तो कोई आसानी से रूट एक्सेस प्राप्त कर सकता है।
सही, IMO, यदि सामान्य रूप से पर्याप्त नहीं है, तो फेलिप Sateler द्वारा संदेश # 70 में आपत्ति दी गई थी :
कई (अधिकांश?) कंप्यूटरों के लिए, भौतिक पहुंच का मतलब है खेल में सुरक्षा-वार हार जाना, क्योंकि आप बस बॉक्स को अलग कर सकते हैं और हार्ड ड्राइव प्राप्त कर सकते हैं।
यह विशेष रूप से लैपटॉप के लिए सच है, माइकल के तर्क में उल्लेख किया गया है: यदि आप इसे एक पल के लिए अप्राप्य छोड़ देते हैं, और कोई आपके डेटा के बाद है, तो लैपटॉप बस फिर कभी नहीं देखा जाएगा। और किसी भी मशीन के लिए, "कई" या "सबसे" नहीं, यहां तक कि उन लोगों ने एक रैक में 8 बिंदुओं पर बोल्ट किया, जैसे ही हमलावर को मशीन तक भौतिक पहुंच मिलती है, खेल वास्तव में खत्म हो गया है।