2012-05-02 25 views
5

Chcę usunąć (uncommnet #) grupę kółek w pliku/etc/sudoers, więc jaki byłby wzór Regex, którego powinienem użyć?Wzór Regex do edycji pliku/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 

.... 
.... 

Chcę usunąć # z poniższej linii.

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

Odpowiedz

15

Nie należy edytować pliku /etc/sudoers przy użyciu jakiegokolwiek skryptu. Jest powód dla polecenia visudo. Zmiany w pliku sudoers powinny być rzadkie i dobrze kontrolowane.

W takiej sytuacji, jeśli edytor komendy visudo jest vi można uruchomić coś podobnego :%s/^# %wheel/%wheel/ odkomentować wszystkie linie jakich początek z %wheel.

Lub, jeśli reeeeeeally że jest to konieczne:

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

uruchomić go bez --in-place najpierw sprawdzić wyjście. Używaj go na własne ryzyko.

+0

Wiedziałem! ale mamy masową instalację i nie mogę tego zrobić ręcznie. To tylko jedna edycja liniowa, dlatego nie martwię się. – Satish

+0

Voila! Proszę bardzo!!! Masz to. To działa! – Satish

+0

co to jest \ s * znaczy? Wierzę, że biała przestrzeń .. – Satish

3

Poniższa powinno działać:

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