क्या निकाले जाने के बाद सुडोल को फिर से लगाया जा सकता है?


61

यह चिकन-अंडे की समस्या लगती है। sudoसॉफ़्टवेयर का उपयोग करने और हटाने का सबसे आम कार्य है।

sudo apt-get purge <appname>

लेकिन sudoखुद को हटाया जा सकता है।

sudo apt-get purge sudo # Do not run this command on production computers!

यह वह जगह है जहाँ मज़ा आता है

ubuntu@ubuntu:~$ sudo
bash: /usr/bin/sudo: No such file or directory

हालाँकि यह स्पष्ट है कि उनके दाहिने दिमाग का कोई भी व्यक्ति sudo(मेरे अलावा) को शुद्ध नहीं करेगा , किसी को इस कमांड को चलाने के लिए बेवकूफ बनाया जा सकता है (सीधे नहीं, अपने हेक्स मोड में, या जो भी इसे कहा जाता है) या कोई व्यक्ति SSH को तकनीक गुरु के रूप में प्रच्छन्न कर सकता है और गड़बड़ करो

तो वहाँ sudo को पुनर्स्थापित करने का एक तरीका है?


3
अच्छा मैं भी कभी नहीं जानता था कि सूदो को भी शुद्ध किया जा सकता है! लिनक्स सिर्फ इतना लानत अनुकूलन है!
user247696

वास्तव में एक जवाब के लायक नहीं है, क्योंकि ऐसा होने पर बहुत देर हो जाएगी, लेकिन उपयोगकर्ता के लिए पासवर्ड सेट करने से आपको रोकने के लिए कुछ भी नहीं है root। फिर आप suसीधे उपयोग कर सकते हैं या रूट के रूप में लॉग इन कर सकते हैं यदि आपके पास मशीन तक भौतिक पहुंच है (एसएचएस आमतौर पर रूट के रूप में लॉग इन करने के प्रयासों को अस्वीकार करने के लिए कॉन्फ़िगर किया जाएगा)।
IMSoP

सभी उत्तर विशेषाधिकारों के साथ फाइल सिस्टम तक पहुंचने के कुछ तरीकों पर निर्भर करते हैं। (काउंटर) उदाहरण के लिए: मेरे एंड्रॉइड आसुस मेमोपड के पास sudo"सुरक्षित बूट" या समकक्ष नहीं है। एकमात्र तरीका जो मुझे पता है वह है xda-devऔर डी / ला प्रीबिल्ट फुल इंस्टॉल पैकेज पर जाना। आप भाग्यशाली हैं, इसलिए बोलने के लिए, कि आपके पास यह सीमा नहीं है।
कार्ल विट्ठॉफ्ट

@CarlWitthoft एंड्रॉइड एक लिनक्स व्युत्पन्न है, वास्तव में एक लिनक्स डिस्ट्रो होने से। इसके अलावा google ने इसमें कई बदलाव किए हैं (जो कि सबसे ज्यादा लिनक्स के प्रशंसक नफरत करते हैं)। रूटिंग , जो कि एंड्रॉइड स्मार्टफोन पर अच्छी तरह से जाना जाता है, एंड्रॉइड पर वास्तविक लिनक्स की शक्तियों को प्राप्त करने के प्रयास के अलावा कुछ भी नहीं है ।
पंजीकृत उपयोगकर्ता

4
क्या आप बस रूट के रूप में लॉगिन नहीं कर सकते?
कोनराड हॉफनर

जवाबों:


56

मैं अनुप्रयोगों का उपयोग कर स्थापित कर सकते हैं:

pkexec apt-get install <appname>

से man pkexec:

  pkexec allows an authorized user to execute PROGRAM as another user. If
  username is not specified, then the program will be executed as the
  administrative super user, root.

इसलिए, मुझे लगता है कि pkexec apt-get install sudoइसे भी काम करना चाहिए।


संपादित करें : अब मैं पुष्टि कर सकता हूं: हां , sudoका उपयोग करके स्थापित किया जा सकता है pkexec apt-get install sudo:

सुडो को फिर से स्थापित करें

( विस्तार के लिए क्लिक करें )


