所以,我是adduser'ed micronxd。我已经传递了micrxd。现在我想让microxd成为sudo用户。
我正在尝试尽可能多地将此过程打包到shell脚本中。如果可能的话,解决方案是否涉及sed'ing sudoers文件?我想对这个野兽般的小金块(sed)有一个非常强烈的把握。
答案 0 :(得分:5)
sudoers
文件实际上只能使用visudo(8)
进行编辑。
也就是说,或许您应该在添加micronxd
用户时向wheel
组添加micronxd
,(请参阅adduser(8) --add_extra_groups
选项),然后将此行添加到{ {1}}(通过sudoers
:):
visudo(8)
现在,您使用主要群组或%wheel ALL=(ALL) ALL
补充群组创建的每个用户都会自动获得wheel
访问权限。您可能永远不需要再次编辑sudo
文件。
(请注意,您可以轻松地将所需人员添加到sudoers
群组; wheel
,找到vigr(8)
群组,并将其登录名称附加到该行。请使用逗号分隔用户名。)
答案 1 :(得分:0)
好的确定OK!我完全明白了。 这可能有点矫枉过正,但我不确定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'
将保持缓冲区与常规“待定”缓冲区交换。
3.
的/ root / micronxd /'
用tinyxd替换root
4.
'x'
再次使用常规的“待定”缓冲区交换保持缓冲区。
5.
'/ ^ root / 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(这是我正在处理的)。
无论如何,我很高兴看到其他方式(特别是更好的方式)。