我想在/ 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