क्या "sudo -s" वास्तव में क्या करता है?


26

मैं ubuntu 10.04 का उपयोग कर रहा हूं।

मैंने नोटिस किया कि टर्मिनल में " सुडो-एस " चलाने के बाद , प्रॉम्प्ट से बदल गया

" XXX @ XXX "

सेवा मेरे

" रूट @ XXX ",

लगता है कि यह रूट विशेषाधिकार में बदल गया।

लेकिन जब मैं "sudo" कमांड के दस्तावेजीकरण की जाँच यहाँ है, यह बताते हैं "sudo -s" की एक और कहानी, कर सकते हैं किसी को भी मुझे समझा है क्या " sudo -s " वास्तव में कर रही है?


6
आपको यह पूछने के लिए पूछना चाहिए onubuntu.com

7
क्यों पूछते हैंububuntu.com? sudoशायद ही उबंटू-विशिष्ट है ...
डेव शेरोहमान

के संभावित डुप्लिकेट comands "सु -s" और "sudo -s" के बीच अंतर
Linker3000

जवाबों:


9

दो वास्तव में असंगत नहीं हैं - sudoकमांड हमेशा उपयोगकर्ता को बदल देता है, या तो रूट, या आपके द्वारा -uस्विच के साथ निर्दिष्ट उपयोगकर्ता के लिए। सभी -sकरता है कि उपयोगकर्ता के रूप में एक खोल शुरू करने के लिए एक शॉर्टकट प्रदान करता है। यह वास्तव में इसके बराबर है:

sudo $SHELL

सिवाय इसके कि /bin/shअगर SHELLसेट नहीं किया जाता है तो यह निश्चित रूप से या कुछ और होगा ।


6

sudo -s$SHELLसुपरसुअर / रूट के रूप में आपके पर्यावरण चर में निर्दिष्ट शेल चलाता है । आप किसी अन्य उपयोगकर्ता का उपयोग करके निर्दिष्ट कर सकते हैं -u

$SHELLवातावरण चर उपयोगकर्ता के डिफ़ॉल्ट लॉगिन खोल करने के लिए पथ है। डिफ़ॉल्ट शेल प्रोग्राम के लिए वास्तविक सेटिंग आमतौर पर है etc/passwd। आपके वर्तमान सत्र में आपने जो किया है, उसके आधार पर, $ SHELL चर में आपके द्वारा उपयोग किए जा रहे शेल प्रोग्राम नहीं हो सकते हैं। यदि आप उदाहरण के लिए स्वचालित रूप से zsh के साथ लॉगिन करते हैं, लेकिन फिर बैश का आह्वान करते हैं, तो $ SHELL नहीं बदलेगा /bin/zsh

वर्तमान उपयोगकर्ता और शेल प्रोग्राम दिखाएं: echo $(whoami) is logged in and shell is $0

  • whoami उपयोगकर्ता के अंतर्गत काम कर रहा उपयोगकर्ता नाम प्रिंट करता है।
  • $0 वर्तमान में चल रहे कार्यक्रम का नाम / पथ (इस मामले में शेल प्रोग्राम) शामिल है।

3

मैनुअल से:

sudo एक sudoers फ़ाइल में निर्दिष्ट अनुसार, सुपर उपयोगकर्ता या किसी अन्य उपयोगकर्ता के रूप में एक आदेश पर अमल करने के लिए उपयोगकर्ता की अनुमति देता है।

-s शैल, शैल शेल वातावरण चर द्वारा निर्दिष्ट सेट होने पर इससे या खोल पासवर्ड (5) के रूप में विनिर्दिष्ट चलाता है।

अधिक गंभीरता से, sudo एक खोल वातावरण चर चलाने -s। के बाद से आप किसी भी चर पासवर्ड में निर्दिष्ट के रूप में चलाते जोड़ नहीं था, और इसलिए रूट के रूप में कनेक्ट करते हैं।


1
यह मैनुअल से स्पष्ट नहीं है कि यदि आप एक उपयोगकर्ता प्रदान नहीं करते हैं, तो यह रूट को डिफॉल्ट करता है। -uयह जानने के लिए आपको विकल्प के लिए विवरण पढ़ना होगा । लेकिन जो कोई परिचित नहीं है sudo, उनके लिए वे देखना पसंद नहीं करेंगे -u
वारबकी


0

ऐसा लगता है कि यह वर्तमान शेल के शीर्ष पर शेल का एक और उदाहरण बना रहा है, लेकिन रूट विशेषाधिकारों के साथ। मैं शर्त लगाता हूं कि sudo -sयदि आप बाहर निकलने के बाद टाइप करते हैं, तो आप मूल शेल पर वापस जाएंगे।


-1

sudo -s आप जो आप कर रहे हैं पूर्व अधिकृत [देखना / etc / sudoers] के लिए, संभवतः अपने वर्तमान आईडी की पुष्टि करने के लिए कह कर एक कमांड चला सकते हैं।

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