मैं आवश्यकता शेट्टी को निष्क्रिय करना चाहता हूं ताकि मैं स्क्रिप्ट के भीतर सूडो कर सकूं, लेकिन मैं इसे केवल एक कमांड के लिए अक्षम करूंगा बजाय सब कुछ। क्या सूडोर्स कॉन्फिगर करना संभव है?
मैं आवश्यकता शेट्टी को निष्क्रिय करना चाहता हूं ताकि मैं स्क्रिप्ट के भीतर सूडो कर सकूं, लेकिन मैं इसे केवल एक कमांड के लिए अक्षम करूंगा बजाय सब कुछ। क्या सूडोर्स कॉन्फिगर करना संभव है?
जवाबों:
आप 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/
फ़ाइल में काम करने के लिए प्रकट नहीं होता है