Linux Sudo कमांड की व्याख्या: उपयोग, कॉन्फ़िगरेशन और समस्या निवारण

目次

1. आरंभ करना: sudo क्या है?

sudo का मूल अर्थ और भूमिका

लिनक्स और यूनिक्स-जैसे सिस्टम में, “sudo” एक महत्वपूर्ण कमांड है।
“sudo”superuser do” का संक्षिप्त रूप है और यह कमांड निष्पादित करने के लिए अस्थायी रूप से प्रशासक विशेषाधिकार (रूट विशेषाधिकार) उधार लेने का उपकरण है। सामान्यतः, सामान्य उपयोगकर्ताओं को पूरे सिस्टम को प्रभावित करने वाले ऑपरेशनों (जैसे पैकेज इंस्टॉल करना या सिस्टम सेटिंग्स बदलना) को करने का अधिकार नहीं होता। हालांकि, sudo कमांड का उपयोग करके, इन विशेषाधिकार वाले ऑपरेशनों को सीमित आधार पर निष्पादित किया जा सकता है।

उदाहरण के लिए, आप निम्नलिखित कमांड चलाकर रूट विशेषाधिकार के साथ apt कमांड निष्पादित कर सकते हैं:

sudo apt update

इस प्रकार, sudo सिस्टम सुरक्षा और सुविधा को संतुलित करने में भूमिका निभाता है, जो एक “प्रशासक विशेषाधिकारों का सुरक्षित उपयोग करने का तंत्र” है।

su कमांड से अंतर

sudo के समान उद्देश्य वाला एक कमांड su है, लेकिन दोनों के बीच स्पष्ट अंतर हैं।

  • su का अर्थ “substitute user” है और यह दूसरे उपयोगकर्ता (मुख्य रूप से रूट) पर स्विच करने का कमांड है। जब आप su का उपयोग करते हैं, तो ऑपरेशन पूरी तरह से “वह निर्दिष्ट उपयोगकर्ता बनकर” किए जाते हैं।
  • दूसरी ओर, sudo वर्तमान उपयोगकर्ता बने रहते हुए अस्थायी रूप से उधार लिए गए प्रशासक विशेषाधिकारों के साथ कमांड निष्पादित करता है

अर्थात, su सेशन-प्रति सेशन स्विचिंग का तरीका है, जबकि sudo कमांड-प्रति विशेषाधिकार वृद्धि का तरीका है। यह अंतर सुरक्षा के मामले में महत्वपूर्ण है; sudo ऑपरेशन इतिहास प्रबंधन को आसान बनाता है, और हाल की डिस्ट्रीब्यूशन में sudo मानक तरीका बन गया है।

sudo का उपयोग होने वाली सामान्य लिनक्स डिस्ट्रीब्यूशन

sudo का उपयोग कई लिनक्स डिस्ट्रीब्यूशन में डिफ़ॉल्ट रूप से किया जाता है, और इसका उपयोग विशेष रूप से निम्नलिखित डिस्ट्रीब्यूशन में माना जाता है:

  • उबंटू-आधारित (Ubuntu, Linux Mint, आदि) → प्रारंभ में, आप सीधे रूट अकाउंट में लॉग इन नहीं करते, बल्कि 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 (दूसरे उपयोगकर्ता के रूप में निष्पादित करें)

डिफ़ॉल्ट रूप से, यह root विशेषाधिकारों का उपयोग करता है, लेकिन -u विकल्प का उपयोग करके, आप किसी भी उपयोगकर्ता के रूप में कमांड निष्पादित कर सकते हैं

sudo -u www-data whoami

निष्पादन परिणाम www-data होगा, जो पुष्टि करता है कि “कमांड को www-data के रूप में निष्पादित किया गया था, न कि स्वयं के रूप में।”

-s (रूट विशेषाधिकारों के साथ शेल शुरू करें)

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

sudo -s

हालांकि, रूट स्थिति में संचालन सावधानी से किए जाने चाहिए।

-i (पूर्ण रूट उपयोगकर्ता के रूप में लॉग इन करें)

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

sudo -i

-l (निष्पाद्य कमांड की जाँच करें)

आप 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 = (runas_user) command(s)

उदाहरण:

alice ALL=(ALL:ALL) ALL

यह सेटिंग उपयोगकर्ता “alice” को सभी होस्ट पर किसी भी उपयोगकर्ता के रूप में सभी कमांड निष्पादित करने की अनुमति देती है।

अधिक प्रतिबंध जोड़ने के लिए:

bob ALL=(ALL) /usr/bin/systemctl restart nginx

यह सेटिंग उपयोगकर्ता “bob” को केवल “nginx पुनरारंभ कमांड” को sudo के साथ निष्पादित करने की अनुमति देती है।

समूह द्वारा नियंत्रण: sudo समूह

उबंटू जैसे कई वितरणों में, sudo समूह से संबंधित उपयोगकर्ताओं को sudo का उपयोग करने का विशेषाधिकार प्रदान किया जाता है।

%sudo  ALL=(ALL:ALL) ALL

इस तरह %sudo लिखकर, समूह द्वारा प्रबंधन संभव हो जाता है।

किसी उपयोगकर्ता को sudo समूह में जोड़ने के लिए, निम्नलिखित कमांड का उपयोग करें:

sudo usermod -aG sudo username

NOPASSWD विकल्प का उपयोग और सावधानियाँ

यदि आपको हर बार sudo निष्पादित करते समय पासवर्ड दर्ज करना बोझिल लगता है, तो आप पासवर्ड प्रविष्टि को छोड़ने के लिए NOPASSWD विकल्प का उपयोग कर सकते हैं।

alice ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

इस सेटिंग के साथ, उपयोगकर्ता “alice” बिना पासवर्ड के nginx को पुनरारंभ करने में सक्षम होगा।

हालांकि, यह सुरक्षा जोखिमों को बढ़ाता है, इसलिए इसे केवल सीमित संख्या की कमांड के लिए उपयोग करना महत्वपूर्ण है
विशेष रूप से, इसे ALL के साथ जोड़ना अनुशंसित नहीं है।

4. sudo का उन्नत उपयोग

विशिष्ट उपयोगकर्ता के रूप में कमांड निष्पादित करना

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

उदाहरण के लिए, यदि आप वेब सर्वर द्वारा उपयोग किए जाने वाले “www-data” उपयोगकर्ता के रूप में एक कमांड निष्पादित करना चाहते हैं, तो निम्नलिखित का उपयोग करें:

sudo -u www-data whoami

कार्यान्वयन परिणाम www-data होगा, जिससे पुष्टि होती है कि “कमांड www-data के रूप में चलाया गया, न कि मेरे रूप में”।

यह उपयोग उपयोगी है जब आप प्रत्येक उपयोगकर्ता के लिए विभिन्न वातावरण या विशेषाधिकार जांचना चाहते हैं

रीडायरेक्ट और पाइप के साथ संयोजन

शुरुआती लोगों के लिए एक सामान्य भ्रम का बिंदु sudo को रीडायरेक्ट (>) और पाइप (|) के साथ संयोजित करना है।
उदाहरण के लिए, निम्नलिखित कमांड पहली नज़र में सही लग सकती है, लेकिन यह अपेक्षित रूप से काम नहीं करेगी:sudo echo "test" > /etc/test.conf

इस मामले में, echo स्वयं sudo के साथ चलाया जाता है, लेकिन > के साथ रीडायरेक्ट साधारण उपयोगकर्ता विशेषाधिकारों के साथ निष्पादित होता है। इसलिए, लिखना विफल हो जाएगा।

सही तरीका tee कमांड का उपयोग करना है:

echo "test" | sudo tee /etc/test.conf

ऐसा करने से, रीडायरेक्ट भाग भी sudo विशेषाधिकारों के साथ निष्पादित होता है, और आप त्रुटि से बच सकते हैं।

स्क्रिप्ट में sudo का उपयोग

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

उदाहरण (install.sh):

#!/bin/bash

echo "Installing package..."
sudo apt install -y nginx

स्क्रिप्ट की शुरुआत में यह जांचने का एक पैटर्न भी है कि क्या यह रूट है:

if [ "$EUID" -ne 0 ]; then
    echo "This script must be run as root"
    exit 1
fi

ऐसे नियंत्रण शामिल करके, सुरक्षित स्क्रिप्ट संचालन संभव हो जाता है।

अक्सर उपयोग किए जाने वाले सुविधाजनक कमांड

  • sudo !! → पिछले कमांड को sudo के साथ पुनः चलाता है। उदाहरण के लिए:
    apt update
    sudo !!
    

यह sudo apt update के समान प्रभाव रखता है।

  • sudo -k → sudo पासवर्ड कैश को मैन्युअल रूप से साफ़ करता है। यह सुरक्षा कारणों से उपयोगी है, जैसे टर्मिनल को अस्थायी रूप से छोड़ने से पहले।

  • sudo -v → वर्तमान सत्र के लिए sudo विशेषाधिकारों को बढ़ाता है। यह लंबी कार्यों के लिए सुविधाजनक है।

