मैंने यहाँ उबंटू के sudo -s
बजाय उपयोग करने में वरीयता के संबंध में कई टिप्पणियाँ देखी हैं sudo su
।
मेरे लिए, कि दो आज्ञाएं बिलकुल एक जैसी हैं। लेकिन sudo -s
बेहतर क्यों माना जाता है?
मैंने यहाँ उबंटू के sudo -s
बजाय उपयोग करने में वरीयता के संबंध में कई टिप्पणियाँ देखी हैं sudo su
।
मेरे लिए, कि दो आज्ञाएं बिलकुल एक जैसी हैं। लेकिन sudo -s
बेहतर क्यों माना जाता है?
जवाबों:
मुझे लगता sudo -s
है कि "बेहतर" नहीं है, यह सिर्फ अलग है।
sudo -s
आपकी $ HOME निर्देशिका को बनाए रखता है, इसलिए जब आप प्रोग्राम शुरू करते हैं, तो वे आपकी (और रूट की) कॉन्फ़िग फ़ाइलों आदि का उपयोग करेंगे। नुकसान: वे $ HOME निर्देशिका में आपकी फ़ाइलों के स्वामित्व को भी बदल सकते हैं, विशिष्ट उदाहरण .Xauthority
फ़ाइल है, लेकिन मैं उस के साथ एक समस्या का अनुभव नहीं किया है।
sudo su
या sudo -i
प्रोग्राम रूट के होम डायरेक्टरी और उसकी कॉन्फिग फाइल्स का उपयोग करेंगे। यह अधिक सहज हो सकता है, लेकिन इसका मतलब यह भी है कि यह आपके लिए निर्धारित किसी भी कॉन्फ़िगरेशन का उपयोग नहीं करेगा (उपनाम, बैश इतिहास, ...)।
क्योंकि sudo -s
विशेष रूप से आपके पर्यावरण चर नहीं बदलेंगे $HOME
, जो कि रहेगा HOME=/home/USER
। यदि आप इसका उपयोग करते हैं, तो sudo su
यह उन परिवर्तनों में बदल जाएगा, HOME=/root
जिनके नकारात्मक प्रभाव पड़ सकते हैं, जब आप अपने उपयोगकर्ता के होम डायरेक्टरी तक पहुंचने का प्रयास करते हैं।
तो मूल रूप से यह ग्राफिकल कार्यक्रमों को चलाने के दौरान sudo
बनाम की तरह gksudo
है।
पर्यावरण के चर के साथ पहले ही बताए गए मतभेदों के अलावा, मैं sudo su
मूर्खतापूर्ण और बेकार है क्योंकि आप रूट के रूप में sudo
चलाने के लिए कह रहे हैं su
, और इसे शेल को रूट के रूप में चलाने के लिए कहें। किसी प्रोग्राम को पूछने के लिए आपको रूट शेल देने के लिए क्यों कहा जाए, जब आप सिर्फ पहला प्रोग्राम आपको दे सकते हैं? क्या यह किसी भी व्यावहारिक अर्थ में मायने रखता है? नहीं, मैं सिर्फ पांडित्य हूं।
sudo su
मूल होने के लिए उपयोग कर रहे हैं , तो हां, sudo -i
उदाहरण के लिए , बस जाएं । लेकिन यह तब मदद करता है जब आप एक अलग उपयोगकर्ता बनना चाहते हैं sudo su - myuser
:।
sudo -i
बदल जाएगा /root
और sudo su
उस निर्देशिका में रहेंगे जो आप हैं।
sudo -u myuser
।
मैं उन मामलों पर विचार करते समय अन्य उत्तरों से असहमत होगा जब आप एक ऐसे उपयोगकर्ता के रूप में लॉग इन करना चाहते हैं जिनके पास शेल नहीं है। यह उपयोगकर्ताओं के लिए एक बहुत ही सामान्य मामला है जिसे सेवाओं को सौंपा गया है।
"Sudo su" का उपयोग करके उपयोगकर्ता द्वारा निर्दिष्ट शेल शुरू हो जाएगा। हालाँकि सर्वर प्रक्रिया के लिए सौंपे गए उपयोगकर्ता के मामले में, शेल / usr / bin / false है और लॉगिंग विफल हो जाएगी। इसके बजाय आपको निम्न दर्ज करना चाहिए:
sudo -sHu <server-user>
यदि आप उपयोगकर्ता को एक शेल असाइन नहीं करते हैं, तो भी आप उसे अपने घर के रास्ते में और cd में लॉग इन करेंगे
sudo -i
याsudo su
से बेहतर हैsudo -s
कारणों के लिए यहाँ उल्लेख किया: ubuntuforums.org/showpost.php?p=6188826&postcount=4 इसके अलावा: इस के संभावित डुप्लिकेट है superuser.com/questions/29/...