Regex pattern to edit /etc/sudoers file

awk, bash, linux, regex, sed

Solution

You shouldn't edit the `/etc/sudoers` file with any sort of script. There's a reason for the `visudo` command. Edits to the `sudoers` file should be rare and well-controlled.

That being said, if your editor for the `visudo` command is vi, you can run something like `:%s/^# %wheel/%wheel/` to uncomment all of the lines what start with `%wheel`.

Or, if you reeeeeeally think it's necessary:

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

Run it without the `--in-place` first to check the output. Use it at your own risk.

Problem

I want to remove (uncommnet #) wheel group in /etc/sudoers file so what would be the Regex pattern i should use? ``` #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 .... .... ``` I want to remove # from following line. ``` ... # %wheel ALL=(ALL) NOPASSWD: ALL ... ```

Original source