5. सुरक्षा और सर्वोत्तम प्रथाएँ

न्यूनतम विशेषाधिकार सिद्धांत का पालन करें

sudo का मुख्य उद्देश्य न्यूनतम आवश्यक विशेषाधिकारों के साथ सिस्टम संचालन सक्षम करना है।
दूसरे शब्दों में, आदर्श उपयोग यह नहीं है कि “हमेशा सर्वशक्तिमान रूट उपयोगकर्ता बनें,” बल्कि “रूट की शक्ति को केवल आवश्यक होने पर और आवश्यक सीमा में ही उधार लें।”

इस सिद्धांत का पालन करते हुए, उदाहरण के लिए, निम्नलिखित सेटिंग्स वांछनीय हैं:

  • उपयोगकर्ताओं को केवल विशिष्ट कमांड sudo के साथ चलाने की अनुमति दें (जैसे, systemctl restart nginx)।
  • NOPASSWD के उपयोग को न्यूनतम रखें।
  • समूहों में प्रशासनिक विशेषाधिकार वाले उपयोगकर्ताओं का प्रबंधन करें (जैसे, sudo)।

लॉगिंग और ऑडिटिंग

sudo चलाए गए कमांड को लॉग में रिकॉर्ड करता है। यह आपको बाद में यह जांचने की अनुमति देता है कि किसने कौन सा कमांड कब उपयोग किया।

मुख्य लॉग स्थान इस प्रकार हैं (वितरण के अनुसार भिन्न हो सकते हैं):

  • /var/log/auth.log (उबंटू, डेबियन-आधारित)
  • journalctl (systemd वाले वितरण)

उदाहरण के लिए, उबंटू में sudo उपयोग इतिहास जांचने के लिए:

grep 'sudo' /var/log/auth.log

या:

journalctl _COMM=sudo

यह कौन क्या किया को अनधिकृत या आकस्मिक संचालन की स्थिति में भी ट्रैक करने में सक्षमाता है। यह सर्वर प्रबंधन में एक आवश्यक दृष्टिकोण है।

वास्तविक sudo भेद्यता (CVE-2021-3156)

जबकि sudo एक बहुत भरोसेमंद टूल है, अतीत में महत्वपूर्ण भेद्यताएँ रिपोर्ट की गई हैं।
एक विशेष रूप से प्रसिद्ध उदाहरण CVE-2021-3156 (आम तौर Baron Samedit के नाम से जाना जाता है) है, जो 2021 में जारी किया गया था।
यह एक गंभीर भेद्यता थी जहाँ कुछ स्थितियों में, एक दुर्भावनापूर्ण इनपुट साधारण उपयोगकर्ता को रूट विशेषाधिकार प्राप्त करने की अनुमति दे सकता था।

यह समस्या पहले ही ठीक कर दी गई है, लेकिन इस मामले से पता चलता है:

  • sudo सहित महत्वपूर्ण पैकेजों को हमेशा नवीनतम संस्करण पर रखें।
  • आधिकारिक वेबसाइटों और भेद्यता डेटाबेस को नियमित रूप से जांचें

ऐसे उपाय आवश्यक हैं।

sudo विकल्प का परिचय: doas

कुछ न्यूनतम Linux वातावरणों और सुरक्षा‑उन्मुख उपयोगकर्ताओं में, doas नामक कमांड को sudo का विकल्प के रूप में भी उपयोग किया जाता है।

doas OpenBSD से उत्पन्न एक संक्षिप्त विशेषाधिकार वृद्धि उपकरण है, जो sudo की तुलना में सरल कॉन्फ़िगरेशन और उच्च सुरक्षा के लिए जाना जाता है।

उदाहरण:

doas apt update

कॉन्फ़िगरेशन फ़ाइल /etc/doas.conf में लिखी जाती है। सिंटैक्स भी सरल है:

permit nopass :wheel

जैसा दिखाया गया है, आप आसानी से ऐसी सेटिंग्स लिख सकते हैं जैसे कि wheel समूह के उपयोगकर्ताओं को पासवर्ड के बिना doas उपयोग करने की देना।

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

6. सामान्य त्रुटियाँ और समस्या निवारण

“User is not in the sudoers file” त्रुटि

username is not in the sudoers file. This incident will be reported.

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

