उबंटू पर वापस सूडो कैसे प्राप्त करें?


12

मैंने यह कर दिया:

sudo chown -R myname /usr/

और अब मैं sudoइस त्रुटि के कारण कमांड का उपयोग नहीं कर सकता :

sudo: सेतु जड़ होना चाहिए

और जैसा कि मैंने पढ़ा है इसका मतलब है कि इस फ़ाइल /usr/bin/sudoका स्वामी रूट नहीं है। यह /usrफ़ोल्डर पर चाउने के कारण अब मेरा उपयोगकर्ता है ।

कई मंचों और ब्लॉगों पर लोग इसे जड़ के रूप में करने का सुझाव देते हैं:

# chown root:root /usr/bin/sudo
# chmod 4111 /usr/bin/sudo

... लेकिन इसके साथ समस्या यह है कि मुझे एक रूट के रूप में लॉग इन करने की आवश्यकता है, लेकिन मैं नहीं कर सकता क्योंकि अगर मैं suटर्मिनल में लिखता हूं तो पासवर्ड गलत है (वास्तव में मैं उस पासवर्ड का उपयोग करता हूं जो मैंने अपने उपयोगकर्ता में जोड़ा था):

$ su
Password:
su: Authentication failure

तो क्या मुझे sudoआज्ञा वापस मिल सकती है ?

संपादित करें: मेरा उबंटू मेरे मैक ओएस एक्स पर Paralells के तहत है।


"मेरे द्वारा अपने उपयोगकर्ता के साथ जोड़े गए पासवर्ड का उपयोग करने" से आपका क्या अभिप्राय है? जब आप उपयोग करते हैं su, तो आपको रूट के पासवर्ड के लिए संकेत दिया जाएगा , न कि आपके उपयोगकर्ता के पासवर्ड की तरह sudo। क्या आप इस मशीन का रूट पासवर्ड जानते हैं?
कालेब

नहीं, मुझे इसे जोड़ने या संशोधित करने की आवश्यकता नहीं है, क्या इसके लिए कोई डिफ़ॉल्ट है?
एडम

आपको सिंगल यूजर मोड में रीबूट करना होगा। क्या वितरण चल रहा है?
गिल्स एसओ- बुराई को रोकना '

1
बस जिज्ञासु, लेकिन क्या आप एक को चलाने का फैसला किया sudo chmod -R cirk:cirk /usrजो आप पूरा करने की कोशिश कर रहे थे?
लोसेकैनोन

1
एक प्रोग्राम जो कहीं पर / usr / में स्थापित किया गया था, क्योंकि मुझे उस प्रोग्राम का सही स्थान ज्ञात नहीं था, जिसे मैंने पूरे usr फ़ोल्डर पर chown का उपयोग करने का निर्णय लिया था, और क्योंकि मैं एक noob हूं, मैंने फिर से सब कुछ खराब कर दिया है: P
एडम

जवाबों:


5

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

सबसे तेज़ तरीका आपके ओएस को फिर से स्थापित करना या बैकअप से पुनर्स्थापित करना हो सकता है।

उबंटू या समान में, तब डिफ़ॉल्ट रूप से कोई रूट पासवर्ड नहीं है (खाता अक्षम है), यही कारण है कि आप नहीं कर सकते su


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

@ कैलेब जब आप पूरी तरह से फाइलसिस्टम के एक बड़े भाग पर अनुमतियों को कचरा कर देते हैं। उसने सिर्फ सुडो को नहीं छेड़ा, संभवतः वह अपने पद का उल्लेख करना भूल गया था कि वह -R का उपयोग करता था (अन्यथा यह केवल / usr निर्देशिका के स्वामी को ही बदल सकता था और sudo को नहीं)। मैंने यह भी वर्णन किया कि प्रक्रिया को कैसे उल्टा करना है, लेकिन यह बहुत समय लेने वाला और श्रमसाध्य कार्य है।
Psusi

