自动将用户添加到新的sudoers文件的最简单方法或方法是什么?

时间:2011-03-18 02:40:59

标签: linux sed root sudoers

所以,我是adduser'ed micronxd。我已经传递了micrxd。现在我想让microxd成为sudo用户。

我正在尝试尽可能多地将此过程打包到shell脚本中。如果可能的话,解决方案是否涉及sed'ing sudoers文件?我想对这个野兽般的小金块(sed)有一个非常强烈的把握。

2 个答案:

答案 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 开头的未注释行,并用它替换保留缓冲区。

  • 常规sed缓冲区:[整个sudoers文件]
  • 保留缓冲区: root ALL =(ALL)ALL

2. 'x'

将保持缓冲区与常规“待定”缓冲区交换。

  • 常规sed缓冲区: root ALL =(ALL)ALL
  • 保持缓冲区:[整个sudoers文件]

3. 的/ root / micronxd /'

用tinyxd替换root

  • 常规sed缓冲区: micronxd ALL =(ALL)ALL
  • 保持缓冲区:[整个sudoers文件]

4. 'x'

再次使用常规的“待定”缓冲区交换保持缓冲区。

  • 常规sed缓冲区:[整个sudoers文件]
  • 保持缓冲区: micronxd ALL =(ALL)ALL

5. '/ ^ root / G'

G在匹配 ^ root 的行后附加保留缓冲区。

  • 常规sed缓冲区(只是相关位):
  

##允许root ALL =(ALL)ALL在任何地方运行任何命令   root ALL =(ALL)ALL
  micronxd ALL =(ALL)ALL

  • 保持缓冲区: micronxd ALL =(ALL)ALL

6. 'wsudoers'

将常规sed缓冲区写回sudoers

我确信有更好的方法,但我正试图抓住sed。另外,我不确定user MACHINE=COMMANDS ????是否是所有Linux系统的语法,或者只是fedora(这是我正在处理的)。

无论如何,我很高兴看到其他方式(特别是更好的方式)。