@RaduRadeanu यह दिलचस्प है मैं इस धन्यवाद की कोशिश करने जा रहा हूँ ......
प्रेमकुमार

@Premkumar ने एहतियात से इसका परीक्षण किया! स्क्रीन शूट से अंतिम कमांड केवल आपके मामले में होनी चाहिए sudo apt-get install gksu ubuntu-minimal:। लेकिन बेहतर है, एक ही समय में कौन से पैकेज हटाए गए थे, इसकी जांच करें sudo
रादु राईडेनू

5
@ Thebluefish पैकेज को policykit-1(12.04 तक) कहा जाता है । इसे हटाया जा सकता है, लेकिन उन पैकेजों को हटाने की कीमत पर, जो आप आमतौर पर डेस्कटॉप सिस्टम पर चाहते हैं, जैसे gnome-coreऔर ubuntu-desktop(सर्वर पर, यह किसी भी आवश्यक पैकेज की आवश्यकता नहीं है)। हालाँकि, राडू, क्या निर्धारित करता है कि आपका खाता उपयोग कर सकता है pkexec apt-get …? क्या यह कुछ ऐसा है जिसे आपने कॉन्फ़िगर किया है, या यह स्वचालित रूप से होता है, और यदि ऐसा है, तो क्या निर्धारित करता है कि कोई खाता ऐसा कर सकता है?
गाइल्स

1
@ मुझे यह याद नहीं है कि अतीत में इस अर्थ में कुछ विन्यास किए गए थे। तो, मुझे लगता है कि स्वचालित रूप से होता है। यदि आप जानते हैं कि क्या निर्धारित करता है कि कोई खाता ऐसा कर सकता है, तो कृपया साझा करें; यह मेरी विशेषज्ञता के क्षेत्र से बाहर है।
रादु राईडेनु

2
@ मुझे लगता है कि sudoसमूह के सदस्य उपयोग कर सकते हैं pkexec। (मेरा अनुभव यह है कि उपयोगकर्ताओं को इस समूह में जोड़ने से pkexecक्षमताओं में अंतर होता है और उन्हें हटाने से pkexecक्षमताओं को हटा दिया जाता है; इस तरह से, pkexecक्षमताओं को ऐसा प्रतीत होता है sudoकि डिफ़ॉल्ट डिफ़ॉल्ट में क्षमताएँ थीं sudoers, जो कि सक्षम होने के बाद से समझ में आता है sudoऔर pkexecजड़ हैं। मुख्य रूप से उबंटू में उपयोगकर्ता को प्रशासक बनाता है।) मुझे नहीं लगता कि स्थापना रद्द sudoकरना sudoसमूह को हटा देगा । लेकिन मुझे पूरी तरह से यकीन नहीं है कि सभी उचित परिस्थितियों में मेरे अनुमान सही हैं।
एलियाह कगन

29

आप हमेशा रिकवरी मोड में बूट कर सकते हैं , रूट शेल पर जा सकते हैं और इसे सुडो के बिना इंस्टॉल कर सकते हैं।


16
क्या आप यहाँ लिंक से आवश्यक और प्रासंगिक भाग जोड़ सकते हैं?
पंजीकृत उपयोगकर्ता

यदि ग्रब बूट मेन्यू में कोई रिकवरी उपलब्ध नहीं है, तो <kbd> e </ kbd> दबाएं और `सिंगल` को बूटलाइन में जोड़ें। फिर, जब बूट किया जाता है, तो रूट पासवर्ड का उपयोग करके सेट करें passwd। रिबूट सामान्य, कमांडलाइन पर suनए पासवर्ड के बाद प्रवेश करें , और apt-get install sudo( sudo-प्रिफ़िक्स के बिना )
चलाएं

1
रूट शेल पर आपको इंटरनेट कनेक्शन कैसे मिला?
अविनाश राज

22

