2012-05-02 12 views
5

मैं/etc/sudoers फ़ाइल में (uncommnet #) व्हील समूह को हटाना चाहता हूं तो मुझे रेगेक्स पैटर्न का उपयोग करना चाहिए?रीजिक्स पैटर्न/etc/sudoers फ़ाइल को संपादित करने के लिए

#cat /etc/sudoers 
.... 
.... 
## Allows members of the 'sys' group to run networking, software, 
## service management apps and more. 
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS 

## Allows people in group wheel to run all commands 
# %wheel  ALL=(ALL)  ALL 

## Same thing without a password 
# %wheel ALL=(ALL)  NOPASSWD: ALL 

.... 
.... 

मैं निम्नलिखित पंक्ति से # को हटाना चाहता हूं।

... 
# %wheel ALL=(ALL)  NOPASSWD: ALL 
... 

उत्तर

15

आपको किसी भी प्रकार की स्क्रिप्ट के साथ /etc/sudoers फ़ाइल संपादित नहीं करना चाहिए। visudo कमांड का एक कारण है। sudoers फ़ाइल में संपादन दुर्लभ और अच्छी तरह से नियंत्रित होना चाहिए।

कहा जा रहा है, अगर visudo आदेश के लिए अपने संपादक vi है, तो आप :%s/^# %wheel/%wheel/ की तरह कुछ लाइनों %wheel साथ क्या शुरू के सभी uncomment करने के लिए चला सकते हैं।

या, यदि आप reeeeeeally लगता है कि यह आवश्यक है:

sudo sed --in-place 's/^#\s*\(%wheel\s\+ALL=(ALL)\s\+NOPASSWD:\s\+ALL\)/\1/' /etc/sudoers 

भागो इसके बिना --in-place पहले उत्पादन की जाँच करने के। अपने जोखिम पर इसका इस्तेमाल करो।

+0

मैं जानता था! लेकिन हमारे पास थोक स्थापना है और मैं इसे हाथ से नहीं कर सकता। इसकी सिर्फ एक पंक्ति संपादित करें इसलिए मैं चिंतित नहीं हूं। – Satish

+0

वोला! तुम वहाँ जाओ!!! आपको यह मिला। यह काम करता हैं! – Satish

+0

\ s * का अर्थ क्या है? मुझे सफेद जगह पर विश्वास है .. – Satish

3

निम्नलिखित काम करना चाहिए:

sed -i 's/^#\s*\(%wheel\s*ALL=(ALL)\s*NOPASSWD:\s*ALL\)/\1/' /etc/sudoers 
संबंधित मुद्दे