正则expression式模式来编辑/ etc / sudoers文件

我想在/ etc / sudoers文件中删除(uncommnet#)轮组,那么我应该使用哪种正则expression式

#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 ... 

你不应该用任何脚本编辑/etc/sudoers文件。 visudo命令有一个原因。 编辑到sudoers文件应该是罕见的和良好的控制。

也就是说,如果visudo命令的编辑器是vi,那么可以运行如下命令:%s/^# %wheel/%wheel/来取消以%wheel开头的所有行的注释。

或者,如果您认为这是必要的:

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

首先运行它,不要先检查输出。 需要您自担风险使用它。

以下应该工作:

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