- 1 1. परिचय: sudo क्या है?
- 2 2. sudo कमांड का मूल उपयोग
- 3 3. sudoers फ़ाइल और एक्सेस कंट्रोल
- 4 4. उन्नत sudo उपयोग
- 5 5. सुरक्षा और सर्वोत्तम प्रथाएं
- 6 6. सामान्य त्रुटियां और समस्या निवारण
- 7 7. अक्सर पूछे जाने वाले प्रश्न
- 7.1 प्रश्न 1. sudo और su के बीच क्या अंतर है?
- 7.2 प्रश्न 2. sudo के लिए root पासवर्ड की आवश्यकता है?
- 7.3 प्रश्न 3. sudo लॉग कहां संग्रहीत होते हैं?
- 7.4 प्रश्न 4. मैंने sudoers फाइल तोड़ दी। मुझे क्या करना चाहिए?
- 7.5 प्रश्न 5. क्या मैं sudo के बिना root विशेषाधिकार प्राप्त कर सकता हूं?
- 7.6 प्रश्न 6. sudo के साथ GUI ऐप्स चलाना सुरक्षित है?
- 8 8. सारांश
1. परिचय: sudo क्या है?
sudo का मूल अर्थ और भूमिका
लिनक्स और यूनिक्स-जैसे सिस्टम में, sudo सबसे महत्वपूर्ण कमांडों में से एक है।
sudo शब्द “superuser do” के लिए खड़ा है, और यह एक टूल है जो उपयोगकर्ताओं को प्रशासनिक (रूट) विशेषाधिकारों के साथ अस्थायी रूप से कमांड निष्पादित करने की अनुमति देता है।
सामान्य रूप से, सामान्य उपयोगकर्ताओं को पूरे सिस्टम को प्रभावित करने वाली ऑपरेशनों को करने की अनुमति नहीं होती, जैसे पैकेज इंस्टॉल करना या सिस्टम सेटिंग्स को संशोधित करना। हालांकि, sudo कमांड का उपयोग करके, इन विशेषाधिकार वाली ऑपरेशनों को नियंत्रित और सीमित तरीके से निष्पादित किया जा सकता है।
उदाहरण के लिए, निम्नलिखित कमांड apt को रूट विशेषाधिकारों के साथ चलाता है:
sudo apt update
इस तरह, sudo प्रशासनिक विशेषाधिकारों का उपयोग करने के लिए एक सुरक्षित तंत्र के रूप में महत्वपूर्ण भूमिका निभाता है, जो सिस्टम सुरक्षा और उपयोगिता दोनों को संतुलित करता है।
sudo और su के बीच का अंतर
sudo के समान उद्देश्य वाली एक अन्य कमांड su है, लेकिन दोनों के बीच स्पष्ट अंतर हैं।
su“substitute user” के लिए खड़ा है और इसका उपयोग किसी अन्य उपयोगकर्ता (आमतौर पर रूट) में पूरी तरह से स्विच करने के लिए किया जाता है। जब आपsuका उपयोग करते हैं, तो आप उस सेशन के लिए उस उपयोगकर्ता के रूप में कार्य करते हैं।- दूसरी ओर,
sudoआपको अपने वर्तमान उपयोगकर्ता के रूप में बने रहते हुए एकल कमांड के लिए अस्थायी रूप से प्रशासनिक विशेषाधिकार उधार लेने की अनुमति देता है।
संक्षेप में, su सेशन स्तर पर उपयोगकर्ताओं को स्विच करता है, जबकि sudo कमांड स्तर पर विशेषाधिकारों को ऊंचा करता है। सुरक्षा के दृष्टिकोण से, sudo कमांड इतिहास को ट्रैक करना आसान बनाता है, यही कारण है कि यह आधुनिक लिनक्स वितरणों में मानक दृष्टिकोण बन गया है।
sudo का सामान्य रूप से उपयोग करने वाले लिनक्स वितरण
sudo कमांड कई लिनक्स वितरणों में डिफ़ॉल्ट रूप से सक्षम होता है, विशेष रूप से निम्नलिखित:
- उबंटू-आधारित सिस्टम (उबंटू, लिनक्स मिंट, आदि) → रूट अकाउंट डिफ़ॉल्ट रूप से अक्षम होता है, और सभी प्रशासनिक कार्य sudo के माध्यम से किए जाते हैं।
- डेबियन-आधारित सिस्टम → sudo को मैन्युअल रूप से सक्षम करने की आवश्यकता हो सकती है, लेकिन यह सुरक्षा की सर्वोत्तम प्रथा के रूप में अक्सर अनुशंसित होता है।
- फेडोरा, सेंटओएस, और रेड हैट-आधारित सिस्टम → सीधा रूट एक्सेस संभव है, लेकिन sudo का उपयोग अभी भी सामान्य है।
उबंटू में विशेष रूप से, रूट अकाउंट डिफ़ॉल्ट रूप से अक्षम होता है, और सभी प्रशासनिक ऑपरेशन sudo का उपयोग करके किए जाने चाहिए। इसी कारण से, उबंटू उपयोगकर्ताओं के लिए sudo को समझना आवश्यक है।
लोग “sudo sudo” क्यों खोजते हैं?
कीवर्ड “sudo sudo” पहली नजर में अतिरिक्त लग सकता है, लेकिन इसे निम्नलिखित कारणों से अक्सर खोजा जाता है:
- शुरुआती जो
sudoके अर्थ और उपयोग को जोर देने या बेहतर समझने की कोशिश कर रहे हैं - उपयोगकर्ता जो
sudo: sudo: command not foundजैसे त्रुटियों का सामना कर रहे हैं - स्क्रिप्ट्स या पाइपलाइनों में
sudoको गलती से दो बार उपयोग किए गए उदाहरणों को देखने के बाद भ्रम
इन खोज इरादों को ध्यान में रखते हुए, निम्नलिखित अनुभाग sudo के सही उपयोग, कॉन्फ़िगरेशन विधियों, और समस्या निवारण तकनीकों की विस्तार से व्याख्या करेंगे।
2. sudo कमांड का मूल उपयोग
sudo का मूल सिंटैक्स
sudo का मूल सिंटैक्स बहुत सरल है:
sudo [options] command
उदाहरण के लिए, सिस्टम की पैकेज जानकारी को अपडेट करने के लिए:
sudo apt update
इसका अर्थ है कि ** apt update कमांड रूट विशेषाधिकारों के साथ निष्पादित किया जाता है**।
पासवर्ड प्रमाणीकरण और क्रेडेंशियल कैशिंग
जब आप sudo का उपयोग पहली बार करते हैं, या निश्चित समय बीत जाने के बाद, सिस्टम आपको अपना उपयोगकर्ता पासवर्ड दर्ज करने के लिए प्रॉम्प्ट करेगा। यह सुरक्षा तंत्र दुर्घटनीय दुरुपयोग या अनधिकृत पहुंच को रोकने में मदद करता है।
पासवर्ड दर्ज करने के बाद, यह एक निश्चित अवधि (उबंटू पर डिफ़ॉल्ट रूप से 5 मिनट) के लिए कैश हो जाता है। इस दौरान, बाद के sudo कमांड पासवर्ड को दोबारा दर्ज करने की आवश्यकता नहीं होती। इस टाइमआउट को sudoers फाइल में समायोजित किया जा सकता है।
सामान्य रूप से उपयोग किए जाने वाले विकल्प
sudo कई विकल्प प्रदान करता है जो ऑपरेशनों को अधिक लचीला और सुविधाजनक बनाते हैं। नीचे कुछ सबसे सामान्य विकल्प दिए गए हैं।
-u (किसी अन्य उपयोगकर्ता के रूप में चलाएं)
डिफ़ॉल्ट रूप से, कमांड्स रूट के रूप में चलाए जाते हैं, लेकिन -u विकल्प के साथ, आप किसी भी निर्दिष्ट उपयोगकर्ता के रूप में कमांड चला सकते हैं।
sudo -u www-data whoami
आउटपुट www-data होगा, जो पुष्टि करता है कि कमांड www-data उपयोगकर्ता के रूप में चलाया गया था।
-s (Start a Shell)
निम्नलिखित कमांड रूट विशेषाधिकारों के साथ एक अस्थायी शेल खोलता है:
sudo -s
रूट शेल में काम करते समय सावधान रहें।
-i (Simulate a Full Root Login)
यह विकल्प एक अधिक पूर्ण रूट वातावरण बनाता है। पर्यावरण वेरिएबल्स रूट के वेरिएबल्स में बदल दिए जाते हैं, जिससे रूट सत्र बनता है जो सीधे रूट में लॉगिन करने के समान है।
sudo -i
-l (List Allowed Commands)
आप sudo के साथ चलाने की अनुमति वाले कमांड्स की जाँच कर सकते हैं:
sudo -l
यह अनुमति सेटिंग्स और सुरक्षा प्रतिबंधों की पुष्टि करने में उपयोगी है।
शुरुआती लोगों के लिए महत्वपूर्ण बिंदु
- आपको
sudoके बाद एक स्पेस शामिल करना आवश्यक है। उदाहरण के लिए,sudoaptगलत है। - कई कमांड्स चलाते समय, आपको पूरे कमांड को कोट करना होगा या उन्हें सेमीकोलन से अलग करना होगा.
sudoके साथ GUI एप्लिकेशन लॉन्च करने से कॉन्फ़िगरेशन फ़ाइलें क्षतिग्रस्त हो सकती हैं, इसलिए इसे आमतौर पर टालना चाहिए (उदाहरण के लिए,sudo gedit)।
3. sudoers फ़ाइल और एक्सेस कंट्रोल
sudoers फ़ाइल क्या है?
sudo कमांड के व्यवहार को नियंत्रित करने वाली कॉन्फ़िगरेशन फ़ाइल /etc/sudoers है। यह फ़ाइल कौन sudo का उपयोग करके कौन से कमांड चला सकता है को परिभाषित करती है।
उदाहरण के लिए, यह सूक्ष्म एक्सेस कंट्रोल की अनुमति देता है जैसे कि किसी उपयोगकर्ता को केवल विशिष्ट कमांड्स sudo के साथ चलाने की अनुमति देना।
यह लचीलापन न्यूनतम विशेषाधिकार सिद्धांत का पालन करने में सक्षम बनाता है, जिससे उपयोगकर्ताओं को केवल आवश्यक न्यूनतम अनुमतियाँ दी जाती हैं।
visudo कमांड के साथ सुरक्षित संपादन
आपको कभी भी /etc/sudoers को सीधे टेक्स्ट एडिटर से संपादित नहीं करना चाहिए।
इस फ़ाइल में सिंटैक्स त्रुटि sudo को पूरी तरह से अक्षम कर सकती है, जिससे सिस्टम रिकवरी कठिन हो जाती है। इसलिए, इसे visudo कमांड का उपयोग करके संपादित करने की दृढ़ता से सिफारिश की जाती है।
sudo visudo
visudo सहेजने से पहले सिंटैक्स जाँच करता है, जिससे सुरक्षित कॉन्फ़िगरेशन परिवर्तन संभव होते हैं।
बुनियादी सिंटैक्स और कॉन्फ़िगरेशन उदाहरण
sudoers फ़ाइल की बुनियादी सिंटैक्स इस प्रकार है:
username hostname = (run-as user) allowed commands
उदाहरण:
alice ALL=(ALL:ALL) ALL
यह कॉन्फ़िगरेशन उपयोगकर्ता alice को सभी होस्ट पर किसी भी उपयोगकर्ता के रूप में सभी कमांड चलाने की अनुमति देता है।
एक अधिक प्रतिबंधित उदाहरण:
bob ALL=(ALL) /usr/bin/systemctl restart nginx
यह उपयोगकर्ता bob को केवल sudo के साथ nginx रीस्टार्ट कमांड चलाने की अनुमति देता है।
समूह-आधारित नियंत्रण: sudo समूह
उबंटू जैसी कई डिस्ट्रिब्यूशन्स में, sudo समूह के सदस्य उपयोगकर्ता sudo का उपयोग कर सकते हैं।
%sudo ALL=(ALL:ALL) ALL
%sudo का उपयोग करने से समूह-आधारित अनुमति प्रबंधन सक्षम होता है।
किसी उपयोगकर्ता को sudo समूह में जोड़ने के लिए:
sudo usermod -aG sudo username
NOPASSWD विकल्प और सुरक्षा विचार
यदि हर बार पासवर्ड दर्ज करना असुविधाजनक है, तो आप पासवर्ड प्रमाणीकरण को छोड़ने के लिए NOPASSWD विकल्प का उपयोग कर सकते हैं।
alice ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
यह alice को पासवर्ड दर्ज किए बिना nginx रीस्टार्ट करने की अनुमति देता है।
हालाँकि, यह सुरक्षा जोखिम बढ़ाता है, इसलिए इसे केवल विशिष्ट कमांड्स तक सीमित करना महत्वपूर्ण है। ALL के साथ NOPASSWD का उपयोग करने की सिफारिश नहीं की जाती।
4. उन्नत sudo उपयोग
विशिष्ट उपयोगकर्ता के रूप में कमांड चलाना
हालाँकि sudo आमतौर पर कमांड्स को रूट के रूप में चलाता है, यह अन्य उपयोगकर्ताओं के रूप में भी कमांड्स चला सकता है।
उदाहरण के लिए, www-data उपयोगकर्ता के रूप में कमांड चलाने के लिए:
sudo -u www-data whoami
आउटपुट www-data होगा।
यह उपयोगकर्ताओं के बीच अनुमतियों और पर्यावरण अंतर की पुष्टि करने में उपयोगी है।
रीडायरेक्शन और पाइप्स के साथ sudo का उपयोग
शुरुआती लोगों के लिए एक सामान्य भ्रम का बिंदु sudo को रीडायरेक्शन (>) या पाइप्स (|) के साथ मिलाना है।
निम्नलिखित कमांड सही दिखती है लेकिन अपेक्षा के अनुसार काम नहीं करती:
sudo echo "test" > /etc/test.conf
जबकि echo sudo के साथ चलता है, रीडायरेक्शन को सामान्य उपयोगकर्ता के रूप में शेल द्वारा संभाला जाता है।
सही दृष्टिकोण tee का उपयोग करना है:
echo "test" | sudo tee /etc/test.conf
स्क्रिप्ट्स में sudo का उपयोग
जब स्क्रिप्ट्स को प्रशासनिक विशेषाधिकारों की आवश्यकता होती है, तो केवल उन कमांड्स को sudo जोड़ें जिनकी आवश्यकता होती है।
उदाहरण (install.sh):
#!/bin/bash
echo "Installing package..."
sudo apt install -y nginx
एक और सामान्य पैटर्न यह जांचना है कि स्क्रिप्ट root के रूप में चल रही है या नहीं:
if [ "$EUID" -ne 0 ]; then
echo "This script must be run as root"
exit 1
fi
उपयोगी sudo शॉर्टकट
sudo !!पिछले कमांड को sudo के साथ दोबारा चलाता है।apt update sudo !!
sudo -kकैश्ड sudo क्रेडेंशियल्स को साफ करता है।sudo -vवर्तमान sudo सेशन को बढ़ाता है।
5. सुरक्षा और सर्वोत्तम प्रथाएं
न्यूनतम विशेषाधिकार के सिद्धांत का पालन करें
sudo का उपयोग करने का प्राथमिक लक्ष्य सिस्टम को न्यूनतम आवश्यक विशेषाधिकारों के साथ संचालित करना है।
- sudo के माध्यम से केवल विशिष्ट कमांड्स की अनुमति दें
NOPASSWDके उपयोग को सीमित करें- समूहों के माध्यम से प्रशासकों का प्रबंधन करें
लॉगिंग और ऑडिटिंग
sudo सभी निष्पादित कमांड्स को लॉग करता है।
/var/log/auth.log(Ubuntu/Debian)journalctl(systemd-आधारित सिस्टम)grep 'sudo' /var/log/auth.logjournalctl _COMM=sudo