1
यह मामला chownनहीं है chmod। चूंकि /usrफ़ोल्डर में सब कुछ होना चाहिए root:root, यह एक आसान फिक्स होना चाहिए, न कि श्रमसाध्य फिक्स जो एक chmodक्लोबर का मतलब होगा।
कालेब

2
@ कालेब / usr में सब कुछ रूट नहीं होना चाहिए: रूट।
Psusi

6
@ कालेब chownसेटिस्स बिट्स को रीसेट करता है। कुछ फाइलें /usrहैं जो जड़ के स्वामित्व में नहीं हैं; अधिक जो एक अलग समूह (विशेष रूप से सेटगिड प्रोग्राम /usr/bin) में हैं।
गिल्स एसओ- बुराई को रोकना '

11

चूँकि आपने अनुमतियाँ केवल उसी चीज़ पर लागू की हैं जो आपको रूट स्तर तक पहुँच प्रदान करती है, आपको इसे ठीक करने के लिए वर्तमान सॉफ़्टवेयर वातावरण OUTSIDE की कुछ मदद की आवश्यकता होगी।

मेरा सुझाव है कि सबसे आसान तरीका है कि अपने डिस्ट्रो के लिए एक लाइवसीडी को बूट करें, अपनी ड्राइव को माउंट करें, और chmodवहां से आपके द्वारा सूचीबद्ध का उपयोग करके फ़ाइल अनुमतियों को बदलें ।

रूट शेल प्राप्त करने के लिए आप एकल-उपयोगकर्ता मोड में बूट करने का भी प्रयास कर सकते हैं।

ध्यान रखें कि आमतौर पर /usr/निर्देशिका में सभी चीजों का स्वामित्व होना चाहिए rootताकि आप chownजो कुछ भी तोड़ते हैं उसे ठीक करने के लिए आपको पुनरावर्ती करने में सक्षम होना चाहिए । ( संपादित करें: प्रति @Gilles टिप्पणियाँ जाहिरा तौर पर सेट सेतु chownऔर सेटगिड बिट्स को तोड़ती हैं, इसलिए आपको उन सभी को पुनर्स्थापित करने के लिए एक मौजूदा सिस्टम से मैन्युअल रूप से तुलना करने की आवश्यकता होगी , जब आप फिर से स्वामित्व को ठीक कर लेंगे।)

हालांकि, बहुत FEW होना चाहिए 4111। यह अतिरिक्त एक विशेष अनुमति है, लेकिन यह उपयोगकर्ता के रूप में चलने पर भी इसे रूट के रूप में निष्पादित करता है! केवल sudoऔर कुछ चुनिंदा आदेशों में यह अनुमति बिट सेट होनी चाहिए। यदि आपने अपने chmodसाथ शुरू करने के लिए दौड़ नहीं लगाई है, तो आपको इसे ठीक करने की आवश्यकता नहीं है , सभी अनुमतियाँ पहले से ही सही होनी चाहिए। chmodसभी अनुमतियों के बारे में जानने के बिना एक बड़ा ऑपरेशन न करें ।


क्या यह संभव है यदि ओएस एक वर्चुअल मशीन में है?
एडम

हां इससे कोई फर्क नहीं पड़ता। आप रनलेवल 1 का उपयोग कर सकते हैं (कुछ ऐसा जिसे आप बूट प्रक्रिया के आरंभ में grub / lilo या wahtever से अपना बूटलोडर कर सकते हैं) या आप VMCD को बूट डिवाइस के रूप में LiveCD की ISO छवि का उपयोग करने के लिए सेटअप कर सकते हैं।
कालेब

आह, इससे पहले कि मैं इसे फिर से स्थापित करूँ, मैं आपकी सलाह की कोशिश करूँगा :)
एडम

ठीक है मुझे लगता है कि मैं लाइवसीडी में हूं, अब मुझे टर्मिनल में यह लिखना होगा? sudo chown -R root /usr/?
एडम

