कार्यकारी सारांश: "रूट" व्यवस्थापक खाते का वास्तविक नाम है। "सुडो" एक कमांड है जो आम उपयोगकर्ताओं को प्रशासनिक कार्य करने की अनुमति देता है। "सूडो" एक उपयोगकर्ता नहीं है।
लंबा जवाब:
"रूट" (उर्फ "सुपरसुसर") सिस्टम प्रशासक खाते का नाम है। नाम की उत्पत्ति थोड़ी पुरातन है, लेकिन इससे कोई फर्क नहीं पड़ता।
रूट उपयोगकर्ता के पास यूजर आईडी 0 है और नाममात्र में असीमित विशेषाधिकार हैं। रूट किसी भी फ़ाइल का उपयोग कर सकता है, किसी भी प्रोग्राम को चला सकता है, किसी भी सिस्टम कॉल को निष्पादित कर सकता है और किसी भी सेटिंग को संशोधित कर सकता है। (लेकिन नीचे देखें)।
"Sudo" कमांड के आविष्कार से पहले, यदि आप प्रशासनिक कार्य करना चाहते थे, तो आपको रूट के रूप में लॉगिन करना होगा, या तो किसी तरह लॉगिन प्रॉम्प्ट प्राप्त करना होगा, या su
कमांड के साथ ("su" स्थानापन्न उपयोगकर्ता के लिए छोटा होगा।) of
यह एक परेशानी का एक सा है, और यह भी आप उपयोगकर्ताओं को आंशिक प्रशासनिक अधिकार नहीं देते। तो "सुडो" कमांड ("स्थानापन्न उपयोगकर्ता के लिए संक्षिप्त") का आविष्कार किया गया था।
"Sudo" कमांड आपको सुपरयुसर विशेषाधिकारों के साथ कमांड निष्पादित करने देता है जब तक कि आपका यूजर आईडी sudoers फ़ाइल में है, आपको आवश्यक प्राधिकरण देता है।
इसलिए, उदाहरण के sudo vi /etc/hosts
लिए , यदि आप रूट के रूप में चल रहे थे, तो आप मेजबान फ़ाइल को संपादित करने की अनुमति देंगे। आपको रूट पासवर्ड की भी आवश्यकता नहीं है, बस अपना लॉगिन पासवर्ड।
और निश्चित रूप से, sudo su
आप बस जड़ बनने के लिए अनुमति देगा। परिणाम वही है जैसे आपने रूट के रूप में लॉग इन किया था या su
कमांड को निष्पादित किया था, सिवाय इसके कि आपको रूट पासवर्ड जानने की आवश्यकता नहीं है लेकिन आपको sudoers फ़ाइल में होना चाहिए।
Sudoers फ़ाइल यह निर्धारित करती है कि कौन sudo कमांड का उपयोग कर सकता है और वे इसके साथ क्या कर सकते हैं।
Sudoers फ़ाइल वह है जो आपको कई प्रशासक देती है। प्रभावी रूप से, आपके व्यवस्थापक मूल हैं, साथ ही sudoers फ़ाइल में सूचीबद्ध प्रत्येक व्यक्ति। Sudoers फ़ाइल के बिना, केवल व्यवस्थापक रूट है।
वास्तव में, ऐसे संगठनों में जहां कोई और आपके लिए आपके कंप्यूटर का संचालन करता है, यह आपके अपने कंप्यूटर के रूट पासवर्ड को न जानने के लिए काफी सामान्य है - जब तक आप sudoers फ़ाइल में हैं, तब तक कोई फर्क नहीं पड़ता।
जिस कंपनी में मैंने काम किया था, एक गिन्नोर्म सर्वर फ़ार्म के साथ, बहुत कम, बहुत कम लोगों को रूट पासवर्ड पता था। इसके बजाय, एक डेटाबेस था जिसे किस सर्वर पर काम करने की अनुमति थी। एक स्वचालित प्रक्रिया आपको उन सर्वरों की sudoers फ़ाइलों में जोड़ देगी जिन्हें आप एक्सेस करने के लिए अधिकृत थे, और जब आपका प्राधिकरण समाप्त हो जाएगा तो आपको हटा देगा।
Restrict एक और बात: आधुनिक यूनिक्स संस्करण अब भी सीमित कर सकते हैं कि रूट उपयोगकर्ता क्या कर सकता है।
SELinux (सुरक्षा संवर्धित लिनक्स) के तहत , प्रभावी रूप से एक एक्सेस कंट्रोल सूची है जो यह निर्धारित करती है कि कौन सा प्रोग्राम क्या कर सकता है, और यहां तक कि रूट उन प्रतिबंधों को नहीं पा सकता है।
Apple के सिस्टम इंटीग्रिटी प्रोटेक्शन (SIP) (उर्फ "रूटलेस") सिस्टम के तहत , कुछ फाइलों और निर्देशिकाओं को बंद कर दिया जाता है, ताकि उपयुक्त श्वेतसूची में केवल एप्लिकेशन ही उन तक पहुंच सकें।
ये सिस्टम उस सिस्टम को उस स्थिति से बचाने के लिए मौजूद हैं, जहाँ कोई दुर्भावनापूर्ण उपयोगकर्ता रूट एक्सेस प्राप्त करने का प्रबंधन करता है। (या कुछ मामलों में, उपयोगकर्ताओं को अपने एम्बेडेड उपकरणों को जेलब्रेक करने से रोकने के लिए।) स्पष्ट कारणों के लिए, रूट प्रतिबंधों के साथ भी, इन प्रतिबंधों को दरकिनार करना बेहद मुश्किल है।
Piece "लॉगिन:" प्रांप्ट यूनिक्स इतिहास का एक और पुरातन अंश है, जब हम सभी विंडो सिस्टम के बजाय धारावाहिक लाइनों पर एएससीआई टर्मिनलों का उपयोग करते हैं, तब वापस डेटिंग करते हैं। आप अभी भी login
किसी भी टर्मिनल विंडो में टाइप करके , या कहीं से भी आपके कंप्यूटर के लिए एक ssh (या टेलनेट या rsh) खोलकर "लॉगिन:" संकेत प्राप्त कर सकते हैं। यदि आप चाहते हैं तो आप वहां से किसी अन्य उपयोगकर्ता के रूप में लॉग इन कर सकते हैं। (और यदि आपके कंप्यूटर में सीरियल पोर्ट हैं, तो आप अभी भी उन पर लॉगिन की अनुमति देने के लिए इसे कॉन्फ़िगर कर सकते हैं।)
Programs व्यक्तिगत कार्यक्रमों के लिए रूट एक्सेस दिया जाना भी संभव है। ये प्रोग्राम कुछ भी कर सकते हैं जो एक उपयोगकर्ता को रूट एक्सेस के साथ कर सकते हैं, यहां तक कि जब एक साधारण उपयोगकर्ता द्वारा चलाया जाता है। ये आमतौर पर विशिष्ट कार्यों तक सीमित होते हैं। उदाहरण के लिए, क्रॉस्टैब प्रोग्राम में रूट विशेषाधिकार हैं ताकि यह क्रोन टेबल को संपादित कर सके। जाहिर है, "सुडो" में मूल विशेषाधिकार हैं ताकि यह वही कर सके जो वह करता है।
Cover मैं एक और बिंदु को कवर करने जा रहा हूं जिसे मैंने पहले से अधिक चमक दिया था। मैं "व्यवस्थापक" और "रूट" का परस्पर उपयोग कर रहा हूं, लेकिन अन्य प्रकार के प्रशासक हैं। इन्हें अक्सर "भूमिका खाते" कहा जाता है, जिसका कहना है कि ये खाते वास्तविक मनुष्यों के नहीं हैं, बल्कि सिस्टम पर कुछ विशिष्ट भूमिका निभाने के लिए मौजूद हैं। यदि आप /etc/passwd
अपने सिस्टम की फ़ाइल देख लेते हैं , तो आपको दर्जनों और ऐसे दर्जनों खाते मिलेंगे।
उदाहरण के लिए, यदि mysql आपके सिस्टम पर स्थापित किया गया था, तो एक "mysql" उपयोगकर्ता होगा, और डेटाबेस की सभी फाइलें, कॉन्फिग फाइल, और इसके बाद सभी उस उपयोगकर्ता के स्वामित्व में होंगे। केवल उस उपयोगकर्ता के पास फ़ाइलों तक पहुँचने और mysql सर्वर को चलाने के लिए आवश्यक अनुमतियाँ होंगी। एक अर्थ में, वह उपयोगकर्ता एक व्यवस्थापक खाता होगा, लेकिन केवल mysql के लिए।
यदि आपको डेटाबेस प्रशासनिक कार्यों को करने की आवश्यकता है, तो आप या तो su mysql
कमांड के साथ "mysql" बन जाएंगे , या उपयोग करेंगे sudo
जहां sudoers फ़ाइल आपको उन विशिष्ट कमांड के लिए mysql विशेषाधिकार देगी।