उबंटू लिनक्स पर सुडो बनाम सु को समझने के लिए आपको जो कुछ भी चाहिए वह सब कुछ। लिनक्स: किसका उपयोग करना सही है: सु या सुडो? सूडो कमांड क्या करता है?

💖क्या आपको यह पसंद है?लिंक को अपने दोस्तों के साथ साझा करें

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

ऐसा प्रतीत होता है कि इतनी छोटी टीम, न्यूनतम क्षमताओं और यथासंभव सरल उपयोग के साथ, लेकिन वास्तव में यह और भी बहुत कुछ कर सकती है। इस लेख में हम देखेंगे कि सिस्टम फ़ंक्शंस और उपयोगकर्ता क्षमताओं तक पहुंच को नियंत्रित करने के लिए लिनक्स में सुडो को कैसे कॉन्फ़िगर किया गया है।

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

टीम के नाम का मतलब स्थानापन्न उपयोक्ता करते हैंया सुपर उपयोगकर्ता करते हैं।उपयोगिता आपको किसी अन्य उपयोगकर्ता के रूप में प्रोग्राम चलाने की अनुमति देती है, लेकिन अधिकतर रूट उपयोगकर्ता के रूप में। उपयोगिता को 1980 में बॉब कॉगशेल और क्लिफ स्पेंसर द्वारा विकसित किया गया था। इस दौरान कई डेवलपर्स बदले हैं और कई फीचर्स जोड़े गए हैं.

sudo SUID एक्सेस फ़्लैग की बदौलत काम करता है। यदि यह ध्वज किसी प्रोग्राम के लिए सेट किया गया है, तो इसे इसे लॉन्च करने वाले उपयोगकर्ता की ओर से नहीं, बल्कि मालिक की ओर से निष्पादित किया जाता है, बशर्ते कि सुडो फ़ाइलसंबंधित है, तो उपयोगिता को रूट के रूप में निष्पादित किया जाता है। फिर यह इसकी सेटिंग्स को पढ़ता है, उपयोगकर्ता का पासवर्ड मांगता है, और निर्णय लेता है कि उपयोगकर्ता को प्रशासक के रूप में कमांड चलाने की अनुमति दी जा सकती है या नहीं। यदि हां, तो पैरामीटर में पारित आदेश निष्पादित किया जाता है।

अब जब आप सिद्धांत जान गए हैं, तो आइए देखें कि Linux पर sudo कैसे सेट करें।

लिनक्स पर सुडो की स्थापना

सभी sudo सेटिंग्स /etc/sudores फ़ाइल में स्थित हैं। यहां आप बहुत सारे पैरामीटर कॉन्फ़िगर कर सकते हैं, सुपरयूज़र की ओर से कमांड निष्पादित करने की अनुमति किसे दी जाएगी से लेकर उपलब्ध कमांड के सेट को सीमित करने तक।

संपादन के लिए फ़ाइल खोलने के लिए, सुपरयूज़र के रूप में निम्न कमांड टाइप करें:

आप उस टेक्स्ट एडिटर को भी निर्दिष्ट कर सकते हैं जिसमें आप कॉन्फ़िगरेशन फ़ाइल को संपादित करना चाहते हैं:

संपादक=नैनो विसुडो

आगे हम सबसे दिलचस्प सेटिंग्स देखेंगे जिन्हें आप इस फ़ाइल में सेट कर सकते हैं। लेकिन पहले, आइए मूल फ़ाइल सिंटैक्स देखें। इसमें दो प्रकार के तार होते हैं, ये उपनाम हैं जो आपको उपयोगकर्ताओं और झंडे की सूची बनाने की अनुमति देते हैं, साथ ही नियम भी बनाते हैं, जो निर्दिष्ट करते हैं कि सुडो कमांड कैसे व्यवहार करेगा। उपनाम वाक्यविन्यास इस तरह दिखता है:

उपनाम_नाम = टाइप करें तत्व1, तत्व2, तत्व3

प्रकार निर्दिष्ट करता है कि किस प्रकार का ऐलिस बनाया जाना चाहिए, नाम वह नाम है जिसका उपयोग किया जाएगा, और तत्वों की सूची उन तत्वों को निर्दिष्ट करती है जो इस नाम का संदर्भ देते समय निहित होंगे।

उपयोगकर्ता अनुमतियों के विवरण में थोड़ा अलग वाक्यविन्यास है:

उपयोगकर्ता होस्ट = (अन्य_उपयोगकर्ता:समूह)टीमें

उपयोगकर्ता उस उपयोगकर्ता या समूह को निर्दिष्ट करता है जिसके लिए हम नियम बना रहे हैं, होस्ट वह कंप्यूटर है जिसके लिए यह नियम लागू होगा। एक अन्य उपयोगकर्ता - जिसकी आड़ में पहला उपयोगकर्ता कमांड निष्पादित कर सकता है, और अंतिम उपयोगकर्ता अनुमत कमांड निष्पादित कर सकता है। किसी भी पैरामीटर के स्थान पर उपनाम का उपयोग किया जा सकता है। और अब डेबियन और अन्य वितरणों में सूडो स्थापित कर रहा हूँ।

बुनियादी पैरामीटर

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

जब आप पहली बार परिचय का उपयोग करें तो उसे अक्षम कर दें:

डिफ़ॉल्ट!व्याख्यान

सुपरयूज़र सूडो नहीं कर सकता:

डिफ़ॉल्ट !root_sudo

अब यदि आप sudo sudo चलाने का प्रयास करेंगे तो कुछ भी काम नहीं करेगा:

लक्ष्य उपयोगकर्ता के लिए होम निर्देशिका बदलें, वर्तमान उपयोगकर्ता के फ़ोल्डर को डिफ़ॉल्ट रूप से होम निर्देशिका के रूप में छोड़ दें:

डिफ़ॉल्ट सेट_होम

वर्तमान उपयोगकर्ता के समूहों की सूची सहेजें:

डिफ़ॉल्ट !preserve_groups

उपयोगकर्ता पासवर्ड के बजाय सुपरयूज़र पासवर्ड का अनुरोध करें:

सूडो छोड़ने से पहले पासवर्ड प्रयासों की संख्या निर्धारित करें, डिफ़ॉल्ट 3 है:

डिफ़ॉल्ट passwd_tries=5

सूडो द्वारा दोबारा पासवर्ड मांगने से पहले लगने वाले मिनटों की संख्या डिफ़ॉल्ट रूप से 5 है। यदि आप मान को 0 पर सेट करते हैं, तो यह हमेशा पासवर्ड मांगेगा, चाहे आपने कितने समय पहले उपयोगिता का उपयोग किया हो:

डिफ़ॉल्ट टाइमस्टैम्प_टाइमआउट=10