वास्तविक दुनिया की sudo कमजोरी (CVE-2021-3156)
हालांकि sudo अत्यधिक विश्वसनीय है, अतीत में गंभीर कमजोरियां खोजी गई हैं।
एक उल्लेखनीय उदाहरण CVE-2021-3156 (Baron Samedit) है, जिसने विशिष्ट स्थितियों के तहत स्थानीय उपयोगकर्ताओं को root विशेषाधिकार प्राप्त करने की अनुमति दी।
- sudo को अपडेट रखें
- सुरक्षा सलाहकारों की निगरानी करें
sudo विकल्प: doas
कुछ सुरक्षा-केंद्रित वातावरणों में doas को sudo का सरल विकल्प के रूप में उपयोग किया जाता है।
doas apt update
कॉन्फ़िगरेशन उदाहरण:
permit nopass :wheel
6. सामान्य त्रुटियां और समस्या निवारण
उपयोगकर्ता sudoers फाइल में नहीं है
username is not in the sudoers file. This incident will be reported.
इसका मतलब है कि उपयोगकर्ता को sudo विशेषाधिकारों की कमी है।
sudo usermod -aG sudo username
रीडायरेक्शन के साथ अनुमति अस्वीकृत
echo "test" | sudo tee /etc/test.conf
टूटी हुई sudoers फाइल
pkexec visudo
sudo: कमांड नहीं मिला
apt update
apt install sudo
7. अक्सर पूछे जाने वाले प्रश्न
प्रश्न 1. sudo और su के बीच क्या अंतर है?
उत्तर: sudo व्यक्तिगत कमांड्स को ऊंचा करता है, जबकि su उपयोगकर्ताओं को पूरी तरह से बदल देता है।
प्रश्न 2. sudo के लिए root पासवर्ड की आवश्यकता है?
उत्तर: नहीं। आप अपना अपना उपयोगकर्ता पासवर्ड दर्ज करते हैं।
प्रश्न 3. sudo लॉग कहां संग्रहीत होते हैं?
/var/log/auth.log/var/log/securejournalctl _COMM=sudo
प्रश्न 4. मैंने sudoers फाइल तोड़ दी। मुझे क्या करना चाहिए?
रिकवरी मोड का उपयोग करें या pkexec visudo।
प्रश्न 5. क्या मैं sudo के बिना root विशेषाधिकार प्राप्त कर सकता हूं?
हां, लेकिन यह अनुशंसित नहीं है।
प्रश्न 6. sudo के साथ GUI ऐप्स चलाना सुरक्षित है?
नहीं। इसके बजाय pkexec का उपयोग करें।
8. सारांश
sudo को सही ढंग से समझें
sudo एक महत्वपूर्ण पहुंच नियंत्रण तंत्र है, न कि केवल एक सुविधा कमांड।
उचित उपयोग समस्याओं को रोकता है
- न्यूनतम विशेषाधिकार का उपयोग करें
visudoके साथ संपादित करें- लॉग्स की समीक्षा करें
सही संचालन शैली चुनें
अपनी सुरक्षा नीति के आधार पर sudo या doas जैसे टूल्स चुनें।
अंतिम नोट
sudo को समझना लिनक्स सिस्टम प्रशासन में महारत हासिल करने की आधारभूत कदम है।



