Sudoers के माध्यम से कई कमांड को nopasswd एक्सेस कैसे दें?


45

नीचे मुझे पता है:

मुझे किसी sudoersविशेष कार्य के लिए उपयोगकर्ता को अधिकार देने के लिए फ़ाइल में इस पंक्ति को जोड़ना होगा ।

user_name ALL=NOPASSWD: /usr/bin/apt-get install

इस मामले में मैं इस उपयोगकर्ता को सभी स्थापित अधिकारों के साथ 2 सेवाओं (यानी Apacheऔर MySQL) को पुनरारंभ करने के लिए एक्सेस देना चाहता हूं ।

उपरोक्त लाइन का उपयोग करते हुए, मैंने उसे सभी स्थापित अधिकार दिए हैं, अब क्या मुझे सेवाओं के अधिकार देने के लिए एक ही पंक्ति को दो बार जोड़ना होगा? या क्या मैं सिर्फ कॉमा या कुछ अलग करके उन कमांड्स को एक ही लाइन में जोड़ सकता हूं?

जवाबों:


48

मैंने सीमित व्यवस्थापक अधिकारों के लिए एक नया समूह बनाकर समस्या को हल कर दिया है ... उस समूह का नाम LimitedAdminsउसके बाद मैंने sudoersनीचे फ़ाइल के रूप में अद्यतन किया है ।

मैंने जो लाइन जोड़ी है वह है:

%LimitedAdmins ALL=NOPASSWD: /usr/bin/apt-get*, /etc/init.d/apache2 restart

यह पूरी /etc/sudoersफाइल है:

# This file MUST be edited with the 'visudo' command as root.    
#   
# Please consider adding local content in /etc/sudoers.d/ instead of directly modifying   his file.   
#   
# See the man page for details on how to write a sudoers file.  
# 
Defaults    env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL  

#includedir /etc/sudoers.d
%domain_name\\administrators ALL=(ALL) ALL
%LimitedAdmins ALL=NOPASSWD: /usr/bin/apt-get*, /etc/init.d/apache2 restart

यदि आपका सिस्टम डोमेन है या नहीं तो यह पूरी तरह से ठीक है।


आप #includedirलाइन के बाद सामान रखने वाले नहीं हैं?
हम्सटर

@ थमस्टार अरे हाय! हाँ, आप सही हैं, आपने मेरी कंपनी में इस कॉन्फ़िगरेशन फ़ाइल का उपयोग 2 साल से अधिक समय से किया है और यह पूरी तरह से ठीक है। यहां तक ​​कि आप भी मुझे सलाह देंगे कि अंतिम दो पंक्तियों को पहले रख दें #includedir
हर्ष

3
या बेहतर, उन दो पंक्तियों को संपादन / आदि / sudoers के बजाय /etc/sudoers.d के तहत एक नई फ़ाइल में डालें।
thaharold

@tgharold हाँ दोस्त !! आप सही कह रहे हैं ... यह वास्तव में मेरे द्वारा सुझाए गए से बेहतर विकल्प है ... :) अपने विचार की सराहना करें और मेरे स्थान पर भी लागू करने का प्रयास करेंगे।
हृष

क्या #includedir एक टिप्पणी है? या इसमें शामिल होना स्वचालित रूप से होता है और टिप्पणी सिर्फ हमें याद दिलाती है?
हीटफैनजॉन

12

लगता है कि अल्पविराम आपको क्या चाहिए।

Cmnd_Alias ​​PRINTING = / usr / sbin / lpc, / usr / bin / lprm
...
उपयोगकर्ता 3 ALL = PRINTING

स्रोत


मैंने अधिकार दिए हैं जिस तरह से आपने इसका उल्लेख किया है लेकिन मुझे नीचे के रूप में त्रुटि संदेश मिला है। <br/> E: लॉक फ़ाइल / var / lib / dpkg / लॉक नहीं खोल सका - खुला (13: अनुमति अस्वीकृत) <br/> E: प्रशासन निर्देशिका (/ var / lib / dpkg /) को लॉक करने में असमर्थ हैं, तुम जड़ हो? ... क्या कोई इसमे मेरी मदद कर सकता है?
हर्ष

@ ऋषि मैं कोशिश करूंगा कि एक बार मैं घर पहुँच जाऊँ
कार्तिक टी

मेरी sudores फ़ाइल में नीचे दी गई बातें हैं।
Hrish

# उपयोगकर्ता विशेषाधिकार विनिर्देश रूट ALL ALL = (ALL: ALL) ALL # व्यवस्थापक समूह के सदस्य रूट विशेषाधिकार प्राप्त कर सकते हैं% admin ALL = (ALL) सभी # समूह sudo के सदस्यों को किसी भी कमांड% sudo निष्पादित करने की अनुमति दें ALL = (ALL: ALL) सभी #includedir /etc/sudoers.d $ sudo नैनो / etc / sudoers% Domain_Name \\ एडमिनिस्ट्रेटर ALL = (ALL) सभी% Domain_Name \\ user.name ALL = NOPASSWD: / usr / bin / apt-get install, / etc आदि। /init.d/apache2 पुनरारंभ
हृष

2

मैंने जो किया वह समाप्त हो गया (आप जो खोज रहे हैं उसके समान):

## PRTG monitoring
Cmnd_Alias PRTG = /bin/cat /proc/loadavg, /bin/df, /var/prtg/scripts/check_proc.sh
prtg ALL = NOPASSWD: PRTG

के भीतर: /etc/sudoers.d/666-prtg

(666, क्योंकि ... अच्छी तरह से ... prtg एक विंडोज़ आधारित निगरानी उपकरण है जिसे आप जानते हैं)

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