निम्नलिखित पैरामीटर निर्दिष्ट करता है कि यदि पासवर्ड गलत तरीके से दर्ज किया गया है तो सूडो कितने मिनट तक पासवर्ड के दोबारा टाइप होने की प्रतीक्षा करेगा:

डिफ़ॉल्ट passwd_timeout=10

आप पासवर्ड के लिए संकेत दिए जाने पर प्रदर्शित होने वाले संदेश को बदल सकते हैं:

डिफ़ॉल्ट पासप्रॉम्प्ट = "आपका पासवर्ड:"

आप रूट नहीं, बल्कि कोई अन्य उपयोगकर्ता निर्दिष्ट कर सकते हैं, जिससे इस उपयोग के लिए सभी कमांड निष्पादित किए जाएंगे:

डिफ़ॉल्ट runas_default='उपयोगकर्ता'

आप sudo से जुड़ने के सभी प्रयासों को लॉग कर सकते हैं:

डिफ़ॉल्ट लॉगफ़ाइल=/var/log/sudo

फिर हम लॉग के संचालन की जाँच करने का प्रयास करते हैं:

सुडो कैट /var/log/sudo

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

सूडो उपयोगकर्ताओं की स्थापना

हमने पहले ही उपयोगकर्ताओं के लिए क्रियाएं सेट करने के सिंटैक्स पर चर्चा की है, यहां सब कुछ उपनामों की तुलना में अधिक जटिल है, लेकिन आप इसका पता लगा सकते हैं। उदाहरण के लिए, आइए किसी भी उपयोगकर्ता को किसी भी होस्ट से sudo का उपयोग करने और किसी भी कमांड को निष्पादित करने की अनुमति दें:

सभी सभी = (सभी) सभी

ऐसी टीम बहुत असुरक्षित है; यह हर किसी को और हर चीज़ को अनुमति देती है। पहला ALL सभी उपयोगकर्ताओं को अनुमति देने के लिए है, दूसरा ALL सभी होस्ट के लिए है, तीसरा ALL किसी भी उपयोगकर्ता के रूप में लॉगिन की अनुमति देने के लिए है, और चौथा किसी भी कमांड को निष्पादित करने की अनुमति देने के लिए है। लेकिन एक अन्य निर्माण का प्रयोग अधिक बार किया जाता है:

%पहिया सभी = (सभी) सभी

इसका मतलब पिछले वाले जैसा ही है, केवल यहां हम सभी उपयोगकर्ताओं को सूडो का उपयोग करने की अनुमति नहीं देते हैं, बल्कि केवल उन्हें जो व्हील समूह के सदस्य हैं।

%पहिया सभी = (रूट) सभी

यहां हमने पहले ही उपयोगकर्ताओं की संभावित पसंद को केवल रूट उपयोगकर्ता तक सीमित कर दिया है। आप उपयोगकर्ता समूह को भी निर्दिष्ट कर सकते हैं जिसकी ओर से वह कमांड निष्पादित कर सकता है:

%व्हील सभी = (रूट:एडमिन) सभी

इसका मतलब यह है कि आप कमांड को रूट या एडमिन ग्रुप के किसी अन्य उपयोगकर्ता के रूप में चला सकते हैं। हम वे कमांड भी निर्दिष्ट कर सकते हैं जिन्हें उपयोगकर्ता निष्पादित कर सकता है। उदाहरण के लिए:

%व्हील ऑल = (रूट) /बिन/माउंट, /बिन/यूमाउंट

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

%पहिया सभी = (रूट) सभी
%व्हील ऑल = (रूट) NOPASSWD: /bin/mount, /bin/umount

आप उपयोगकर्ताओं को होस्ट द्वारा भी प्रतिबंधित कर सकते हैं, उदाहरण के लिए, हम केवल होस्ट1 से सूडो के उपयोग की अनुमति देते हैं:

%व्हील होस्ट1 = (रूट) सभी

यह विचार करना बाकी है कि उपनामों का उपयोग कैसे किया जाए। उपनाम निम्न प्रकार के हो सकते हैं:

  • उपयोगकर्ता_उपनाम- उन उपयोगकर्ताओं के उपनाम जो सुडो का उपयोग करेंगे;
  • रुनास_अलियास- उन उपयोगकर्ताओं के उपनाम जिनकी ओर से आदेश निष्पादित किए जाएंगे;
  • होस्ट_उपनाम- मेजबान उपनाम;
  • Cmnd_Alias- कमांड उपनाम;

उदाहरण के लिए, आइए चार उपनाम बनाएं और उन्हें अपने नियम में उपयोग करें:

उपयोगकर्ता_उपनाम उपयोगकर्ता = उपयोगकर्ता1,उपयोगकर्ता2,उपयोगकर्ता3
Runas_Alias ​​​​एडमिन = रूट, एडमिन
होस्ट_अलियास होस्ट = होस्ट1,होस्ट2
Cmd_Alias ​​​​Cmds = /bin/mount,/bin/umount

उपयोगकर्ता होस्ट = (प्रशासक) Cmds

इसका मतलब यह है कि उपयोगकर्ता सूची के उपयोगकर्ता होस्ट होस्ट पर Amdins उपयोगकर्ताओं की ओर से Cmds कमांड निष्पादित करने में सक्षम होंगे।

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

सभी सभी = (रूट) NOPASSWD: /bin/mount

आप NOEXEC ध्वज का उपयोग करके इस विशेष कमांड को निष्पादित होने से भी रोक सकते हैं:

सभी सभी = (रूट) NOEXEC /bin/mount

आप जांच सकते हैं कि /etc/sudores फ़ाइल सही तरीके से कॉन्फ़िगर की गई थी या नहीं और कमांड का उपयोग करके सभी बनाए गए नियम देख सकते हैं:

सभी स्थापित झंडे और सेटिंग्स यहां प्रदर्शित की गई हैं, साथ ही इस उपयोगकर्ता की अनुमतियां भी।

निष्कर्ष

इस लेख में हमने देखा कि लिनक्स में सुडो को कैसे कॉन्फ़िगर किया जाए। जैसा कि आप देख सकते हैं, इस तथ्य के बावजूद कि यह एक बहुत ही सरल उपयोगिता है, यह बहुत सारी उपयोगी सेटिंग्स छुपाती है जिन्हें आप अपने सिस्टम पर उपयोग कर सकते हैं। यदि आपके कोई प्रश्न हैं, तो टिप्पणियों में पूछें!

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

सुडो कमांड उपयोगकर्ताओं को रूट या अन्य उपयोगकर्ताओं के रूप में कमांड चलाने की अनुमति देता है। सूडो जिन नियमों का उपयोग यह तय करने के लिए करता है कि पहुंच प्रदान की जाए या नहीं, वे /etc/sudoers फ़ाइल में हैं; उनके लेखन की भाषा और उपयोग के उदाहरण सूडोअर्स(5) में विस्तार से वर्णित हैं।

