सुडो सेवा क्या करती है?


17

जहाँ तक मुझे पता है और ऐसा लगता है कि अन्य लोगों का भी यही मत sudo है कि यह एक आदेश है जो प्रशासनिक विशेषाधिकारों के साथ कुछ करता है।

हालाँकि जब मैं दौड़ता rcconfहूँ तो मैं यह लाइन देख सकता हूँ:

[*] sudo    Provide limited super user privileges to specific users

तो इस सेवा का क्या मतलब है? या यह भी एक सेवा है?


यह वही है जो मैंने google पर सर्च करते हुए पाया-> Sudo
adi

"यह वह जगह है जहां सूडो आता है - यह अधिकृत उपयोगकर्ताओं (सामान्य रूप से" प्रशासनिक "उपयोगकर्ताओं को अनुमति देता है; आगे की जानकारी के लिए कृपया रूट पासवर्ड जानने के बिना रूट के रूप में कुछ कार्यक्रमों को चलाने के लिए AddUsersHowto को देखें)।" - ठीक यही मैंने अपने सवाल में कहा।
s3v3n

3
सवाल सेवा के बारे में है, कमांड नहीं
s3v3n

जवाबों:


22

संक्षिप्त जवाब

रिबूट पर उपयोगकर्ताओं के 'कैश्ड' प्रमाणीकरण कार्यों को रद्द करने के लिए। यह एक डेमॉन नहीं है, बस एक स्क्रिप्ट बूट समय पर चलती है।


व्यापक जवाब

File /etc/init.d/sudoसेवा शुरू करता है ’ इनिट फ़ाइल का निरीक्षण करके , आप आसानी से देख सकते हैं कि यह क्या कर रहा है:

case "$1" in
  start)
        # make sure privileges don't persist across reboots
        if [ -d /var/lib/sudo ]
        then
                find /var/lib/sudo -exec touch -t 198501010000 '{}' \;
        fi
        ;;
  stop|reload|restart|force-reload)
        ;;
  *)
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

इसलिए, मूल रूप से, यह /var/lib/sudoसिस्टम की शुरुआत में कुछ फाइलों को छूता है, ताकि यह बहुत पुराना संशोधन टाइमस्टैम्प हो। नतीजतन, सेवा के प्रारंभ होने पर (जो बूट में होता है) 'कैशेड' दी गई प्रमाणीकरण कार्रवाई रद्द कर दी जाती है।

/var/lib/sudoनिर्देशिका और उन समय टिकटों पर कुछ और विस्तार , कृपया? खैर, के नक्शे से sudo(8):

[...]
Once a user has been authenticated, a time stamp is updated and the
user may then use sudo without a password for a short period of time
(15 minutes unless overridden in sudoers).
[...]
Since time stamp files live in the file system, they can outlive a
user's login session.  As a result, a user may be able to login, run a
command with sudo after authenticating, logout, login again, and run
sudo without authenticating so long as the time stamp file's
modification time is within 15 minutes (or whatever the timeout is set
to in sudoers).
[...]
/var/lib/sudo           Directory containing time stamps

सही उत्तर :)
s3v3n

12

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


सुडो के बारे में एक विस्तृत विवरण

नीचे दिए गए स्पष्टीकरण के सभी को इस प्रश्न को पढ़ने वाले सभी के लिए सभी जानकारी प्राप्त करना है और फिर सेवा फ़ोल्डर में sudo फ़ाइल क्या है, यह समझाना है।

जब आप उबंटू या कोई अन्य डिस्ट्रो स्थापित sudoकरते हैं जो रूट होने और उपयोग करने वाले उपयोगकर्ता होने के बीच अंतर का उपयोग करता हैsudo "रूट" जैसे विशेषाधिकार प्राप्त करने के लिए (प्रशासनिक या सुपर उपयोगकर्ता विशेषाधिकार) निम्नलिखित है:

जड़ के रूप में

  • आपको सत्र पर चलने वाले प्रत्येक या सभी आदेशों के लिए पासवर्ड नहीं मांगा जाता है
  • आपके द्वारा निष्पादित सभी कमांड डिफ़ॉल्ट रूप से लॉग इन नहीं होंगे
  • सिस्टम मानता है कि आप जानते हैं कि आप क्या कर रहे हैं (कारण है कि हर बार जब आप किसी कमांड को निष्पादित करते हैं तो यह पासवर्ड नहीं मांगता है)
  • यदि आप कोई गलती करते हैं तो कोई दूसरा मौका या अंतिम मिनट विकल्प नहीं है

सूडो के रूप में

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

क्यों बनाया गया था SUDO