समाधान:

  1. किसी अन्य उपयोगकर्ता के साथ लॉग इन करें जिसके पास रूट विशेषाधिकार हों।
  2. लक्ष्य उपयोगकर्ता को sudo समूह में जोड़ें।
    sudo usermod -aG sudo username
    

उसके बाद, सत्र से लॉग आउट करें और फिर से लॉग इन करें, और sudo उपलब्ध हो जाएगा।

रीडायरेक्ट या पाइप का उपयोग करते समय “Permission denied” त्रुटि

Permission denied

यह त्रुटि इसलिए आती है क्योंकि भले ही आप sudo के साथ कमांड चलाना चाहते हों, रीडायरेक्शन गंतव्य या पाइप प्रोसेसिंग sudo के बाहर की जा रही है

गलत उदाहरण:

sudo echo "test" > /etc/test.conf

इस मामले में, echo sudo के साथ चलाया जाता है, लेकिन फ़ाइल में लिखना सामान्य उपयोगकर्ता के विशेषाधिकारों से किया जाता है, जिससे त्रुटि आती है।

सही उपयोग:

echo "test" | sudo tee /etc/test.conf

या, एक साथ कई पंक्तियों को लिखने के लिए, sudo tee या sudo bash -c का उपयोग करना बेहतर है।

sudo bash -c 'echo "line1" > /etc/test.conf'

sudoers फ़ाइल को संपादित में त्रुटियों के कारण कार्य न करना

यदि आप सीधे sudoers फ़ाइल को संपादित करते हैं और सिंटैक्स त्रुटि करते हैं, तो sudo स्वयं अनुपयोगी हो सकता है। यह एक बहुत ही खतरनाक स्थिति है।

समाधान:

  1. रूट खाते के साथ लॉग इन करें (ध्यान दें कि Ubuntu में यह डिफ़ॉल्ट रूप से अक्षम है)।
  2. निम्नलिखित कमांड से मरम्मत करें:
    pkexec visudo
    

यदि pkexec का उपयोग नहीं किया जा सकता, तो आपको रिकवरी मोड या समान मोड में बूट करके /etc/sudoers फ़ाइल को संशोधित करना होगा।

सिंटैक्स त्रुटियों से बचने के लिए, हमेशा संपादन के लिए निम्नलिखित का उपयोग करें:

sudo visudo

“sudo: command not found”

sudo: command not found

यह त्रुटि तब आती है जब सिस्टम पर sudo स्थापित नहीं है या PATH पर्यावरण चर की समस्या के कारण नहीं मिल रहा है।

समाधान:

  • रूट विशेषाधिकारों के साथ लॉग इन करें और नीचे दिखाए अनुसार sudo को पुनः स्थापित करें:
    apt update
    apt install sudo
    
  • या सीधे /usr/bin/sudo का पथ निर्दिष्ट करके निष्पादित करें :
    /usr/bin/sudo ls
    

7. FAQ: sudo के बारे में अक्सर पूछे जाने वाले प्रश्न

प्रश्न 1. sudo और su में क्या अंतर है?

उ:
sudo एक कमांड जो “अस्थायी रूप से केवल विशिष्ट कमांड्स को प्रशासक विशेषाधिकारों के साथ चलाता है,” जबकि su एक कमांड है जो “पूरे उपयोगकर्ता (मुख्यतः रूट) में स्विच करता है।”

  • sudo : केवल कुछ कार्यों के लिए विशेषाधिकार बढ़ाता है जबकि वर्तमान उपयोगकर्ता बना रहता है।
  • su : पूरी तरह से दूसरे उपयोगकर्ता में स्विच करता है।

सुरक्षा और ऑपरेशन इतिहास के दृष्टिकोण से, हाल के वर्षों में sudo के उपयोग की सिफारिश की जाती है।

प्रश्न 2. sudo उपयोग करते समय क्या मुझे रूट पासवर्ड चाहिए?

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

प्रश्न 3. sudo लॉग कहाँ रिकॉर्ड होते हैं?

उ:
कई Linux वितरणों में, sudo द्वारा किए गए ऑपरेशन लॉग निम्नलिखित में से किसी एक में रिकॉर्ड होते हैं:

  • Ubuntu/Debian-आधारित: /var/log/auth.log
  • RHEL/CentOS-आधारित: /var/log/secure
  • सभी systemd वातावरण: journalctl _COMM=sudo

यह अनधिकृत या आकस्मिक संचालन की स्थिति में भी यह ट्रैक करना संभव बनाता है कि किसने क्या किया

