2012-05-02 9 views
5

Voglio rimuovere (uncommnet #) il gruppo di ruote nel file/etc/sudoers, quindi quale sarebbe il pattern Regex che dovrei usare?Schema Regex per modificare il file/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 

.... 
.... 

Voglio rimuovere # dalla riga seguente.

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

risposta

15

Si consiglia di non modificare il file /etc/sudoers con qualsiasi tipo di script. C'è un motivo per il comando visudo. Le modifiche al file sudoers devono essere rare e ben controllate.

Detto questo, se il vostro editor per il comando visudo è vi, è possibile eseguire qualcosa di simile :%s/^# %wheel/%wheel/ di decommentare tutte le linee di ciò che inizio con %wheel.

O, se si reeeeeeally pensa che è necessario:

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

eseguirlo senza il primo --in-place per controllare l'output. Usalo a tuo rischio.

+0

sapevo! ma abbiamo un'installazione di massa e non posso farlo a mano. È solo una singola modifica, ecco perché non sono preoccupato. – Satish

+0

Voilà! Ecco qua !!! Avete capito bene. Funziona! – Satish

+0

che cosa significa \ s *? Credo che lo spazio bianco .. – Satish

3

Il seguente dovrebbe funzionare:

sed -i 's/^#\s*\(%wheel\s*ALL=(ALL)\s*NOPASSWD:\s*ALL\)/\1/' /etc/sudoers 
Problemi correlati