उपरोक्त कॉमिक पर विचार करें उत्कृष्ट XKCD वेबकॉमिक से। कुर्सी पर बैठा आलसी साथी अपने दोस्त से सैंडविच बनाने के लिए कहता है, लेकिन उसके पास ऐसा करवाने का अधिकार नहीं होता। जब तक वह शक्तिशाली sudo कमांड का आह्वान नहीं करता। जिसके बाद, सैंडविच एक तरह से या किसी अन्य तरीके से बन ही जाएगा।
वास्तविक जीवन में किसी व्यक्ति पर sudo आज़माना शायद उतना प्रभावी न हो, लेकिन यह Linux की दुनिया में हर रुकावट को पार करने वाली जादुई कमांड है। Sudo क्या है? यह क्यों मौजूद है? इसका उत्तर इस बात में निहित है कि Linux अनुमतियों को कैसे संभालता है।
Linux उपयोगकर्ता अनुमतियों को समझना
Linux को एक सुरक्षित ऑपरेटिंग सिस्टम माना जाता है क्योंकि यह अनुमतियों को कैसे संभालता है। जबकि macOS (जो Linux के साथ एक पूर्वज साझा करता है) और Windows जैसे ऑपरेटिंग सिस्टम अब इस संबंध में Linux की तरह अधिक हैं, ओपन सोर्स ऑपरेटिंग सिस्टम अभी भी कुछ हद तक अद्वितीय है।
Linux अनुमतियों को कैसे संभालता है यह समझना sudo कमांड को समझना बहुत आसान बना देता है। सभी आधुनिक ऑपरेटिंग सिस्टम में एक "एडमिनिस्ट्रेटर" या "रूट" उपयोगकर्ता अनुमति स्तर होता है। यदि आपके पास एडमिन या रूट खाता है, तो आप किसी भी सेटिंग को बदल सकते हैं, किसी भी डेटा को हटा सकते हैं और आम तौर पर कंप्यूटर के साथ जो चाहें कर सकते हैं।
इसमें वे चीजें शामिल हैं जो आपको शायद नहीं करनी चाहिए जो डेटा हानि या पूर्ण वाइप और पुनर्स्थापना की आवश्यकता का कारण बन सकती हैं।
Linux रूट उपयोगकर्ता स्तर की अनुमतियों को डिफ़ॉल्ट नहीं बनाता। इसके बजाय, आपका खाता व्यवस्थापक पासवर्ड दर्ज किए बिना सिस्टम के वास्तव में संवेदनशील हिस्सों तक नहीं पहुंच सकता। इसका मतलब है कि जब आप ग्राफिकल इंटरफ़ेस का उपयोग करके कुछ असाधारण करना चाहते हैं तो सिस्टम आपसे व्यवस्थापक पासवर्ड दर्ज करने के लिए कहेगा।
हालांकि, जब आप टर्मिनल कमांड लाइन का उपयोग करके चीजें करना चाहते हैं, तो sudo इसके बारे में जाने का सबसे सुरक्षित और कुशल तरीका है।
Sudo और टर्मिनल
Linux में खुद को उन्नत अनुमतियां देने के दो तरीके हैं। एक है रूट उपयोगकर्ता के रूप में स्थायी रूप से लॉग इन करना। इसके साथ समस्या यह है कि कोई और जो कंप्यूटर तक पहुंच सकता है वह कहर बरपा सकता है, और यहां तक कि आप भी इसे दुर्घटना से कर सकते हैं। Sudo केवल थोड़े समय के लिए आपकी अनुमतियों को बढ़ाता है ताकि इसके बाद आने वाली विशिष्ट कमांड को निष्पादित किया जा सके।
Sudo सिंटैक्स
Sudo का सिंटैक्स (कमांड का प्रारूप) सरल है। बस "sudo" टाइप करें उसके बाद वह कमांड जिसे आप निष्पादित करना चाहते हैं।
उदाहरण के लिए, "sudo apt-get update" प्रासंगिक फ़ाइल में सूचीबद्ध सभी ऐप रिपॉजिटरी को अपडेट करेगा। यदि आपने इसे sudo के बिना चलाने की कोशिश की, तो आपको एक त्रुटि संदेश मिलेगा जिसमें कहा जाएगा कि आपके पास अनुमति नहीं है। संयोग से, यह आम तौर पर आपके पसंदीदा Linux डिस्ट्रो की नई इंस्टॉलेशन के बाद आप चलाने वाली पहली sudo कमांड होगी।
Sudo में "Su"
Sudo में "su" "सुपरयूजर" का संक्षिप्त रूप है और यह एक स्टैंडअलोन कमांड है। "su" कमांड आपको यह बदलने देती है कि sudo आपको किस उपयोगकर्ता के विशेषाधिकारों तक बढ़ाता है।
हालांकि sudo आपको अस्थायी रूप से रूट तक बढ़ाता है, su आपको उपयुक्त विशेषाधिकारों वाले किसी अन्य उपयोगकर्ता में बदल देता है। यह एक महत्वहीन अंतर लग सकता है, लेकिन उस खाते को बदलने के अच्छे कारण हैं जिसे sudo उपयोगकर्ता तक बढ़ाता है।
सबसे पहले, खाता बदलने का मतलब है कि सामान्य उपयोगकर्ता रूट पासवर्ड नहीं जानते। दूसरा, सभी sudo कमांड का एक लॉग होता है, जिसका अर्थ है कि सिस्टम एडमिनिस्ट्रेटर (रूट) देख सकता है कि किसने su कमांड जारी किए।
su के लिए सिंटैक्स अनिवार्य रूप से sudo के समान ही है:
Su USERNAME -c COMMAND
USERNAME को वांछित उपयोगकर्ता से बदलें जो कमांड चलाएगा और COMMAND को उस Linux कमांड से बदलें जिसे आप निष्पादित करना चाहते हैं।
यदि आप किसी अन्य उपयोगकर्ता के रूप में कई कमांड चलाना चाहते हैं, तो बस उपयोग करें:
Su USER
USER को वांछित उपयोगकर्ता खाता पहचान से बदलें।
यदि आप su का उपयोग स्वयं करते हैं, तो Linux तब तक दूसरे उपयोगकर्ता खाते पर स्विच कर देगा जब तक आप "exit" कमांड का उपयोग नहीं करते। इसे याद रखना महत्वपूर्ण है या उस सत्र में टर्मिनल तक पहुंचने वाला अगला उपयोगकर्ता अभी भी उन्नत अनुमतियों के साथ होगा। यही कारण है कि आमतौर पर su के बजाय sudo का उपयोग करना बेहतर होता है।
Sudo समय सीमा
पहली बार जब आप sudo कमांड का उपयोग करते हैं, तो आपको पासवर्ड दर्ज करना होगा। फिर, वह पासवर्ड 15 मिनट के लिए मान्य रहेगा। आप sudo visudo कमांड चलाकर और "timestamp_timeout=" को लंबे या छोटे मान में बदलकर इस डिफ़ॉल्ट को बदल सकते हैं। हालांकि, हम ऐसा करने की अनुशंसा नहीं करते जब तक कि आपके पास sudo पासवर्ड के मान्य रहने की अवधि को बढ़ाने या घटाने का अच्छा कारण न हो।
Sudo विकल्प स्विच
हालांकि sudo सिंटैक्स सरल है, कई स्विच हैं जिनके बारे में जानना उचित है। ये कमांड अतिरिक्त जानकारी खोलते हैं या आपको sudo सत्र को नियंत्रित करने में मदद करते हैं:
- -h sudo के लिए सिंटैक्स और कमांड जानकारी दिखाता है।
- -V आपकी मशीन पर sudo के लिए वर्तमान संस्करण प्रदर्शित करता है।
- -v sudo समय सीमा को रीफ्रेश करता है, घड़ी को पुनः आरंभ करता है।
- -l उपयोगकर्ता विशेषाधिकारों को सूचीबद्ध करता है।
- -k वर्तमान sudo सत्र को तुरंत मार देता है, उन्नत विशेषाधिकारों को हटा देता है।
sudo में कई और विकल्प अंतर्निहित हैं, और आप पहले सूचीबद्ध -h स्विच का उपयोग करके उन सभी को देख सकते हैं।
उपरोक्त स्क्रीनशॉट वह है जो परिणाम होता है जब आप सहायता विकल्प का उपयोग करते हैं।
उपयोगी Sudo कमांड
तो sudo द्वारा संचालित कौन सी कमांड हर Linux उपयोगकर्ता को पता होनी चाहिए? हमने पहले ही sudo apt-get update को कवर किया है, लेकिन इन्हें भी नोट करें:
- Sudo apt-get upgrade सभी इंस्टॉल पैकेज को अपग्रेड करेगा।
- Sudo apt-get install <package-name> आपकी पसंद का सॉफ्टवेयर इंस्टॉल करता है; बस पैकेज नाम को उसमें बदलें जिसे आप इंस्टॉल करना चाहते हैं।
- यदि आप पैकेज नाम नहीं जानते हैं, तो dpkg –list का उपयोग करें।
- यदि आप टर्मिनल से एक इंस्टॉल पैकेज को हटाना चाहते हैं, तो sudo apt-get remove <package-name (फिर से प्रश्न में विशिष्ट पैकेज नाम को प्रतिस्थापित करते हुए) का उपयोग करें।
ये संभवतः पहली sudo कमांड हैं जिनका आपको उपयोग करना होगा, लेकिन जैसा कि आपने ऊपर सीखा है कि कोई भी कमांड sudo का अनुसरण कर सकती है, लेकिन आपको केवल उन्हीं के साथ इसका उपयोग करना चाहिए जिन्हें उच्च विशेषाधिकारों की आवश्यकता होती है।