/etc/sudoers फ़ाइल को संपादित करने के लिए, आपको visudo प्रोग्राम का उपयोग करना चाहिए, जो सिंटैक्स की जाँच करता है और इस प्रकार नियमों में त्रुटियों से बचाता है।

ज्यादातर मामलों में, सुडो का उचित कॉन्फ़िगरेशन सुपरयूज़र के रूप में चलना अनावश्यक बना देता है।

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

सूडो एक बहुत ही लचीला उपकरण है जो आपको प्रत्येक उपयोगकर्ता के लिए अलग से प्रशासनिक कार्य करने के अधिकारों को कॉन्फ़िगर करने की अनुमति देता है। उदाहरण के लिए, एक को सर्वर को पुनरारंभ करने की अनुमति दें, और दूसरे को फ़ाइलों और फ़ोल्डरों तक पहुंच अधिकार बदलने की क्षमता दें। /etc/sudoers फ़ाइल खोलें. यह या तो अपने पसंदीदा में फ़ाइल खोलने के लिए एक आदेश जारी करके किया जा सकता है पाठ संपादक, उदाहरण के लिए इस तरह:

# नैनो /etc/sudoers

या विसुडो उपयोगिता का उपयोग करना:
#विसुडो

बाद वाली विधि उपयोगकर्ता के डिफ़ॉल्ट संपादक में /etc/sudoers फ़ाइल खोलेगी, या यदि कोई निर्दिष्ट नहीं है, तो vi संपादक में। फ़ायदा यह विधियह है कि फ़ाइल को सहेजते समय सिंटैक्स के अनुपालन के लिए जाँच की जाएगी।

सबसे सरल विन्यास इस तरह दिखता है:

डिफ़ॉल्ट env_reset

#उपयोगकर्ता विशेषाधिकार विशिष्टता
जड़ ALL=(ALL) ALL
उपयोक्ता ALL=(ALL) ALL

यह कॉन्फ़िगरेशन उपयोगकर्ता को sudo कमांड चलाते समय रूट उपयोगकर्ता के सभी अधिकार देता है। डिफ़ॉल्ट env_resetकमांड को रूट के रूप में निष्पादित करते समय सभी उपयोगकर्ता चर को पूरी तरह से अक्षम कर देता है। सुरक्षा की दृष्टि से यह अच्छा है, लेकिन कभी-कभी समस्या पैदा हो जाती है। आप इस तरह एक पंक्ति जोड़कर किसी समूह या व्यक्ति द्वारा निजी चर का उपयोग करने की अनुमति दे सकते हैं:
डिफ़ॉल्ट:% व्यवस्थापक !env_reset

जो व्यवस्थापक समूह के सभी उपयोगकर्ताओं के लिए पर्यावरण चर सहेजेगा, या:
डिफ़ॉल्ट:उपयोगकर्ता env_keep=TZ

जो यूजर यूजर के लिए TZ वेरिएबल को सेव करेगा।

यदि सर्वर को लोगों के समूह द्वारा प्रशासित किया जाता है, तो ऐसा करना समझ में आता है:
%एडमिन सभी=(सभी) सभी

जैसा कि आप अनुमान लगा सकते हैं, यह प्रविष्टि व्यवस्थापक समूह के सभी सदस्यों को रूट एक्सेस प्रदान करती है।

आप प्रत्येक विशिष्ट उपयोगकर्ता को केवल विशिष्ट आदेशों तक पहुंच के लिए कॉन्फ़िगर कर सकते हैं। उदाहरण के लिए:
उपयोगकर्ता सभी = /बिन/माउंट, /बिन/किल

उपयोगकर्ता को किसी भी मशीन से माउंट और किल कमांड निष्पादित करने का अधिकार देगा, और:
उपयोगकर्ता2 mydebiancomp = /sbin/modprobe

उपयोगकर्ता2 को mydebiancomp से modprobe चलाने की अनुमति देगा। मुझे लगता है कि वाक्यविन्यास स्पष्ट है:
उपयोगकर्ता होस्ट = कमांड

जहां कमांड को पूरे पाथ के साथ लिखा जाता है। एक समूह के लिए, सब कुछ समान है, केवल "%" चिह्न जोड़ा गया है।

III.उन्नत सूडो सेटिंग्स।

सूडो की स्थापना करते समय उपनामों का एक समूह बनाना बहुत सुविधाजनक है। लगातार दोहराए जाने वाले आदेशों, उपयोगकर्ताओं और होस्ट से बचने के लिए, हम उन्हें समूहों में समूहित कर सकते हैं और उपनामों के प्रत्येक समूह के लिए नियम निर्धारित कर सकते हैं। उदाहरण के लिए इस प्रकार:

Cmnd_Alias ​​​​कमांड_एलियास = कमांड1, कमांड2, ... // कमांड उपनाम
Host_Alias ​​​​host_alias = होस्टनाम1, होस्टनाम2, ... // होस्ट उपनाम
User_Alias ​​​​user_alias = user1, user2, ... // उपयोगकर्ता उपनाम

किसी अन्य उपयोगकर्ता की ओर से कमांड निष्पादित करना भी संभव है। उदाहरण के लिए, इस प्रविष्टि के साथ:
उपयोगकर्ता सभी = (उपयोगकर्ता2, उपयोगकर्ता3) /usr/bin/ark

उपयोगकर्ता यू कुंजी का उपयोग करके आर्क कमांड को उपयोगकर्ता 2 या उपयोगकर्ता 3 के रूप में चला सकता है, इस तरह:
$ sudo -u user2 ark

डिफ़ॉल्ट रूप से, sudo 5 मिनट तक पासवर्ड याद रखता है। यदि आप यह नहीं चाहते हैं, तो प्रत्येक उपयोगकर्ता, समूह या उपनाम के लिए आप एक अलग नियम निर्धारित कर सकते हैं, उदाहरण के लिए जब:
डिफ़ॉल्ट:उपयोगकर्ता टाइमस्टैम्प_टाइमआउट=0

उपयोगकर्ता का पासवर्ड बिल्कुल याद नहीं रहेगा, लेकिन यदि:
डिफ़ॉल्ट:उपयोगकर्ता टाइमस्टैम्प_टाइमआउट=-1

पूरे अपटाइम के लिए याद रखा जाएगा.

पासवर्ड के बिना सूडो भी संभव है। इसके लिए एक समान डिज़ाइन है:
उपयोगकर्ता myubuntucomp = NOPASSWD: /bin/kill

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

रक्षक