हाँ, चिरोट विधि के sudoमाध्यम से पैकेज को फिर से स्थापित करना संभव होगा ।

  • उबंटू लाइव डिस्क से पहला बूट।

  • आप जो भी डायरेक्टरी चाहते हैं उसमें पहले से स्थापित उबंटू विभाजन को माउंट करें। मेरे मामले में, मैंने इसे माउंट किया /media/ubuntu

    sudo mkdir /media/ubuntu
    sudo mount /dev/sdaX /media/ubuntu   # /dev/sdaX - previously installed Ubuntu partition.
    
  • डिफ़ॉल्ट रूप से आप विभाजन में चिरौटे के बाद इंटरनेट कनेक्शन प्राप्त करने में सक्षम नहीं थे। काम करने के लिए नीचे दिए गए आदेश को चलाएं।

    for d in dev sys run proc; do sudo mount --bind /$d /media/ubuntu/$d ; done
    

कोड के इस अद्भुत टुकड़े के लिए @ ओली का धन्यवाद ।

  • अब उस माउंटेड डायरेक्टरी में चुरोट करें,

    $ sudo chroot /media/ubuntu
    # apt-get update
    
  • sudoरन करके पैकेज स्थापित करें ,

    # apt-get install sudo
    
  • अब बाहर के वातावरण से बाहर निकलें।

    exit
    
  • अंत में अपने Ubuntu OS को बूट करें। अब अपनी sudoकमांड का परीक्षण करें , यह निश्चित रूप से काम करेगा।


4

init=/bin/shकर्नेल कमांड लाइन पर अतिरिक्त पैरामीटर के साथ बूट करें । यह आपको सीधे एक मूल शेल में डाल देगा, जहां से आप बस चला सकते हैं apt-get install sudoऔर फिर रिबूट कर सकते हैं । आपको /etc/init.d/networking startपहले काम करने वाले नेटवर्क कनेक्शन प्राप्त करने के लिए दौड़ना पड़ सकता है । यदि आप मुझसे पूछते हैं तो रिकवरी सीडी या लाइव डिस्क के साथ खिलवाड़ करने से ज्यादा आसान है।


1

यदि आप rootइस कमांड द्वारा पहले से ही उपयोगकर्ता खाता पासवर्ड सेट या अपडेट कर रहे हैं, sudo passwd rootतो आप शुद्ध होने के बारे में चिंता न करें। sudoअपने rootखाते में लॉग इन करें और फिर इंस्टॉल करें sudo

su
apt-get install sudo

यहाँ छवि विवरण दर्ज करें

विस्तार करने के लिए यहां क्लिक करें


यह काम करता है यदि रूट खाता सक्षम है, और ubuntu पर यह आमतौर पर अक्षम है। suअपने पीसी पर "सु: ऑथेंटिकेशन फेलियर" देता है, हालाँकि मैंने सही पासवर्ड दिया है
Bћови gives

हाँ, आप सही हैं कि मैंने क्या कहा। यदि आपने रूट यूजर अकाउंट पासवर्ड पहले ही अपडेट कर लिया है तो आप sudoपर्सिंग के बारे में चिंता न करें। फिर भी यह कोशिश करें sudo passwd root, यह आपको रूट यूजर अकाउंट पासवर्ड को अपडेट करने की अनुमति देगा। अब अपने रूट खाते में पुनः लोड करें। रनिंग suकमांड द्वारा । यदि आप लॉग इन करने में सक्षम हैं तो आप sudo.Now को शुद्ध करने के लिए स्वतंत्र होंगे sudo apt-get purge sudo। अब तक अपने रूट खाते में लॉग इन करें। रनिंग द्वारा sudo पैकेज को पुन: स्थापित करने के लिएsuapt-get install sudo
अविनाश राज

-1

सुडो (और कोई भी रूट विशेषाधिकार) केवल रनिंग ओएस पर लागू होता है। यदि आपने मूर्खतापूर्ण तरीके से और सूडो (या / usr / उस मामले के लिए) को हटा दिया है और आपके पास pkexec जैसे विकल्प नहीं हैं, तो आप बस किसी और चीज़ से बूट कर सकते हैं, लापता सॉफ़्टवेयर की प्रतिलिपि बना सकते हैं और फिर से पुनः आरंभ कर सकते हैं।

भौतिक पहुँच आपके सिस्टम में किसी भी और सभी सॉफ़्टवेयर सुरक्षा को बंद कर देती है।


