मैं आवश्यकता शेट्टी को निष्क्रिय करना चाहता हूं ताकि मैं स्क्रिप्ट के भीतर सूडो कर सकूं, लेकिन मैं इसे केवल एक कमांड के लिए अक्षम करूंगा बजाय सब कुछ। क्या सूडोर्स कॉन्फिगर करना संभव है?
मैं आवश्यकता शेट्टी को निष्क्रिय करना चाहता हूं ताकि मैं स्क्रिप्ट के भीतर सूडो कर सकूं, लेकिन मैं इसे केवल एक कमांड के लिए अक्षम करूंगा बजाय सब कुछ। क्या सूडोर्स कॉन्फिगर करना संभव है?
जवाबों:
आप requirettyकिसी विशिष्ट उपयोगकर्ता के लिए या किसी विशिष्ट कमांड (या किसी विशिष्ट रन-एज़-उपयोगकर्ता या होस्ट के लिए) जैसे विकल्पों के लिए डिफ़ॉल्ट सेटिंग को ओवरराइड कर सकते हैं , लेकिन विशिष्ट उपयोगकर्ता के रूप में निष्पादित होने पर किसी विशिष्ट कमांड के लिए नहीं।
उदाहरण के लिए, यह सोचते हैं कि requirettyसंकलन डिफ़ॉल्ट विकल्प में सेट है, तो निम्न sudoersफ़ाइल दोनों की अनुमति देता है artbristolऔर bobनिष्पादित करने के लिए /path/to/programएक स्क्रिप्ट से रूट के रूप में। artbristolपासवर्ड की आवश्यकता नहीं है, जबकि पासवर्ड bobदर्ज करना होगा (संभवत: tty_ticketsबंद है और bobहाल ही में कुछ टर्मिनल पर अपना पासवर्ड दर्ज किया है)।
artbristol ALL = (root) NOPASSWD: /path/to/program
bob ALL = (root) /path/to/program
Defaults!/path/to/program !requiretty
यदि आप विशिष्ट तर्कों के साथ कमांड के लिए सेटिंग बदलना चाहते हैं, तो आपको कमांड उपनाम (यह एक सिंटैक्स सीमा है) का उपयोग करने की आवश्यकता है। उदाहरण के लिए, निम्न टुकड़ा स्क्रिप्ट में artbristolचलने की अनुमति देता है /path/to/program --option, लेकिन /path/to/programअन्य तर्कों के साथ नहीं ।
Cmnd_Alias MYPROGRAM = /path/to/program --option
artbristol ALL = (root) /path/to/program
artbristol ALL = (root) NOPASSWD: MYPROGRAM
Defaults!MYPROGRAM !requiretty
कुछ इस तरह:
myuser ALL=(ALL) NOPASSWD:/usr/local/bin/mycmd
Defaults:myuser !requiretty
/etc/sudoers.d/फाइल में जोड़ा गया । सेंटोस 7.1
/etc/sudoers.d/। सेंटोस 7.5 :(
मैंने पाया कि यह मेरे लिए एक फ़ाइल का उपयोग करके ठीक काम करता है /etc/sudoers.d। यह सत्यापित करना काफी सरल है।
सबसे पहले, मैंने /etc/sudoers.d/01buildसामग्री के साथ बनाया :
build ALL=(ALL) NOPASSWD:/bin/date
Defaults:build !requiretty
फिर परीक्षण किया कि यह काम करता है:
ssh host sudo -n /bin/date
Mon Nov 16 16:04:27 CST 2015
फिर मैंने लाइन को संशोधित किया /etc/sudoers.d/01buildऔर हटा दिया Defaults:, और उसके बाद मुझे:
ssh host sudo -n /bin/date
sudo: sorry, you must have a tty to run sudo
/etc/sudoersलेकिन एक/etc/sudoers.d/फ़ाइल में काम करने के लिए प्रकट नहीं होता है