Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Linux

Su, Sudo Su, Sudo -s और Sudo -i के बीच अंतर

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

su

su कमांड शेल में सिस्टम द्वारा उपयोग किए जा रहे वर्तमान यूजर को प्रतिस्थापित करता है।

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

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

sudo su

यह कमांड रूट के विपरीत वर्तमान यूजर का पासवर्ड मांगता है।

यह शेल में सिर्फ su चलाने के समान ही है, एक महत्वपूर्ण अंतर को छोड़कर। सिस्टम को सीधे "स्विच यूजर" बताने के बजाय, आप इसे रूट के रूप में "su" कमांड चलाने के लिए कह रहे हैं। जब sudo su चलाया जाता है, तो ".profile", ".bashrc" और "/etc/profile" शुरू हो जाएंगे, बहुत कुछ su (या su root) चलाने की तरह। यदि कोई कमांड sudo के साथ सामने से चलाया जाता है, तो इसे रूट विशेषाधिकार दिए जाते हैं।

हालांकि "sudo su" और "su" के बीच बड़ा विचलन नहीं है, sudo su अभी भी एक बहुत उपयोगी कमांड है एक महत्वपूर्ण कारण के लिए: जब कोई यूजर "su" चलाकर सिस्टम पर रूट एक्सेस प्राप्त कर रहा है, तो उन्हें रूट पासवर्ड पता होना चाहिए। sudo su के साथ रूट वर्तमान यूजर का पासवर्ड मांगकर दिया जाता है। इससे रूट पासवर्ड जाने बिना रूट प्राप्त करना संभव हो जाता है जो सुरक्षा बढ़ाता है।

sudo -i

sudo -i का उपयोग करना sudo su कमांड के समान ही है एक अपवाद के साथ: यह सीधे रूट यूजर के साथ इंटरैक्ट नहीं करता है।

sudo su की तरह, -i फ्लैग एक यूजर को रूट अकाउंट पासवर्ड जाने बिना रूट एनवायरनमेंट प्राप्त करने की अनुमति देता है। sudo -i sudo su का उपयोग करने के समान भी है, क्योंकि यह सभी एनवायरनमेंटल फाइल्स (.profile, आदि) को पढ़ेगा और शेल के अंदर एनवायरनमेंट सेट करेगा।

जहां यह "sudo su" से अलग है वह यह है कि sudo -i रूट यूजर के साथ सीधे इंटरैक्ट किए बिना रूट और रूट एनवायरनमेंट प्राप्त करने का एक बहुत क्लीनर तरीका है। स्पष्ट करने के लिए: sudo su के साथ आप बैकग्राउंड में एक से अधिक रूट setuid कमांड का उपयोग कर रहे हैं। इससे यह पता लगाना बहुत अधिक चुनौतीपूर्ण हो जाता है कि कौन से एनवायरनमेंटल वेरिएबल रखे जाएंगे और कौन से बदल दिए जाएंगे (रूट एनवायरनमेंट पर स्विच करते समय)। यह sudo -i के साथ सच नहीं है। इस वजह से, ज्यादातर लोग इसे सीधे लॉग इन किए बिना रूट प्राप्त करने का पसंदीदा तरीका मानते हैं।

sudo -s

यह कमांड आपके $SHELL वेरिएबल के साथ एक शेल बुलाता है।

"sudo" कमांड के लिए -s स्विच वर्तमान यूजर के $SHELL वेरिएबल को पढ़ता है जो कमांड निष्पादित कर रहा है। यह कमांड ऐसे काम करता है जैसे यूजर sudo /bin/bash चला रहा हो। Sudo -s एक "नॉन-लॉगिन" स्टाइल शेल है। sudo -i या sudo su जैसी कमांड के विपरीत, सिस्टम किसी भी एनवायरनमेंटल फाइल को नहीं पढ़ेगा। जब कोई यूजर शेल को sudo -s चलाने के लिए कहता है, तो यह रूट प्राप्त करता है लेकिन यूजर या यूजर एनवायरनमेंट को नहीं बदलेगा। आपका होम रूट होम नहीं होगा, आदि।

यह कमांड तब सबसे अच्छा उपयोग किया जाता है जब यूजर रूट पर स्विच नहीं करना चाहता लेकिन अपने $SHELL एनवायरनमेंट वैल्यू के साथ एक इंटरैक्टिव शेल चाहता है। ऊपर चर्चा की गई अन्य कमांड्स रूट एक्सेस प्राप्त करती हैं लेकिन रूट एनवायरनमेंटल फाइलों को छूती हैं और यूजर्स को रूट तक पूर्ण पहुंच देती हैं (जो एक सुरक्षा मुद्दा हो सकता है)।

अक्सर पूछे जाने वाले प्रश्न

1. मुझे किस कमांड का उपयोग करना चाहिए?

प्रत्येक कमांड का अपना उपयोग-केस है। यहां महत्वपूर्ण बात यह है कि आप समझें कि प्रत्येक कमांड क्या करती है और कब उनका उपयोग करना है। जैसा कि यह खड़ा है, sudo -i रूट एनवायरनमेंट प्राप्त करने का सबसे व्यावहारिक, साफ तरीका है। दूसरी ओर, जो sudo -s का उपयोग कर रहे हैं, वे पाएंगे कि वे रूट एनवायरनमेंट को छूने की क्षमता के बिना एक रूट शेल प्राप्त कर सकते हैं, जिसमें अतिरिक्त सुरक्षा लाभ हैं।