ब्लॉग, ब्लॉग, ब्लॉग. मैक्सिम फक्किन इस बारे में बहुत कुछ जानता है।

ऑरेनबर्ग शहर का इंटरेक्टिव मानचित्र। प्रौद्योगिकी का उपयोग करके बनाया गया गूगल मानचित्रअपने स्वयं के विकास का उपयोग करना। संसाधन नया है, लेकिन पहले से ही काफी रोचक और उपयोगी है।

सूडोएक प्रोग्राम है जो प्रशासकों को उपयोगकर्ताओं को सीमित रूट अधिकार प्रदान करने और रूट गतिविधि का लॉग रखने की अनुमति देता है। मूल दर्शन लोगों को अपने कार्य सामान्य रूप से करने की अनुमति देते हुए यथासंभव कम अधिकार देना है। सु कमांड के साथ अंतर यह है कि उपयोगकर्ता रूट उपयोगकर्ता पासवर्ड के बजाय अपने खाते का पासवर्ड दर्ज करता है।

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

डेबियन 7 पर सूडो स्थापित करना

योग्यता सुडो स्थापित करें

स्थापना के दौरान एक कॉन्फ़िगरेशन फ़ाइल बनाई जाती है /etc/sudoersऔर निर्देशिका /etc/sudoers.d, जिसके बारे में हम थोड़ी देर बाद बात करेंगे।

सुडो कमांड विकल्प

-के- आपको टाइमआउट रीसेट करने की अनुमति देता है जब तक कि आपको दोबारा पासवर्ड दर्ज करने की आवश्यकता न हो। यदि आप कोई कमांड निर्दिष्ट करते हैं जिसके लिए पासवर्ड की आवश्यकता हो सकती है, तो उस कमांड के लिए टाइमआउट विशेष रूप से रीसेट किया जाएगा।
-एच- मानक आउटपुट पर एक छोटा सा संकेत प्रदर्शित किया जाएगा।
-वी- सूडो और प्लगइन्स का संस्करण प्रदर्शित किया जाएगा। यदि आप रूट के रूप में चलाते हैं, तो सभी सेटिंग्स प्रदर्शित होंगी।
-जीसमूह - आपको यह निर्दिष्ट करने की अनुमति देता है कि कमांड किस समूह से लॉन्च किया जाएगा।
-एच- उस निर्देशिका को निर्दिष्ट करता है जिसे निर्दिष्ट किया जाएगा पर्यावरणपरिवर्ती तारकघर।
-मैं- प्रारंभिक प्रविष्टि का अनुकरण करता है। यदि कमांड निर्दिष्ट नहीं है, तो यह आपको लॉग इन करेगा, ताकि आप sudo su का उपयोग करने के बजाय रूट बन सकें।
-एल[एल]- यदि कमांड निर्दिष्ट नहीं है, तो कॉलिंग उपयोगकर्ता (या -यू पैरामीटर के साथ निर्दिष्ट उपयोगकर्ता) के लिए उपलब्ध कमांड की एक सूची प्रदर्शित की जाएगी। यदि कोई कमांड निर्दिष्ट है और वह उपलब्ध है, तो कमांड का पूरा पथ और उपलब्ध पैरामीटर प्रदर्शित किए जाएंगे। यदि कमांड उपलब्ध नहीं है, तो सूडो स्थिति 1 के साथ बाहर निकल जाएगा। यदि आप -ll विकल्प का उपयोग करते हैं या -l दो बार निर्दिष्ट करते हैं, तो अधिक वर्बोज़ आउटपुट प्रारूप का उपयोग किया जाएगा।
-एस- SHELL पर्यावरण चर में निर्दिष्ट शेल लॉन्च किया जाएगा। यदि कोई कमांड निर्दिष्ट है, तो इसे निष्पादन के लिए रनिंग शेल में भेज दिया जाएगा।
-यू उपयोगकर्ता- -l पैरामीटर के साथ, आपको किसी विशिष्ट उपयोगकर्ता के विशेषाधिकार प्रदर्शित करने की अनुमति मिलती है। डिफ़ॉल्ट रूप से, रूट और सभी विशेषाधिकार वाले उपयोगकर्ताओं (ALL) के पास विशेषाधिकार सूचियों तक पहुंच होती है।
-यू उपयोगकर्ता- निर्दिष्ट कमांड निर्दिष्ट उपयोगकर्ता के रूप में चलाया जाएगा, रूट के रूप में नहीं।
-v- आपको टाइमआउट को 15 मिनट या जो भी sudoers में निर्दिष्ट है) तक बढ़ाने की अनुमति देता है, लेकिन किसी भी कमांड को निष्पादित नहीं करता है।

अधिकांश उपलब्ध विकल्प यहां सूचीबद्ध हैं, लेकिन सभी नहीं। देखना पूरी सूचीकमांड का उपयोग करें यार सूडो.

डेबियन 7 पर सुडो की स्थापना

निर्देशिका में फ़ाइलों में सभी उपयोगकर्ता सेटिंग्स सेट करने की अनुशंसा की जाती है /etc/sudoers.d, मुख्य फ़ाइल में नहीं /etc/sudoers. यानी आप डायरेक्टरी में किसी भी नाम से फाइल बना सकते हैं /etc/sudoers.dऔर इसमें आवश्यक सेटिंग्स पहले से ही सूचीबद्ध करें।

फ़ाइल /etc/sudoersउपयोगिता का उपयोग करके इसे संपादित करने की अनुशंसा की जाती है visudo, क्योंकि यह फ़ाइल को लॉक कर देता है और बंद करते समय निर्देशों की शुद्धता की जाँच करता है। visudoएक डिफ़ॉल्ट टेक्स्ट एडिटर का उपयोग करता है, जिसे ओवरराइड किया जा सकता है sudoersनिर्देश जैसे:

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

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

इसलिए, आधुनिक लिनक्स वितरण में, रूट खाते के बजाय, प्रशासन के लिए सुडो उपयोगिता का उपयोग किया जाता है।

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

सूडो क्या है?

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

सूडो का उपयोग कहाँ किया जाता है?

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

हालाँकि, प्रशासनिक विशेषाधिकारों की आवश्यकता वाले सभी प्रोग्राम स्वचालित रूप से सूडो के माध्यम से नहीं चलते हैं। आमतौर पर, आपको व्यवस्थापक अधिकारों के साथ मैन्युअल रूप से प्रोग्राम लॉन्च करना होगा।

व्यवस्थापक अधिकारों के साथ ग्राफिकल प्रोग्राम चलाना

आरंभ करना ग्राफ़िक्स प्रोग्रामव्यवस्थापक अधिकारों के साथ, आप प्रोग्राम लॉन्च डायलॉग का उपयोग कर सकते हैं, जिसे कीबोर्ड शॉर्टकट Alt + F2 के साथ डिफ़ॉल्ट रूप से कॉल किया जाता है।