मैं इसका विस्तार करने की सलाह देता हूं कि यह समझाने के लिए कि "मौजूदा सॉफ़्टवेयर की प्रतिलिपि बनाएं" से आपका क्या मतलब है।
एलियाह कगन

हालांकि इसे ठीक करने का बहुत आसान तरीका नहीं है।
सेठ

@ सेठ के हस्तक्षेप के बिना मुझे गंभीरता से संदेह है कि यह एक और जवाब लिखे बिना तय किया जा सकता है।
ब्रिअम

वैसे ऐसा करने का उचित तरीका चिरोट होगा, लेकिन इतने कम बर्बर तरीके हैं। उदाहरण के लिए, रूट के रूप में लॉगिंग (NORMAL तरीका), या, यदि आपके पास कोई रूट पासवर्ड नहीं है, तो बस init = / bin / bash को कर्नेल पैरामीटर के रूप में सेट करें, और आप लॉगिन प्रमाणीकरण सहित पूरे init सिस्टम से गुजरते हैं।
ओरियन

-2

यह समस्या बहुत ही विशिष्ट प्रतीत होती है। गैर-उबंटु उपयोगकर्ता के रूप में मुझे पहले यह भी समझ में नहीं आया कि क्यों सूडो किसी भी तरह से एक विशेष मामला होगा (बहुत सारे वितरण डिफ़ॉल्ट रूप से इसे स्थापित नहीं करते हैं)।

आपको सूदो की बिल्कुल भी जरूरत नहीं है। यह सिर्फ एक आलसी शॉर्टकट है जो आपको रूट कमांड को वास्तव में रूट के रूप में लॉग इन किए बिना निष्पादित करने की अनुमति देता है। हालाँकि, यदि आपको एक ही आदेश से अधिक कुछ भी करना है, तो यह बस भयानक है जो कि सुडोल के साथ सब कुछ उपसर्ग कर रहा है। यह उल्लेख नहीं करने के लिए कि उपयोग करना sudoउपयोगकर्ताओं को इस बात से अनभिज्ञ बनाता है कि अनुमति और रूट खाता कैसे काम करता है। यह सिर्फ रूट के रूप में लॉगिन करने के लिए बहुत अधिक समझ में आता है, सिस्टम और लॉगआउट का प्रशासन करता है। suयदि आप पहले से ही एक नियमित उपयोगकर्ता के रूप में लॉग इन हैं, तो आप उसके साथ करते हैं। या आप सीधे रूट के रूप में लॉग इन कर सकते हैं।

बेशक आपको rootपासवर्ड सेट करने की ज़रूरत है , यह उचित कॉन्फ़िगरेशन है, अन्यथा आपके पास एक विंडोज़ जैसी प्रणाली है जहां ऐसी क्रियाएं होती हैं जो कोई भी प्रदर्शन नहीं कर सकता है और यदि किसी तरह sudoउपलब्ध नहीं है तो आपको वास्तव में लॉक कर दिया जाता है (इसके लिए काम करने /etc/, सेट करने $PATHऔर अन्य की आवश्यकता होती है माउंटेड चीजें - जो आपके पास नहीं हो सकती है अगर बूट में कुछ गलत हो जाता है)।


यह उपयोगी जानकारी हो सकती है, लेकिन यह सवाल का जवाब नहीं देती है।
लुइस डी सूसा

वास्तव में। यह वास्तव में है कि एक प्रणाली है जहाँ जड़ का पासवर्ड लिए प्रासंगिक नहीं है है विकलांग और sudo है डिफ़ॉल्ट रूप से स्थापित। और यदि आप अन्य उत्तरों को देखते हैं, तो आप देखेंगे कि अंतिम पैराग्राफ या तो सच नहीं है।
ओली

एक उपयोगकर्ता जो sudoubuntu से हटाने के बारे में विचार करता है, उसे रूट पासवर्ड सेट करने पर भी विचार करना चाहिए (अन्य प्रश्न यह बताया गया है कि यह कैसे करना है)। एक उपयोगकर्ता जो इस सामान की परवाह नहीं करता है, वह सुडो का उपयोग कर सकता है।
ओरियन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.