Linux ऑपरेटिंग सिस्टम द्वारा उपयोग किए जाने वाले फाइलसिस्टम हायरार्की स्टैंडर्ड में, सभी फ़ाइलें और निर्देशिकाएं रूट डायरेक्टरी “/” के अंतर्गत दिखाई देती हैं लेकिन सुरक्षा कारणों से इसकी पहुंच अक्सर प्रतिबंधित होती है। Debian जैसे Linux वितरण में, आप SSH से “sudo” कमांड का उपयोग करके पूर्ण पहुंच प्राप्त कर सकते हैं। यह ट्यूटोरियल बताता है कि किसी उपयोगकर्ता को Sudoers में कैसे जोड़ा जाए ताकि उपयोगकर्ता को sudo कमांड चलाने की अनुमति हो।
सुपरयूजर या रूट उपयोगकर्ता के रूप में लॉग इन करने से आप सिस्टम-वाइड संशोधन कर सकते हैं। “sudo” का उपयोग किसी अन्य उपयोगकर्ता के रूप में लॉग इन करने के लिए भी किया जा सकता है – जो सिस्टम एडमिनिस्ट्रेटर और तकनीशियनों के लिए कभी-कभी आवश्यक होता है।
उपयोगकर्ताओं (और उपयोगकर्ताओं के समूहों) की एक सूची जिन्हें विभिन्न कमांड निष्पादित करने की अनुमति है, फ़ाइल “/etc/sudoers” में संग्रहीत होती है, इसलिए सिस्टम एडमिन को पता होना चाहिए कि नए उपयोगकर्ताओं को रूट लॉगिन विशेषाधिकार कैसे दिए जाएं, उनका नाम इस फ़ाइल में जोड़कर। ऐसा करने के दो तरीके हैं। एक है फ़ाइल को मैन्युअली संपादित करना। जब आप ऐसा करते हैं तो आप उनके द्वारा अपने रूट लॉगिन का उपयोग करते समय निष्पादित करने के लिए अधिकृत विशेषाधिकारों के एक सबसेट को भी असाइन कर सकते हैं। एक त्वरित विकल्प है कमांड लाइन से उन्हें केवल “sudo” उपयोगकर्ता-समूह में जोड़ना।
उपयोगकर्ता को sudo ग्रुप में जोड़ना
स्वाभाविक रूप से, आपको किसी और को sudo ग्रुप में जोड़ने से पहले सुपरयूजर के रूप में लॉग इन होना होगा। Debian सर्वर में रूट उपयोगकर्ता के रूप में लॉग इन करने के लिए –
ssh admin@wsxdn.com
मान लें कि आप जिस उपयोगकर्ता को जोड़ना चाहते हैं वह पहले से ही सिस्टम पर मौजूद है, आप फिर नीचे दी गई कमांड चला सकते हैं;
usermod -aG sudo username
यह दोबारा जांचने के लिए कि आपने उन्हें ग्रुप में सफलतापूर्वक जोड़ा है, निम्न टाइप करें और उपयोगकर्ता का पासवर्ड प्रदान करें;
sudo whoami
यदि उनके पास वास्तव में sudo एक्सेस है तो आउटपुट “root” प्रिंट करेगा। यदि नहीं, या आपने विवरण गलत दर्ज किए हैं, तो आपको एक त्रुटि संदेश मिलेगा जो बताएगा कि “user is not in the sudoers file“।
पूरी तरह से नया उपयोगकर्ता बनाने के लिए, आप Linux “adduser” कमांड का उपयोग कर सकते हैं;
adduser newusername
फिर आपसे उनके बारे में कुछ अतिरिक्त विवरण प्रदान करने के लिए कहा जाएगा, जिसमें उन्हें पासवर्ड असाइन करना शामिल है। जब आप समाप्त करते हैं, तो नए उपयोगकर्ता की जानकारी sudoers फ़ाइल में लिखी जाती है।
यदि आप कमांड लाइन से एक नए उपयोगकर्ता को sudo उपयोगकर्ता-समूह में असाइन करना चाहते हैं तो आप “usermod” या “gpasswd“ का उपयोग कर सकते हैं। उदाहरण के लिए –
usermod -aG sudo newusername
उपयोगकर्ताओं को sudoers फ़ाइल में मैन्युअली जोड़ना
यह बेहतर विकल्प है जब आप नए सुपरयूजर के लिए कस्टम सुरक्षा नीतियां सेट करना चाहते हैं। आप या तो sudoers फ़ाइल को सीधे संपादित कर सकते हैं, या आप /etc/sudoers.d निर्देशिका के भीतर एक नई कॉन्फ़िगरेशन फ़ाइल बना सकते हैं। उस निर्देशिका में स्थित कोई भी फ़ाइल रनटाइम पर sudoers फ़ाइल के साथ प्रभावी रूप से संयोजित होती है।
visudo का उपयोग करना:
sudoers फ़ाइल को संपादित करने के लिए हमेशा “visudo” कमांड का उपयोग करें। visudo के माध्यम से एक एडिटर को आमंत्रित करने से यह सुनिश्चित होता है कि visudo इसे सहेजने से पहले फ़ाइल सिंटैक्स की सावधानीपूर्वक जांच करेगा। यदि आप visudo के बिना फ़ाइल संपादित करते हैं, तो यह नहीं करेगा – और यह एक महत्वपूर्ण सिस्टम फ़ाइल है! आप अभी भी visudo का उपयोग करके फ़ाइलों को संपादित कर सकते हैं जिन्हें आप /etc/sudoers.d में सहेजते हैं, लेकिन आपको उस फ़ाइल का स्थान निर्दिष्ट करने के लिए –f विकल्प को आमंत्रित करने की आवश्यकता हो सकती है जिसे आप संपादित करना चाहते हैं।
visudo द्वारा उपयोग किया जाने वाला वास्तविक एडिटर EDITOR पर्यावरण चर द्वारा निर्दिष्ट होता है। डिफ़ॉल्ट रूप से यह vim पर सेट होता है। यदि आप डिफ़ॉल्ट एडिटर को किसी विकल्प में बदलना चाहते हैं, जैसे viduso, तो आप डिफ़ॉल्ट को इस तरह बदल सकते हैं –
EDITOR=nano visudo
विशेषाधिकार असाइन करना:
sudoers फ़ाइल में कहीं, आप इस तरह की एक लाइन देख सकते हैं –
root ALL=(ALL) ALL
यह उपयोगकर्ता के विशेषाधिकारों को असाइन करने के लिए उपयोग किए जाने वाले सिंटैक्स को प्रदर्शित करता है। इस मामले में, अर्थ यह है कि रूट उपयोगकर्ता ALL (किसी भी) टर्मिनल से निष्पादित कर सकता है, ALL (किसी भी) उपयोगकर्ता के रूप में कार्य कर सकता है, और ALL (किसी भी) कमांड चला सकता है।
सूडोर्स फ़ाइल में नामों पर विशेषाधिकारों के समूहों को लागू करना आसान बनाने के लिए, अक्सर एलियास परिभाषित किए जाते हैं। आप उपयोगकर्ताओं के समूहों, टर्मिनलों की एक श्रृंखला, या कमांड के समूहों तक पहुंच के लिए एलियास बना सकते हैं। उदाहरण के लिए, आपकी sudoers फ़ाइल के शीर्ष पर आप इस तरह कुछ टाइप कर सकते हैं;
User_Alias OPERATORS = amy, ben, chris Runas_Alias OP = root, operator Host_Alias NETWORK = 192.168.0.0/255.255.255.0 Cmnd_Alias PRINTING_CMDS = /usr/sbin/lpc, /usr/sbin/lprm
फिर आप उपयोगकर्ता को एक्सेस अधिकार देते समय इन शॉर्टकट को आमंत्रित कर सकते हैं। उदाहरण के लिए;
ben ALL = PRINTING_CMDS
यह ben को परिभाषित IP एड्रेस की सीमा के भीतर किसी भी टर्मिनल का उपयोग करने और प्रिंटर निर्देशों lpc और lprm (जो /usr/sbin/ में हैं) को निष्पादित करने की अनुमति देता है।
Debian में रूट विशेषाधिकार बहुत शक्तिशाली हैं। इसका मतलब है कि आपके एक्सेस कंट्रोल को भ्रष्ट करने, सर्वर को नुकसान पहुंचाने, या डेटा नष्ट करने के कई अवसर हैं। उस कारण से, हर उपयोगकर्ता को पूर्ण रूट एक्सेस देने से बचें और जब आपको इसकी आवश्यकता न हो तो सुपरयूजर के रूप में लॉग इन करने की आदत से बचें।