मान लीजिए कि हमें दौड़ने की जरूरत है फ़ाइल मैनेजरनॉटिलस के पास GUI के माध्यम से सामग्री को किसी भी तरह बदलने का प्रशासकीय अधिकार है सिस्टम फ़ोल्डर. ऐसा करने के लिए, एप्लिकेशन लॉन्च संवाद में कमांड दर्ज करें

गक्सूडो नॉटिलस

gksudo को gksu से प्रतिस्थापित किया जा सकता है, और KDE उपयोगकर्ताओं को भी gksudo के स्थान पर kdesu लिखना चाहिए। आपसे अपना पासवर्ड दर्ज करने के लिए कहा जाएगा, और यदि आपके पास आवश्यक अधिकार हैं, तो नॉटिलस एक प्रशासक के रूप में शुरू होगा। आप केवल लॉन्च डायलॉग में लिखकर किसी भी ग्राफ़िकल सॉफ़्टवेयर को व्यवस्थापक अधिकारों के साथ लॉन्च कर सकते हैं

Gksudo<имя_команды>

व्यवस्थापक अधिकारों के साथ चल रहे एप्लिकेशन में काम करते समय अत्यधिक सावधान रहें। आप सिस्टम से किसी भी चेतावनी के बिना कोई भी ऑपरेशन कर सकते हैं, विशेष रूप से डिलीट सिस्टम फ़ाइलें, जिससे सिस्टम निष्क्रिय हो जाता है।

टर्मिनल में व्यवस्थापक अधिकारों के साथ प्रोग्राम चलाना

किसी टर्मिनल में व्यवस्थापक अधिकारों के साथ एक कमांड चलाने के लिए, बस उसके सामने sudo टाइप करें:

सूडो<команда>

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

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

इसके अतिरिक्त, Linux में चैनलों से संबंधित त्रुटियाँ आम हैं। किसी कमांड को निष्पादित करते समय

सूडो कैट टेस्ट.txt | ग्रेप टेक्स्ट > परिणाम.txt

साथ मूल अधिकारकेवल cat निष्पादित की जाएगी, इसलिए फ़ाइल परिणाम.txtपंजीकृत नहीं हो सकता. आपको या तो प्रत्येक कमांड से पहले sudo लिखना होगा, या अस्थायी रूप से सुपरयूज़र पर स्विच करना होगा।

एकाधिक कमांड चलाने के लिए सुपरयूज़र अधिकार प्राप्त करना

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

सुडो -एस सुडो -आई

यह आपको सुपरयूज़र मोड में डाल देगा (सुडो सेटिंग्स के माध्यम से लगाए गए प्रतिबंधों के साथ), जैसा कि प्रॉम्प्ट के अंत में # प्रतीक द्वारा दर्शाया गया है। कमांड लाइन. हालाँकि, ये आदेश कार्रवाई में su के समान हैं: - सूडो -एस- होम डायरेक्टरी को /रूट में नहीं बदलता, कॉलिंग उपयोगकर्ता की होम डायरेक्टरी होम ही रहती है सूडो -एस, जो आमतौर पर बहुत सुविधाजनक है। - सूडो -आई- होम डायरेक्टरी को /रूट में भी बदल देगा।

सामान्य उपयोगकर्ता मोड से बाहर निकलने के लिए, बाहर निकलें टाइप करें या बस Ctrl + D दबाएँ।

पारंपरिक रूट खाते और सु कमांड का उपयोग करना

रूट खाते को अनलॉक करने से अनावश्यक जोखिम होता है (रूट के तहत लगातार काम करने पर, आपके पास "अपने आप को पैर में कुल्हाड़ी मारने" के 100,500 तरीके होते हैं), और एक हमलावर के लिए आपके कंप्यूटर तक पहुंच प्राप्त करना भी आसान हो जाता है।

Ubuntu 11.04 और इससे पहले का संस्करण

रूट के रूप में लॉग इन करने के लिए, बस इसे एक पासवर्ड दें:

सुडो पासवार्ड रूट

फिर लॉगिन स्क्रीन पर, अन्य... पर क्लिक करें और आपके द्वारा सेट किया गया उपयोगकर्ता नाम (रूट) और पासवर्ड दर्ज करें।

उबंटू 11.10 और पुराना

संस्करण 11.10 से शुरू करके, लाइटडीएम लॉगिन प्रबंधक स्थापित किया गया था, और रूट के रूप में लॉग इन करना थोड़ा अधिक जटिल है।

1. रूट पासवर्ड सेट करें. टर्मिनल में दर्ज करें:

सुडो पासवार्ड रूट

2. "लॉगिन दर्ज करें" आइटम चालू करें। टर्मिनल में दर्ज करें:

Gksu gedit /etc/lightdm/lightdm.conf

फ़ाइल के अंत में जोड़ें:

अभिवादक-शो-मैन्युअल-लॉगिन = सत्य

3. रिबूट लाइटडीएम। टर्मिनल में दर्ज करें:

सूडो सेवा लाइटडीएम पुनरारंभ

बस, लॉगिन स्क्रीन पर "लॉगिन" आइटम दिखाई देगा। लॉगिन फ़ील्ड में हम "रूट" दर्ज करते हैं, पासवर्ड फ़ील्ड में - वह पासवर्ड जो हमने पहले चरण में सेट किया था।

रूट खाते को रिवर्स लॉक करने के लिए, आपको लाइटडीएम सेटिंग्स में बदलावों को वापस रोल करना होगा, और टर्मिनल में कमांड के साथ रूट खाते को लॉक करना होगा:

सुडो पासवार्ड -एल रूट

विभिन्न कमांड चलाने के लिए सूडो और अनुमतियाँ सेट करना

sudo आपको उपयोगकर्ताओं को प्रोग्राम के एक विशिष्ट सेट को चलाने की अनुमति देने या अक्षम करने की अनुमति देता है। एक्सेस अधिकारों से संबंधित सभी सेटिंग्स एक फ़ाइल में संग्रहीत की जाती हैं /etc/sudoers. यह कोई साधारण फाइल नहीं है. इसे संपादित करने के लिए ज़रूरी(सुरक्षा कारणों से) कमांड का उपयोग करें

सुडो विसुडो

डिफ़ॉल्ट रूप से, यह कहता है कि समूह के सभी सदस्य व्यवस्थापकसुडो तक पूर्ण पहुंच है, जैसा कि पंक्ति में दर्शाया गया है

%एडमिन सभी=(सभी) सभी

आप इस फ़ाइल के लिए सिंटैक्स और अनुकूलन विकल्पों के बारे में अधिक पढ़ सकते हैं