2. क्या रूट एक्सेस करना मेरे सिस्टम को नुकसान पहुंचा सकता है?

कुछ मामलों में, हां। जब तक आप बिल्कुल निश्चित नहीं हैं कि आपको किसी विशेष टर्मिनल सत्र में हर चीज के लिए रूट एक्सेस करने की आवश्यकता है, तब तक केवल sudo टाइप करना और उसके बाद एक कमांड टाइप करना बेहतर होता है यदि आप केवल उस विशेष कमांड के लिए रूट एक्सेस करना चाहते हैं। उदाहरण के लिए, किसी भी डेबियन-आधारित लिनक्स वर्जन में sudo apt install vlc टाइप करना ऑपरेटिंग सिस्टम को VLC इंस्टॉल करने के लिए APT पैकेज मैनेजर चलाने के लिए केवल रूट एक्सेस करने के लिए कहेगा।

sudo -i या हमारे द्वारा पहले चर्चा किए गए किसी अन्य वेरिएंट को चलाने के विपरीत, प्रत्येक कमांड से पहले sudo टाइप करने के लिए एक बहुत महत्वपूर्ण चेतावनी यह है कि पूर्व आपके कमांड हिस्ट्री को /var/log/auth.log में लॉग नहीं करता है। यदि आप गड़बड़ करते हैं, तो आप वापस नहीं जा सकते और जांच सकते हैं कि आपने क्या किया ताकि आप इसे सुधार सकें। आपको स्मृति से काम करना होगा, क्योंकि रूट सत्र रिकॉर्ड नहीं किए जाते हैं।

3. जब मैं किसी कमांड से पहले "sudo" टाइप करता हूं, तो मैं "sudo su" का कौन सा वेरिएंट चला रहा हूं?

sudo टाइप करके एक कमांड निष्पादित करने के लिए (यानी, आप इसे उसी लाइन में टाइप कर रहे हैं जिस कमांड को आप चलाना चाहते हैं), आप अनिवार्य रूप से इसे एक इंटरैक्टिव रूट शेल के तहत चला रहे हैं। यह वही होगा जो स्टैंडअलोन sudo -s कमांड करता है।

समापन

इस सूची में वास्तव में कोई एक कमांड नहीं है जो 100% सर्वश्रेष्ठ हो। जैसे-जैसे यूजर्स कमांड लाइन के साथ अधिक सहज होते जाते हैं, उन्हें रूट प्राप्त करने के प्रत्येक तरीके को (और भी कई हैं) ध्यान में रखना होगा और पेशेवरों और विपक्षों को तौलना होगा और तदनुसार कार्य करना होगा। मुझे आशा है कि इस लेख की मदद से ये निर्णय लेना आसान होगा। यदि आप कमांड्स के बारे में अधिक जानना चाहते हैं, तो लिनक्स में डायरेक्टरी की सामग्री सूचीबद्ध करने के लिए उपयोगी कमांड्स पर इस लेख को पढ़ें।

  1. Wi-Fi 6 और 5G नेटवर्क में क्या अंतर है? Wi-Fi 6 और 5G नेटवर्क में क्या अंतर है?

    5G नेटवर्क एक ऐसा विषय है जिस पर बहुत चर्चा हुई है और इसका कार्यान्वयन सोशल नेटवर्क पर बातचीत का विषय बना हुआ है। Wi-Fi 6 को लेकर भी ऐसी ही उम्मीदें हैं, जो एक अलग तकनीक है। Wi-Fi 6 और 5G नेटवर्क के बीच अंतर को पहचानना सीखें। Wi-Fi 6 क्या है? Wi-Fi 6, IEEE 802.11ax मानक पर आधारित एक नया प्रमाणीकरण ह

  1. बिटकॉइन और एथेरियम के बीच अंतर बिटकॉइन और एथेरियम के बीच अंतर

    2017 निश्चित रूप से क्रिप्टोकरेंसी का वर्ष था, और भले ही उनकी कीमत अब गिर गई हो, लेकिन प्रमुख मुद्राओं में रुचि कम नहीं हुई है। दो सबसे लोकप्रिय मुद्राएं - बिटकॉइन और एथेरियम - ने वर्ष के दौरान कीमत में भारी वृद्धि देखी - क्रमशः $1,000 से कम से लगभग $20,000 और $10 से कम से $1,300 से अधिक तक। यदि आप

  1. विंडोज 10 बनाम विंडोज 11: प्रमुख अंतर और आपके लिए कौन सा सही है विंडोज 10 बनाम विंडोज 11: प्रमुख अंतर और आपके लिए कौन सा सही है

    माइक्रोसॉफ्ट ने कई नई सुविधाओं और सुधारों के साथ नवीनतम विंडोज 11 जारी किया है। और बहुत सारे पैच और अपडेट के साथ, विंडोज 10 अब नए विंडोज 11 की तुलना में अधिक स्थिर OS है। कंपनी के अनुसार, यह 2025 के बाद विंडोज 10 पर अपना समर्थन बंद कर देगा, इसलिए हमारे पास यह तय करने के लिए पर्याप्त समय है कि विंडोज