किस उपयोगकर्ता का पासवर्ड `sudo` पूछता है?


10
$ ls -l /usr/bin/sudo
-rwsr-xr-x 1 root root 136808 Jul  4  2017 /usr/bin/sudo

इसलिए sudoकिसी भी उपयोगकर्ता द्वारा चलाया sudoजा सकता है , और जो भी उपयोगकर्ता चलाता है, उसके पास इस प्रक्रिया के प्रभावी उपयोगकर्ता आईडी के रूप में रूट होगा क्योंकि सेट-उपयोगकर्ता-आईडी बिट /usr/bin/sudoसेट है।

से https://unix.stackexchange.com/a/11287/674

sudo और su के बीच सबसे अधिक अंतर यह है कि sudo को उपयोगकर्ता के पासवर्ड की आवश्यकता होती है और su को रूट के पासवर्ड की आवश्यकता होती है।

  1. उपयोगकर्ता किस पासवर्ड के sudoलिए पूछता है? क्या यह उपयोगकर्ता प्रक्रिया के वास्तविक उपयोगकर्ता आईडी का प्रतिनिधित्व करता है?

    यदि हाँ, तो क्या कोई भी उपयोगकर्ता चलकर sudoऔर फिर अपना पासवर्ड प्रदान करके सुपरसुंदर विशेषाधिकार प्राप्त नहीं कर सकता है ? क्या लिनक्स कुछ उपयोगकर्ताओं पर रोक लगा सकता है?

  2. क्या यह सही है कि निष्पादित करने के लिए sudoपासवर्ड के बाद पूछता है ?execve()main()/usr/bin/sudo

    चूंकि प्रक्रिया की यूरोप को रूट में बदल दिया गया है (क्योंकि सेट-उपयोगकर्ता-आईडी बिट / usr / बिन / sudo सेट है), बाद में sudo का पासवर्ड क्या है?

धन्यवाद।

मैंने https://unix.stackexchange.com/a/80350/674 पढ़ा है , लेकिन यह ऊपर दिए गए सवालों का जवाब नहीं देता है।


3
यह किसी भी उपयोगकर्ता नहीं है, लेकिन केवल sudoers सूची में शामिल हैं।
रॉड्रिगो

1
@ रोड्रिगो जो एक उत्तर की तरह लगता है, उसे एक टिप्पणी नहीं एक जवाब में डाल दिया।
फिलिप केंडल

2
@PhilipKendall ने ओपी के संदेह का केवल एक हिस्सा बताया।
रोड्रिगो

जवाबों:


22
  1. इसके सबसे सामान्य कॉन्फ़िगरेशन में, चल रहेsudo उपयोगकर्ता का पासवर्ड पूछते हैं (जैसा कि आप कहते हैं, उपयोगकर्ता प्रक्रिया 'वास्तविक उपयोगकर्ता आईडी' के अनुरूप है)। इसका उद्देश्य विशिष्ट उपयोगकर्ताओं को अतिरिक्त विशेषाधिकार प्रदान करना है (जैसा कि कॉन्फ़िगरेशन द्वारा निर्धारित किया गया है ), उन उपयोगकर्ताओं के बिना अपने स्वयं के अलावा कोई अन्य प्रमाणीकरण प्रदान करना है। हालाँकि, यह जाँचता है कि वास्तव में चलने वाला उपयोगकर्ता वह है जो वे होने का दावा करते हैं, और यह ऐसा करते हैं कि उनके पासवर्ड के लिए पूछकर (या जो भी प्रमाणीकरण तंत्र स्थापित किया जाता है , आमतौर पर PAM का उपयोग करते हैं - इसलिए इसमें एक फिंगरप्रिंट, या दो कारक शामिल हो सकते हैं प्रमाणीकरण आदि)। sudosudosudoerssudo sudosudo

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

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


12

sudoआमतौर पर इसे चलाने वाले उपयोगकर्ता के पासवर्ड के लिए पूछता है, हालांकि इसे कॉन्फ़िगर किया जा सकता है :

इसके विपरीत su(1), जब sudoersप्रमाणीकरण की आवश्यकता होती है, तो यह उपयोगकर्ता के क्रेडेंशियल्स को मान्य करता है, न कि लक्ष्य उपयोगकर्ता (या रूट) की क्रेडेंशियल्स को। इस के माध्यम से बदला जा सकता है rootpw, targetpwऔर runaspwझंडे, बाद में वर्णन किया।

सेटिंग rootpwहै sudoहमेशा जड़ का पासवर्ड के लिए पूछना, targetpwउपयोगकर्ता का पासवर्ड के लिए पूछता sudoअंततः के रूप में कार्यक्रम चलाया जाएगा, और runaspwमें उपयोगकर्ता सेट के पासवर्ड के लिए पूछता runas_default

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

कुछ इसी तरह, कोई भी प्रक्रिया कर्नेल मोड में कोड को निष्पादित कर सकती है, किसी भी सिस्टम कॉल को कॉल करके, कह सकती है open()। (यह रूट के रूप में यूजरस्पेस कोड के समान नहीं है।) जब तक कर्नेल में कीड़े नहीं होते, तब तक वे मनमाना कोड नहीं चला पाएंगे।


8

की पहली पंक्ति से man sudo:

DESCRIPTION
sudo एक अनुमत उपयोगकर्ता को एक कमांड निष्पादित करने की अनुमति देता है जो कि सुपरसुसर या किसी अन्य उपयोगकर्ता के रूप में सुरक्षा नीति द्वारा निर्दिष्ट है। उपयोगकर्ता की वास्तविक (प्रभावी नहीं) उपयोगकर्ता आईडी का उपयोग उपयोगकर्ता नाम को निर्धारित करने के लिए किया जाता है जिसके साथ सुरक्षा नीति को क्वेरी करना है।

इसलिए:

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

  3. क्या लिनक्स कुछ उपयोगकर्ताओं पर रोक लगा सकता है?
    हाँ, यह कर सकते हैं, लेकिन यह नहीं है। लिनक्स सूडो प्रोग्राम के अंदर और फ़ाइल के अंदर नियमों (सुरक्षा नीति) के सेट के आधार पर निर्णय लेने के लिए सुडो बाइनरी की अनुमति देता है /etc/sudoers। आमतौर पर, अन्य फ़ाइलों (भी / बजाय) का इस्तेमाल किया जा सकता है।

से man setresuid:

DESCRIPTION
setresuid () वास्तविक उपयोगकर्ता आईडी, प्रभावी उपयोगकर्ता आईडी और कॉलिंग प्रक्रिया के सहेजे गए सेट-उपयोगकर्ता-आईडी सेट करता है।

  1. कर्नेल द्वारा दी गई सुपरयूज़र अनुमतियों को प्राप्त करने का एकमात्र तरीका एक कार्यक्रम को चलाना है। यह अन्यथा नहीं हो सकता। यह वह तरीका है जिससे लिनक्स ने सुपरयूज़र अनुमतियाँ देने के लिए चुना है।

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


-1

के बारे में अन्य अच्छे जवाब के लिए अतिरिक्त sudo:

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.