2016-12-14 18 views
0

我认为我相当接近检查用户是否属于Ubuntu中的sudo组,然后向sudoers文件添加一行。除了当我在sudoers文件中看,我看到:检查用户是否属于sudo组的脚本

$IDUSER ALL=NOPASSWD: /usr/local/sbin/myscript 

而不是那个用户名,例如。

bob ALL=NOPASSWD: /usr/local/sbin/myscript 

以下是我有:

#! /bin/sh 

set -e 

IDUSER=$(grep -Po '^sudo.+:\K.*$' /etc/group) 

if [ `id -u $IDUSER 2>/dev/null || echo -1` -ge 0 ]; then 
    echo '$IDUSER ALL=NOPASSWD: /usr/local/sbin/myscript' >> /etc/sudoers 

else 
    echo "Script failed..." 
fi 

理想情况下,我想须藤组中的所有用户添加到sudoers文件。

谢谢。

+0

嗯,你为什么要这么做?我认为你可以像使用'%sudoers'而不是用户名一样引用组中的所有成员,但应该彻底检查文档 –

回答

0

在单引号'中,bash变量不会被扩展。请使用双引号"代替echo

如果你只是试图让该组须藤用户运行此命令,不过,只需添加一行:

%sudo ALL=NOPASSWD: /usr/local/sbin/myscript 

/etc/sudoers文件。 %符号表示一个组,在这里。

+0

谢谢克里斯,这就实现了。使用上述脚本将sudo组中的所有用户添加到sudoers文件的任何建议? –

+0

太好了,谢谢。 –

+0

@sh_newbie我在回答中添加了一些信息。你的脚本可以完成这项工作(尽管如果你运行了两次,会出现重复行等恼人的事情,并且可能会有一些细微的bug),但通常最好不要修改任何脚本中的sudoers文件 - 这很容易把事情搞砸了。 – Chris

相关问题