'Su -', 'sudo bash' और 'sudo sh' में क्या अंतर है?


29

मैं जानना चाहूंगा कि क्या अंतर है

  • su -
  • sudo bash
  • sudo sh

मैं su -रूट पासवर्ड करते हुए लॉगिन नहीं कर सकता क्योंकि मेरे पास रूट पासवर्ड नहीं है - मेरा मतलब है कि मेरे पास मेरा उपयोगकर्ता पासवर्ड है जिसके साथ मैं कर सकता हूं sudo "command" लेकिन यह पासवर्ड su - मेरे लिए काम नहीं करता है मैं sudo bashअपने उपयोगकर्ता पासवर्ड के साथ रूट के रूप में लॉग इन कर सकता हूं और मैं लॉगिन कर सकता हूं कर sudo shरहा हूँ, लेकिन फिर मुझे इस रूप में एक कमांड प्रॉम्प्ट मिलता है #

जवाबों:


27

पृष्ठभूमि

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

सु -

इस कमांड का उपयोग रूट अकाउंट पर लॉगिन करने के लिए किया जाता है।
डिफ़ॉल्ट रूप से, रूट खाता पासवर्ड उबंटू में बंद है। इसका मतलब है कि आप सीधे रूट के रूप में लॉगिन नहीं कर सकते हैं या रूट कमांड का उपयोग रूट उपयोगकर्ता बनने के लिए कर सकते हैं। हालाँकि, रूट खाते के भौतिक रूप से मौजूद होने के बाद भी रूट-स्तरीय विशेषाधिकारों के साथ कार्यक्रम चलाना संभव है। यह वह जगह है जहां sudo आता है - यह अधिकृत उपयोगकर्ताओं (सामान्य रूप से "प्रशासनिक" उपयोगकर्ताओं) को रूट पासवर्ड जानने के बिना रूट के रूप में कुछ प्रोग्राम चलाने की अनुमति देता है।

रूट खाता सक्षम करने का तरीका देखें ।

सूदो श

यह कमांड सुपर यूजर के रूप में "श" चलाता है।
श यूटिलिटी एक कमांड लैंग्वेज इंटरप्रेटर है जो कमांड लाइन स्ट्रिंग, स्टैण्डर्ड इनपुट या एक निर्दिष्ट फाइल से पढ़ी गई कमांड्स को निष्पादित करेगा।

सुडो बैश

यह कमांड सुपर उपयोगकर्ता के रूप में "बैश" चलाता है।
बैश शेल, या कमांड भाषा दुभाषिया है। बैश एक श-संगत शेल है जो कोर्न शेल (ksh) और C शेल (csh) से उपयोगी विशेषताओं को शामिल करता है। यह IEEE POSIX P1003.2 / ISO 9945.2 शेल और टूल्स मानक के अनुरूप है। यह प्रोग्रामिंग और इंटरैक्टिव उपयोग दोनों के लिए श के ऊपर कार्यात्मक सुधार प्रदान करता है। इसके अलावा, अधिकांश श स्क्रिप्ट को बिना संशोधन के बश द्वारा चलाया जा सकता है।

संदर्भ: 1 , 2 , 3


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

6

su -:

यह आपके उपयोगकर्ता पहचानकर्ता को बदल देगा और पर्यावरण चर को विरासत में देगा जैसे कि आपने उस उपयोगकर्ता के साथ लॉगिन किया था। आम तौर पर आप su - <userid>उपयोगकर्ता के रूप में लॉगिन करने के लिए प्रारूप का उपयोग करेंगे। यदि आप "userid" को छोड़ देते हैं, तो यह मान लिया जाता है कि आप रूट के रूप में लॉगिन करने की कोशिश कर रहे हैं - जिसे आप नहीं कर सकते (जब तक कि आप रूट पासवर्ड नहीं बदलते)।

sudo bash& sudo sh:

सूडो के बाद कुछ भी चलाने का कार्यक्रम है - इसलिए इन मामलों में आप क्रमशः दो गोले चलाने के लिए कह रहे हैं - बैश और डैश। का उपयोग man bashऔर man shविभिन्न गोले के बारे में अधिक जानकारी के लिए।


संबंधित सवाल:


ठीक है, उत्तर के लिए धन्यवाद, लेकिन फिर रूट के लिए डिफ़ॉल्ट पासवर्ड क्या है? मैं इसे कहाँ पा सकता हूँ ?
पेट्रिक

@lordmonkey रूट में पासवर्ड नहीं है, और उसे एक की आवश्यकता नहीं है। sudo -iआपको एक लॉगिन शेल su -देगा, जैसे कि sudo आपके पासवर्ड के लिए पूछता है, रूट का नहीं।
जिरह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.