Q4. मैंने गलती से sudoers फाइल को संपादित कर दिया। मुझे क्या करना चाहिए?

A:
सबसे पहले, संपादन से पहले हमेशा sudo visudo का उपयोग करने का सुनिश्चित करें।
यदि सिंटैक्स त्रुटि के कारण आप अब sudo का उपयोग नहीं कर सकते, तो निम्नलिखित विधियों में से एक का उपयोग करके इसे ठीक करने का प्रयास करें:

  • रूट खाते से लॉग इन करें और visudo से इसे ठीक करें।
  • यदि यह Ubuntu है, तो “Recovery Mode” से रूट के रूप में बूट करें और इसे ठीक करें।
  • pkexec visudo (जहां polkit सक्षम हो, उन वातावरणों में)।

चूंकि सिंटैक्स त्रुटियां पूरे सिस्टम के संचालन को प्रभावित करती हैं, कृपया ठीक करने के बाद फिर से परीक्षण करें।

Q5. क्या sudo का उपयोग किए बिना रूट विशेषाधिकार प्राप्त करने का कोई तरीका है?

A:
हां, लेकिन यह सुरक्षा जोखिमों के बढ़ने के कारण अनुशंसित नहीं है।

उदाहरण के लिए:

  • su कमांड से रूट पर स्विच करें (रूट पासवर्ड की आवश्यकता होती है)।
  • रूट खाते से सीधे लॉग इन करें (Ubuntu में डिफ़ॉल्ट रूप से अक्षम)।

कई Linux वितरणों में रूट खाते के सीधे उपयोग से बचने की नीति है, और sudo का उपयोग सुरक्षित है।

Q6. क्या sudo का उपयोग करके GUI ऐप्स लॉन्च करना ठीक है?

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

GUI अनुप्रयोगों का उपयोग करते समय, निम्नानुसार gksudo या pkexec का उपयोग करने की सिफारिश की जाती है (हालांकि, ये टूल वातावरण के आधार पर अप्रचलित हो सकते हैं या स्थापित नहीं हो सकते):

pkexec gedit

8. निष्कर्ष

sudo की भूमिका को सही ढंग से समझें

इस लेख में, हमने Linux और Unix-जैसे सिस्टमों में एक बहुत महत्वपूर्ण कमांड “sudo,” को व्यापक रूप से समझाया है, जिसमें इसकी मूल भूमिका, उपयोग, कॉन्फ़िगरेशन विधियां, अनुप्रयोग, सुरक्षा उपाय, सामान्य त्रुटियां, और FAQs शामिल हैं।

sudo केवल “कमांड से पहले रखने” की चीज नहीं है, बल्कि एक महत्वपूर्ण पहुंच नियंत्रण तंत्र है जो सिस्टम सुरक्षा बनाए रखते हुए आवश्यक कार्य को सक्षम बनाता है

उचित उपयोग परेशानी को रोकता है

निम्नलिखित बिंदुओं पर विशेष ध्यान देना sudo को सुरक्षित रूप से उपयोग करने की कुंजी है:

  • न्यूनतम आवश्यक विशेषाधिकारों के साथ संचालित करें (न्यूनतम विशेषाधिकार का सिद्धांत)।
  • visudo का उपयोग करके सेटिंग्स को सुरक्षित रूप से प्रबंधित करें।
  • संचालन इतिहास की जांच और प्रबंधन के लिए लॉग्स का उपयोग करें।
  • पाइप्स और रीडायरेक्ट्स के साथ संयोजन में व्यवहार के प्रति सावधान रहें।
  • मूल रूप से GUI अनुप्रयोगों के लिए इसका उपयोग न करें।

इन बिंदुओं को समझने में विफलता “फाइलें भ्रष्ट हो गईं,” “सेटिंग्स को पुनर्स्थापित नहीं किया जा सकता,” या “sudo उपयोग योग्य नहीं हो गया” जैसी समस्याओं का कारण बन सकती है।

अपनी सिस्टम संचालन के अनुकूल शैली चुनें

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

अंत में

sudo को समझना Linux को समझने का पहला कदम है।
कृपया सही ज्ञान और उपयोग प्राप्त करें न केवल एक सुविधाजनक कमांड के रूप में, बल्कि पूरे सिस्टम की रक्षा करने वाली “कुंजी” के रूप में।

हम आशा करते हैं कि अगली बार जब आप Linux का उपयोग करें, तो आपके प्रत्येक कमांड अधिक आत्मविश्वास के साथ निष्पादित होंगे।