लिनक्स: उपयोगकर्ता को अपाचे को पुनः आरंभ करने की अनुमति कैसे दी जाती है?


35

मेरे पास एक स्क्रिप्ट है जो एक गैर-रूट उपयोगकर्ता के तहत चल रही है, जिसे कुछ शर्तों के तहत, अपाचे httpd को फिर से शुरू करना चाहिए।

मेरे लिए उपयोगकर्ता को ऐसा करने की अनुमति देने का सबसे सरल तरीका क्या होगा?

मैं Ubuntu सर्वर 8.04 LTS का उपयोग कर रहा हूं।

जवाबों:


84

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

उपयोग करके visudo, अपने sudoers फ़ाइल में निम्नलिखित जोड़ें, उपयोगकर्ता नाम को उचित उपयोगकर्ता नाम के साथ बदलें:

username ALL = /etc/init.d/apache2 

यदि आप ऐसा करने से पहले पासवर्ड नहीं लिखना चाहते हैं, तो निम्न का उपयोग करें:

username ALL = NOPASSWD: /etc/init.d/apache2 

इसके बाद, 'उपयोगकर्ता नाम' उपयोगकर्ता निष्पादित sudo /etc/init.d/apache2 start(या रोक, पुनरारंभ, आदि) कर सकता है

लंबे उत्तर: यदि आप पहले से ही नहीं है, तो आप इसके लिए एक अलग उपयोगकर्ता को सेटअप करना चाहेंगे, और फिर उपयोगकर्ता या समूह को उस कमांड को निष्पादित करने की अनुमति देने के लिए / etc / sudoers फ़ाइल को कॉन्फ़िगर करें।

उदाहरण के लिए, उपयोगकर्ता 'बेन' को पासवर्ड के लिए रूट प्रॉम्प्टिंग के रूप में सभी कमांड निष्पादित करने की अनुमति देने के लिए, आप निम्न कार्य करेंगे:

ben ALL= ALL

'बेन' को केवल एक कमांड निष्पादित करने की अनुमति देने के लिए (जैसे कहें rm), आप निम्न कार्य करेंगे:

ben ALL= /bin/rm 

यदि आप एक उपयोगकर्ता के रूप में एक स्क्रिप्ट चला रहे हैं और पासवर्ड के लिए संकेत नहीं देना चाहते हैं, तो आप 'NOPASSWD' का उपयोग करना चाहेंगे जैसे:

ben ALL=NOPASSWD: /bin/commandname options

आप प्रतिशत नामों के साथ समूह नामों को प्रीफ़िक्स करके समूहों के लिए एक ही काम कर सकते हैं, जैसे:

%supportstaff          ALL= NOPASSWD: /bin/commandname 

2
क्या usernameमापदंडों के सबसेट को प्रतिबंधित किया जा सकता है? कहो start restartलेकिन नहीं stop?
थोरसुमोनर

visudoआदेश तो तुम नहीं टूटते अपने संपादन पर सुरक्षा जाँच करता है sudo/ su: दुर्घटना से आदेश unix.stackexchange.com/a/27595/61349
ThorSummoner

1

संक्षिप्त उत्तर: सुडो।

कॉल निम्नलिखित के समान होगा: sudo /etc/init.d/apache2 restart

सबसे आसान visudo/ etc / sudoers फ़ाइल को सेट करने के लिए उपयोग करना है। देखें man sudoersऔर man visudoविवरण के लिए।


ओपी ने इसे एक स्क्रिप्ट के माध्यम से करने के बारे में कहा- स्क्रिप्ट एक पासवर्ड दर्ज करने में सक्षम नहीं होगी, इसलिए इस जवाब से कोई मतलब नहीं होगा।
मैट फ्लेचर

@MattFletcher जब तक आप NOPASSWD का
रॉबिन कैंटरर्स

0

आप इसे Apache2ctl के लिए एक आवरण लिखकर, वेब प्रशासन समूह को समूह के स्वामित्व को सौंप कर और साद बिट सेट करके भी पूरा कर सकते हैं। यह विस्कोस की तुलना में कम सामान्य समाधान है, लेकिन उपयोगकर्ता की क्षमताओं और त्रुटि की जांच पर कस्टम सीमाएं देता है।

मैंने अपनी जरूरतों के लिए यह टूल लिखा है और इसे github पर साझा किया है: https://github.com/josiahjohnston/ltd_apache2ctl

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