所以,我添加了用户的 micronxd。我已经passwd'd micronxd。现在我想让 micronxd 成为 sudo 用户。
我正在尝试尽可能多地将这个过程打包到一个 shell 脚本中。如果可能的话,该解决方案是否可以涉及 sed'ing sudoers 文件?我想对那个可怕的小金块(sed)有一个非常强大的把握。
该sudoers
文件实际上应该只用visudo(8)
.
也就是说,也许您应该在添加用户时添加micronxd
到wheel
组中micronxd
,(请参阅adduser(8) --add_extra_groups
选项)然后将此行添加到sudoers
(通过visudo(8)
:):
%wheel ALL=(ALL) ALL
现在,您使用主要组或辅助组创建的每个用户都会自动wheel
获得sudo
访问权限。您可能永远不需要sudoers
再次编辑该文件。
(请注意,您可以轻松地将您想要的任何人添加到wheel
组;vigr(8)
,找到该wheel
组,并将其登录名附加到该行。使用逗号分隔用户名。)
好好好!我完全明白了。这可能有点矫枉过正,但我不确定 sudoers 文件在不同发行版中是否相似。
我在这里找到了关于 sed 保存缓冲区的文档:http: //anaturb.net/sed.htm
和这里 sed 的 x 命令: http ://www.kingcomputerservices.com/unix_101/hands_off_editing_with_sed_part_2.htm
我想出了这个:
sed -e '/^root/{h;}' -e 'x' -e 's/root/micronxd/' -e 'x' -e '/^root/G' -e 'wsudoers' sudoers
以下是6个步骤的细分:
1.
'/^root/{h;}'
查找以root开头的未注释行,并用它替换保存缓冲区。
2.
'X'
将保持缓冲区与常规的“待 sed'd”缓冲区交换。
3.
's/root/micronxd/'
用 micronxd 替换 root
4.
'X'
再次将保持缓冲区与常规的“待 sed'd”缓冲区交换。
5.
'/^根/G'
G 在匹配^root的行之后附加保持缓冲区。
##
允许 root ALL=(ALL) ALL 在任何地方运行任何命令
root ALL=(ALL) ALL
micronxd ALL=(ALL) ALL
6.
'wsudoers'
将常规 sed 缓冲区写回 sudoers
我确信有更好的方法,但我正在尝试掌握 sed。另外,我不确定user MACHINE=COMMANDS ????
是所有 linux 系统的语法,还是只是 fedora(这是我正在处理的)。
无论如何,我很高兴看到其他方式(尤其是更好的方式)。