हां, इसके साथ शुरू करें, लेकिन /usrLivdCD पर नहीं , आपको इसे कहीं माउंट करने और उस रास्ते के खिलाफ चलने की आवश्यकता है, कहते हैं /mnt/mydrive/usr। फिर आपको सेट्यूड बिट को ठीक करने की आवश्यकता होगी /mnt/mydrive/usr/bin/sudo। फिर लाइव एलसीडी पर / usr के माध्यम से देखें और देखें कि क्या रूट के अलावा कोई अन्य स्वामित्व है। find /usr -not -uid 0और मिलान करने के लिए उन लोगों को बदलें। फिर उन चीजों की तलाश करें जिनके पास अलग-अलग सेट्यूड या सेटगिड बिट्स सेट हैं और यह सुनिश्चित करें कि उन मैच भी। यदि आपके पास एक वास्तविक उबुन्टु प्रणाली है जिसकी तुलना करना सबसे अच्छा होगा।
कालेब

4

उबंटू रिकवरी मोड में, निम्न कमांड दर्ज करें..इसने मेरे लिए isssue तय किया है।

mount -o remount,rw /
mount --all
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
restart

आशा है कि यह आपकी समस्या को ठीक करेगा। (या किसी और की)

मुझे यह यहाँ इस ब्लॉग पोस्ट में मिला


2

यह अन्य उत्तरों द्वारा सुझाए गए की तुलना में बहुत आसान है। लाइव सीडी को प्रारूपित करने, रिबूट या उपयोग करने की कोई आवश्यकता नहीं है।

su root # then enter your password to switch to root user
chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
exit # to get back to the original user

यह इस समस्या को ठीक करने का सबसे आसान तरीका है। स्पष्टीकरण, sudo दूषित है (मुझे पता है कि दूषित गलत शब्द है, लेकिन यह काम नहीं कर रहा है, इसलिए, हमें sudo का उपयोग करने से बचने की आवश्यकता है)

  • कमांड 1 (su रूट) का उपयोग करके , हम उपयोगकर्ता को sudo का उपयोग किए बिना रूट में बदलते हैं।
  • कमांड 2 (chown root: root / usr / bin / sudo && chmod 4755 / usr / bin / sudo) का उपयोग करके , हम sudo की अनुमति / स्वामित्व को ठीक करते हैं।
  • कमांड 3 (निकास) का उपयोग करके , हम मूल उपयोगकर्ता को वापस प्राप्त करते हैं।

मैंने लिनक्स मिंट पर इस विधि का परीक्षण किया है। जो सिस्टम की तरह एक ubuntu है। आपको बता दें कि यह विधि किसी अन्य OS पर काम नहीं करती है। तदनुसार उत्तर को अपडेट करेगा।

धन्यवाद


जैसा कि मैं समझता हूं, डिफ़ॉल्ट रूप से रूट खाते में पासवर्ड नहीं होता है, इसलिए पहले चरण पर पासवर्ड प्रदान करना असंभव है su root, और क्योंकि sudoयह काम नहीं करता है, रूट पासवर्ड सेट करना असंभव है
टाइटनफाइटर

1
धन्यवाद इससे मुझे मदद मिली।
अरुण

1

यह लोगों द्वारा बनाये जाने की तुलना में सरल है। निम्नलिखित का प्रयास करें:

  1. टूटी हुई suकमांड का उपयोग करके रूट के रूप में लॉग इन करने की कोशिश करने के बजाय , अपने वर्तमान उपयोगकर्ता के रूप में लॉग आउट करें और अपने सामान्य प्रदर्शन प्रबंधक (यानी लॉगिन स्क्रीन) के माध्यम से फिर से रूट के रूप में लॉग इन करें।
  2. टर्मिनल पर निम्नलिखित निष्पादित करें: chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo

यह sudoकमांड को ठीक करना चाहिए और कुछ ही समय में आपको ऊपर और फिर से चलना होगा।


0

सु या सुडो के बिना, रूट के रूप में लॉगिन करने के लिए, आप pkexec का उपयोग कर सकते हैं:

pkexec su

अब फ़ाइलों की अनुमतियां बदलें:

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