आदमी sudoers

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

उपयोगकर्ता को पासवर्ड डाले बिना कमांड निष्पादित करने की अनुमति दें

सिस्टम को कुछ कमांड के लिए पासवर्ड मांगने से रोकने के लिए, लाइन के बाद sudoers जोड़ना आवश्यक है # Cmnd उपनाम विशिष्टताएक पंक्ति जोड़ें जहां आप वांछित कमांड को अल्पविराम से अलग किए गए पूर्ण पथ के साथ सूचीबद्ध करते हैं (कमांड का पथ निष्पादित करके पाया जा सकता है) कौन सा कमांड_नाम:

# Cmnd उपनाम विनिर्देश Cmnd_Alias ​​​SHUTDOWN_CMDS = /sbin/shutdown, /usr/sbin/pm-hibernet, /sbin/reboot

और फ़ाइल के अंत में लाइन जोड़ें

उपयोक्तानाम ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS

ध्यान! उपरोक्त चरण आपके आदेश से पहले सुडो कमांड दर्ज करने की आवश्यकता को प्रतिस्थापित नहीं करते हैं

समानार्थी शब्द (उपनाम) बनाना

न केवल sudo के लिए पासवर्ड दर्ज करने से बचने के लिए, बल्कि sudo दर्ज करने की आवश्यकता से बचने के लिए, निम्न कार्य करें: अपने होम निर्देशिका में स्थित .bashrc फ़ाइल खोलें

नैनो ~/bashrc

और फ़ाइल के अंत में पंक्तियाँ जोड़ें

उर्फ रिबूट = "सुडो रिबूट" उर्फ ​​पावरऑफ = "सुडो पावरऑफ" उर्फ ​​पीएम-हाइबरनेट = "सुडो पीएम-हाइबरनेट" उर्फ ​​हाइबरनेट = "सुडो पीएम-हाइबरनेट" उर्फ ​​शटडाउन = "सुडो शटडाउन"

दर्ज किये गये पासवर्ड की वैधता अवधि

शायद आप पासवर्ड डाले बिना सूडो के चलने की अवधि को बदलना चाहते हैं। इसे /etc/sudoers (visudo) में निम्नलिखित कुछ जोड़कर आसानी से प्राप्त किया जा सकता है:

डिफ़ॉल्ट:फू टाइमस्टैम्प_टाइमआउट=20

यहां उपयोगकर्ता के लिए sudo है फू 20 मिनट के लिए पासवर्ड दर्ज करने की आवश्यकता के बिना वैध। यदि आप चाहते हैं कि sudo को हमेशा पासवर्ड की आवश्यकता हो, तो timestamp_timeout को 0 पर सेट करें।

सुडो पासवर्ड नहीं मांगता

पासवर्ड के बिना सूडो एक भयानक सुरक्षा छेद है, किसी को भी जो चाहे वह करने की अनुमति है। यदि आपने जानबूझकर इसकी अनुमति दी है, तो तुरंत इसे वापस उसी स्थिति में लौटा दें जैसा यह था।

हालाँकि, कुछ मामलों में, सूडो अचानक अपने आप पासवर्ड की आवश्यकता बंद कर देता है। यदि आप visudo करते हैं, तो आप इस पंक्ति की तरह कुछ देख सकते हैं, जिसे उपयोगकर्ता ने स्पष्ट रूप से नहीं जोड़ा है:

सभी सभी=(सभी) नोपासवर्ड:सभी

सबसे अधिक संभावना है, यह विनाशकारी लाइन एमटीएस या मेगाफोन से कनेक्ट मैनेजर जैसे प्रोग्राम को स्थापित करते समय जोड़ी गई थी। इस मामले में, इसे एक ऐसी पंक्ति में बदलने की आवश्यकता है जो केवल इस कनेक्ट मैनेजर को रूट के रूप में चलाने की अनुमति देती है, कुछ इस तरह:

उपयोक्तानाम ALL= NOPASSWD: /path/to/program

समस्या के समाधान के लिए अन्य विकल्प भी हैं, एक संक्षिप्त चर्चा।

एक्सेस अधिकारों का पृथक्करण लिनक्स और यूनिक्स जैसे ऑपरेटिंग सिस्टम में लागू सबसे महत्वपूर्ण सुरक्षा प्रतिमानों में से एक है। नियमित उपयोगकर्ता सीमित अधिकारों के साथ काम करते हैं; इससे उनके अपने पर्यावरण और पर्यावरण पर उनके प्रभाव की सीमा कम हो जाती है ऑपरेटिंग सिस्टमआम तौर पर।

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

यह मार्गदर्शिका आपको दिखाती है कि रूट विशेषाधिकारों को अपने सिस्टम में ठीक से और सुरक्षित रूप से कैसे स्थानांतरित किया जाए।

टिप्पणीनोट: यह ट्यूटोरियल Ubuntu 12.04 सर्वर पर चलाया गया था, लेकिन सबसे आधुनिक लिनक्स वितरणइसी तरह व्यवहार करेंगे.

ट्यूटोरियल पूरा करने के लिए, आपको पहले प्रारंभिक सर्वर सेटअप पूरा करना होगा:

सर्वर पर गैर-रूट उपयोगकर्ता के रूप में लॉगिन करें।

रूट अधिकार कैसे प्राप्त करें

सुपरयूज़र विशेषाधिकार प्राप्त करने के तीन मुख्य तरीके हैं, जिनकी कठिनाई अलग-अलग है।

रूट के रूप में लॉगिन करें

बेशक, सबसे आसान तरीका रूट के रूप में लॉग इन करना है।

यदि एसएसएच के माध्यम से कनेक्ट हो रहा है, तो आईपी पता या होस्टनाम प्रदान करें:

ssh रूट@IP_address_or_domain

संकेत मिलने पर, अपना रूट पासवर्ड दर्ज करें।

सु आदेश

लगातार प्रयोग करें खातारूट की अनुशंसा नहीं की जाती है, क्योंकि पूर्ण पहुंच अधिकार होने से गलती से सिस्टम को अपूरणीय क्षति हो सकती है।

इसलिए, सिस्टम में su कमांड है, जो एक सामान्य उपयोगकर्ता को किसी भी समय रूट अधिकार प्राप्त करने की अनुमति देता है।

टिप्पणी: सु कमांड स्थानापन्न उपयोगकर्ता के लिए संक्षिप्त है।

तो रूट करने के लिए, बस टाइप करें:

सिस्टम रूट उपयोगकर्ता का पासवर्ड मांगेगा, जिसके बाद यह रूट उपयोगकर्ता के शेल सत्र तक पहुंच खोल देगा।

