Sudo NOPASSWD没有注册/工作/显示

时间:2014-03-12 23:31:01

标签: bash sudo rhel

Sudo版本:1.7.2p1

我的sudoers文件中有以下(已清理的)行(在文件的末尾):

Runas_Alias GROUPALIASNAME = user1,user2, user3
Cmnd_Alias APP = /path/to/binary/setup -f *, /path/to/binary/patchbinary
%groupname
ALL=(root)NOPASSWD:SOFTWARE,(GROUPALIASNAME)NOPASSWD:APP

如果我从%groupname(user3)作为用户运行“sudo -ll”,我会得到以下结果:

Sudoers entry:
    RunAsUsers: root
    Commands:
        NOPASSWD: /bin/rpm, /usr/bin/up2date, /usr/bin/yum

    RunAsUsers: user1, user2, user3
    Commands:
        /path/to/binary/setup -f *,
        /path/to/binary/patchbinary

我似乎无法获得第二个“nopasswd”条目。我已经尝试删除所有空格,添加空格。我试过“NoPasswd:all”,只是让它给“全部”而不是“nopasswd:all”。我知道规则是匹配的,因为很明显我可以看到非常具体的条目扩展。最后的条目应排除任何冲突的规则。 有关诊断的任何想法或建议吗?不幸的是它是一个“安全”的机器,所以应用补丁/更新sudo不是一种选择。 **对“SOFTWARE”的引用只是默认的sudoers条目。

编辑:目前我已经通过将1行分成2行解决了这个问题。除了使用%groupname ALL =插入换行符之外,我没有做任何其他修改,现在它正确地显示了在没有密码的情况下执行命令的权限。但是它仍然需要密码。

1 个答案:

答案 0 :(得分:3)

为了协助调试和维护,您应该分割规则:

%groupname ALL=(root) NOPASSWD: SOFTWARE
%groupname ALL=(GROUPALIASNAME) NOPASSWD: APP

将您的规则拆分到不同的行上会使您更清楚自己想做什么。

确保您尝试运行sudo的用户位于%groupname

确保使用sudo -u user1(等)之类的内容,以便实际实现Runas_alias。

您需要做的另一件事是,如果您将更改作为目标用户进行测试,如果您刚刚将用户添加到%groupname,则需要注销并重新登录以便实际添加组工作