SUDO का निर्माण इसलिए किया गया क्योंकि अतीत में, जड़ के उपयोग से समाधान की तुलना में अधिक समस्याएं पैदा हुईं। उपयोगकर्ताओं के पास सभी अधिकार थे, जिसका अर्थ था कि अगर उन्होंने कुछ स्प्रिंग क्लीनअप किया और शाब्दिक रूप से हटा दिया /usr, /libऔर /binफ़ोल्डर्स (क्योंकि उन्हें लगा कि उन्हें उनकी आवश्यकता नहीं है) .. अनुमान लगाओ कि क्या होगा। अतीत में कई समस्याएं थीं क्योंकि उपयोगकर्ता रूट का उपयोग करते समय उनके पास मौजूद शक्ति को नहीं जानते थे। मूल रूप से वे जड़ थे, लेकिन लिनक्स को नहीं समझते थे, फाइल सिस्टम पदानुक्रम, क्या फाइलें महत्वपूर्ण थीं, आदि .. (कुछ ऐसा है जैसे फेरारी होना और न जाने कैसे ड्राइव करना ... एक राजमार्ग में!)

SUDO का उपयोग GUI ऐप्स (जैसे अपडेट मैनेजर) द्वारा किया जाता है जब उन्हें कुछ करने के लिए अस्थायी प्रशासनिक विशेषाधिकारों की आवश्यकता होती है। उन्हें केवल विशिष्ट मात्रा में आदेशों (आमतौर पर 1) के लिए इसकी आवश्यकता होती है और फिर वे उपयोगकर्ता स्तर के विशेषाधिकार पर वापस जाते हैं। यह हर समय रूट विशेषाधिकार होने से बचने के लिए और यदि उपयोगकर्ता सिस्टम के कुछ महत्वपूर्ण हिस्से को हटाने का फैसला करता है तो गलती करने से बचें।

इसके अतिरिक्त यह एक बेहतर सुरक्षा देता है क्योंकि रूट उपयोगकर्ता डिफ़ॉल्ट रूप से अक्षम हो जाता है।

अंतिम, यदि आपके पास एक डेस्कटॉप पीसी या सर्वर है, तो आप वास्तव में हर किसी को रूट नहीं करना चाहते हैं, न ही सभी व्यवस्थापक विशेषाधिकार हैं। बहुत बुरा विचार है अगर आपकी छोटी बहन या छोटे भाई आश्चर्यचकित हो जाते हैं कि अगर चाबी /bootमिली तो क्या होगा DEL। यह वह जगह है जहाँ sudoमौका घटने के लिए कुछ बुरा होता है।

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

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

man sudoersटर्मिनल में sudoers फ़ाइल प्रकार का उपयोग करने के तरीके के बारे में जानकारी के लिए । उदाहरण के लिए सामान्य प्रारूप है:

USER HOST = कमानों

उदाहरण के लिए cyrex server1 = /bin/ls, ls कमांड को चलाने के लिए होस्ट सर्वर 1 में यूजर साइरेक्स देगा।

उदाहरण के लिए cyrex server1 (root) = /bin/ls, होस्ट सर्वर को एक्सेस के रूप में उपयोगकर्ता कमांड को रूट के रूप में ls कमांड चलाने के लिए दिया जाएगा।

उदाहरण के लिए cyrex ALL = /bin/ls, एलएस कमांड को चलाने के लिए सभी होस्ट एक्सेस में उपयोगकर्ता साइरेक्स देगा।

उदाहरण के लिए cyrex ALL = ALLसभी आदेशों को चलाने के लिए सभी होस्ट एक्सेस में उपयोगकर्ता साइरेक्स देगा।

उदाहरण के लिए luis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killallमुझे पासवर्ड के लिए पूछे बिना रूट के रूप में killऔर killallकमांड को चलाने की अनुमति देगा ।

यहां छवि विवरण दर्ज करें


2
वह जानता है कि सूडो कमांड क्या करती है। सवाल sudo के लिए एक सिस्टम सेवा के बारे में है।
gertvdijk

1
@gertvdijk - मुझे पहले मूल बातें समझानी थीं, क्योंकि न केवल वह इस सवाल को देख रहा होगा। पिछले भाग में सेवा फ़ोल्डर में sudo फ़ाइल को देखने का एकमात्र कारण शामिल है।
लुइस अल्वाराडो

धन्यवाद लुइस अल्वाराडो - इस तरह की एक व्यापक जानकारी के लिए वूलर और धमाकेदार संशोधित xkcd के लिए !!धमाकेदार बैंग ऑपरेटर को संदर्भित करता है, लेकिन सेवा (कमांड नहीं) sudoक्या करता है? यदि आप वास्तव में प्रश्न का उत्तर देने के लिए अपना उत्तर अपडेट कर सकते हैं तो यह बहुत अच्छा होगा।
s3v3n

1
एक छोटी सी ओवरकिल की व्याख्या करते हुए कि अंत में सिर्फ एक वाक्यांश के लिए, लेकिन यह मेरे सवाल का जवाब देता है;)
s3v3n

1
@ लुइसलावरादो-द वूल्वरिन हाहा, आपका अधिकार। यह अच्छा था कि आपने मुझे हां में जवाब दिया , मैंने किया .. धन्यवाद
लुसियो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.