रूट अधिकारों की आवश्यकता वाले सभी कार्यों को पूरा करने के बाद, आप पिछले सत्र पर वापस लौट सकते हैं:

सुडो कमांड

रूट विशेषाधिकार प्राप्त करने का अंतिम तरीका sudo कमांड है।

सुडो कमांड आपको नया सत्र खोले बिना विशिष्ट कमांड को रूट के रूप में चलाने की अनुमति देता है।

sudo Command_to_execute

टिप्पणी: su के विपरीत, sudo कमांड रूट पासवर्ड नहीं मांगता है, बल्कि कमांड को कॉल करने वाले उपयोगकर्ता का पासवर्ड मांगता है।

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

विसुडो क्या है?

Sudo कमांड को /etc/sudoers फ़ाइल का उपयोग करके कॉन्फ़िगर किया गया है।

महत्वपूर्ण!नियमित पाठ संपादक का उपयोग करके इस फ़ाइल को कभी भी संपादित न करें! ऐसा करने के लिए आपको विसुडो का उपयोग करना चाहिए।

इस फ़ाइल में जोड़ा गया गलत सिंटैक्स उपयोगकर्ताओं के बीच अधिकारों के वितरण को पूरी तरह से तोड़ सकता है। इसलिए, इस फ़ाइल के साथ काम करने के लिए visudo कमांड का उपयोग किया जाता है।

विसुडो कमांड एक फ़ाइल को नियमित टेक्स्ट एडिटर में खोलता है, लेकिन फ़ाइल को सहेजते समय इसके सिंटैक्स की जाँच करता है। यह कॉन्फ़िगरेशन त्रुटियों से बचा जाता है.

आमतौर पर, visudo vi संपादक में /etc/sudoers फ़ाइल खोलता है। उबंटू प्रणाली पर, विसुडो नैनो का उपयोग करता है।

उबंटू सिस्टम पर vi का उपयोग करने के लिए विसुडो कमांड को कॉन्फ़िगर करने के लिए, कमांड चलाएँ:

सुडो अद्यतन-विकल्प--कॉन्फिग संपादक

वैकल्पिक संपादक के लिए 3 विकल्प हैं (/usr/bin/editor प्रदान करते हुए)।
चयन पथ प्राथमिकता स्थिति
————————————————————
* 0 /बिन/नैनो 40 ऑटो मोड
1 / बिन / नैनो 40 मैनुअल मोड
2 /usr/bin/vim.basic 30 मैनुअल मोड
3 /usr/bin/vim.tiny 10 मैनुअल मोड

आप जिस टेक्स्ट एडिटर का उपयोग करना चाहते हैं, उससे संबंधित संख्या का चयन करें।

CentOS पर, इस मान को ~/.bashrc में निम्न पंक्ति जोड़कर बदला जा सकता है:

निर्यात संपादक=/पथ/से/संपादक

अपनी सेटिंग अपडेट करने के लिए, दर्ज करें:

/etc/sudoers खोलने के लिए, दर्ज करें:

Sudoers फ़ाइल का संपादन

तो, आपकी पसंद के टेक्स्ट एडिटर में, sudoers फ़ाइल स्क्रीन पर खुल जाएगी।

नीचे फ़ाइल पैरामीटर हैं उबंटू सिस्टम 12.04 (टिप्पणी की गई पंक्तियाँ छोड़ दी गई हैं, और प्रारंभिक सर्वर सेटअप के दौरान किए गए परिवर्तन सहेजे गए हैं)।

टिप्पणी: सुडोअर्स फ़ाइल सेंटओएस सिस्टमबहुत अधिक विशाल; इसके कुछ पैरामीटर इस मैनुअल में वर्णित नहीं हैं।

डिफ़ॉल्ट env_reset
डिफ़ॉल्ट सुरक्षित_पथ = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
जड़ ALL=(ALL:ALL) ALL
डेमो ALL=(ALL:ALL) ALL
%एडमिन सभी=(सभी) सभी
%sudo ALL=(ALL:ALL) ALL

मानक पैरामीटर

पहली पंक्ति, डिफ़ॉल्ट env_reset, सभी उपयोगकर्ता चर को हटाने के लिए टर्मिनल वातावरण को रीसेट करती है। इस सुरक्षा उपाय का उपयोग सूडो सत्र से पर्यावरण चर के संभावित हानिकारक प्रभावों को खत्म करने के लिए किया जाता है।

दूसरा पैरामीटर, डिफॉल्ट्स सिक्योर_पाथ=…, पथ सेट करता है (PATH, dots फाइल सिस्टम, जिसमें ओएस सुडो संचालन के लिए अनुप्रयोगों की तलाश करेगा)। यह संभावित खतरनाक उपयोगकर्ता पथों को उपयोग करने से रोकता है।

उपयोगकर्ता अधिकार सेटिंग

तीसरे और चौथे पैरामीटर से आपको परिचित होना चाहिए। आपने चौथी पंक्ति स्वयं जोड़ी, लेकिन शायद आपने इसका विस्तार से परीक्षण नहीं किया।

  • डेमो ALL=(ALL:ALL) ALL
  • पहला फ़ील्ड उस उपयोगकर्ता का नाम निर्दिष्ट करता है जिस पर यह नियम लागू किया जाना चाहिए (इस मामले में यह डेमो है)।
  • पहले ALL का मतलब है कि नियम सभी होस्ट पर लागू होगा।
  • दूसरे ALL का अर्थ है कि निर्दिष्ट उपयोगकर्ता किसी भी उपयोगकर्ता के सत्र में कमांड चला सकता है।
  • तीसरे ALL का अर्थ है कि निर्दिष्ट उपयोगकर्ता किसी भी समूह में कमांड चला सकता है।
  • अंतिम ALL इंगित करता है कि ये नियम सभी आदेशों पर लागू होने चाहिए।

इसका मतलब यह है कि रूट और डेमो उपयोगकर्ता अपने पासवर्ड के साथ सूडो का उपयोग करके सभी कमांड चला सकते हैं।

समूह विशेषाधिकार सेटिंग्स

अंतिम दो पंक्तियाँ उपयोगकर्ता विशेषाधिकार सेटिंग्स के समान हैं, लेकिन वे समूह अधिकारों के लिए ज़िम्मेदार हैं।

समूह के नाम % चिह्न से प्रारंभ होते हैं.

जैसा कि आप देख सकते हैं, व्यवस्थापक समूह किसी भी उपयोगकर्ता या होस्ट के रूप में किसी भी कमांड को निष्पादित कर सकता है। सूडो समूह के पास समान अधिकार हैं, लेकिन यह किसी भी समूह की तरह कमांड भी चला सकता है।

कस्टम नियम

एक बार जब आप मूल फ़ाइल सिंटैक्स से परिचित हो जाएं, तो स्वयं कुछ नियम बनाने का प्रयास करें।

उपनाम बनाना

Sudoers फ़ाइल को विभिन्न उपनामों का उपयोग करके अधिक आसानी से संरचित किया जा सकता है।

उदाहरण के लिए, आप संयुक्त अधिकारों के साथ तीन अलग-अलग उपयोगकर्ता समूह बना सकते हैं:

उपयोगकर्ता_उर्फ ग्रुपोन = एबी, ब्रेंट, कार्ल
User_Alias ​​​​GROUPTWO = ब्रेंट, डोरिस, एरिक,
उपयोगकर्ता_उर्फ ग्रुपथ्री = डोरिस, फ़ेलिशिया, ग्रांट

समूह के नाम बड़े अक्षर से शुरू होने चाहिए। इसके बाद, आप GROUPTWO उपयोगकर्ताओं को apt-get डेटाबेस को बदलने का अधिकार दे सकते हैं:

ग्रुपवू सभी = /usr/bin/apt-अपडेट प्राप्त करें

यदि नियम उपयोगकर्ता और समूह को निर्दिष्ट नहीं करता है, तो sudo डिफ़ॉल्ट रूप से रूट हो जाता है।

फिर आप ग्रुपथ्री उपयोगकर्ताओं को मशीन को बंद करने और पुनः आरंभ करने की अनुमति दे सकते हैं; ऐसा करने के लिए आपको एक कमांड उपनाम बनाना होगा:

Cmnd_Alias ​​​​पावर = /sbin/शटडाउन, /sbin/halt, /sbin/reboot, /sbin/restart
ग्रुपथ्री ऑल = पावर

पावर कमांड उपनाम में मशीन को बंद करने और पुनः आरंभ करने के लिए आदेश शामिल हैं।

आप एक उपनाम, Run as भी बना सकते हैं, जो नियम के उस भाग को प्रतिस्थापित करता है जो उस उपयोगकर्ता को निर्दिष्ट करता है जिसके सत्र में कमांड निष्पादित की जानी चाहिए।

Runas_Alias ​​​​वेब = www-डेटा, अपाचे
ग्रुपोन ऑल = (वेब) ऑल

अब GROUPONE समूह का कोई भी उपयोगकर्ता www-data या apache उपयोगकर्ता सत्रों में कमांड निष्पादित कर सकता है।

टिप्पणीध्यान दें: याद रखें कि नियम टकराव की स्थिति में पहले से बनाए गए नियमों को प्राथमिकता दी जाती है।

अवरोधन नियम

यह नियंत्रित करने के कई तरीके हैं कि सूडो कैसे व्यवहार करता है और कॉल का जवाब कैसे देता है।

उदाहरण के लिए, mlocate पैकेज के साथ संयोजन में अपडेटेडबी कमांड अपेक्षाकृत हानिरहित है। ताकि एक सामान्य उपयोगकर्ता पासवर्ड दर्ज किए बिना सुपरयूजर विशेषाधिकारों के साथ इसे निष्पादित कर सके, आप निम्नलिखित नियम बना सकते हैं:

ग्रुपोन ऑल = NOPASSWD: /usr/bin/updatedb

NOPASSWD कमांड का मतलब है कि सिस्टम पासवर्ड के लिए संकेत नहीं देगा। एक PASSWD कमांड भी है जो विपरीत व्यवहार करता है और डिफ़ॉल्ट रूप से उपयोग किया जाता है।

NOPASSWD पूरे नियम पर लागू होता है जब तक कि PASSWD कमांड इसे ओवरराइड नहीं करता। उदाहरण के लिए, पंक्ति इस तरह दिख सकती है:

ग्रुपवू ऑल = NOPASSWD: /usr/bin/updatedb, PASSWD: /bin/kill

एक अन्य उपयोगी कमांड NOEXEC है, जिसका उपयोग कुछ कार्यक्रमों के खतरनाक व्यवहार को रोकने के लिए किया जाता है। उदाहरण के लिए, कुछ कमांड, जैसे कम, अन्य कमांड को कॉल कर सकते हैं:

यह कमांड उपयोगकर्ता के विशेषाधिकारों को कम करते हुए किसी भी कमांड को निष्पादित करता है, जो बहुत खतरनाक हो सकता है।

इस व्यवहार को रोकने के लिए, आप निम्न पंक्ति का उपयोग कर सकते हैं:

उपयोक्तानाम ALL = NOEXEC: /usr/bin/less

अधिक जानकारी

इस अनुभाग में विभिन्न शामिल हैं उपयोगी सुझावसूडो के साथ काम करने पर।

यदि आपने पैरामीटर के रूप में रन में किसी उपयोगकर्ता या समूह को निर्दिष्ट किया है, तो आप क्रमशः -u और -g झंडे का उपयोग करके उस उपयोगकर्ता के सत्र में कमांड चला सकते हैं:

sudo -u run_as_user कमांड
sudo -g run_as_group कमांड

डिफ़ॉल्ट रूप से, सूडो कुछ समय के लिए क्रेडेंशियल्स को एक टर्मिनल में संग्रहीत करता है। इसका मतलब है कि इस अवधि के दौरान आपको दोबारा अपना पासवर्ड दर्ज नहीं करना पड़ेगा।

यदि सुरक्षा कारणों से आप इस टाइमर को रीसेट करना चाहते हैं, तो कमांड का उपयोग करें:

उपयोगकर्ता के अधिकार जानने के लिए, दर्ज करें:

यह कमांड किसी दिए गए उपयोगकर्ता के लिए /etc/sudoers फ़ाइल में निर्दिष्ट सभी अनुमतियों को सूचीबद्ध करेगा।

यदि कोई सामान्य उपयोगकर्ता सूडो उपसर्ग के बिना व्यवस्थापक कमांड चलाने का प्रयास करता है, तो कमांड काम नहीं करेगा। कमांड को दोबारा टाइप करने से बचने के लिए, बैश फ़ंक्शन का उपयोग करें जो कमांड को दोहराता है:

एक दोहरा विस्मयादिबोधक बिंदु अंतिम आदेश को दोहराएगा।

निष्कर्ष

अब आपके पास sudoers फ़ाइल और रूट अनुमतियों के साथ बुनियादी कौशल हैं।

सुपरयूज़र अधिकारों के साथ काम करते समय, याद रखें कि सुरक्षा कारणों से नियमित उपयोगकर्ताओं के पास डिफ़ॉल्ट रूप से ऐसे अधिकार नहीं होते हैं। मूल अधिकारों का दुरुपयोग न करें, अन्यथा आप गलती से सिस्टम को अपूरणीय क्षति पहुंचा सकते हैं।

टैग: ,
मित्रों को बताओ