2014-03-12 92 views
2

须藤版本:1.7.2p1须藤NOPASSWD不登记/工作/显示

我在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 

如果我运行“命令-ll”从%组名(用户3)我得到下列用户:

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”,它使它给出了“all”而不是“nopasswd:all”。我知道规则是匹配的,因为很明显,我可以看到扩展的特定条目。最后的条目应该排除任何冲突的规则。 有关诊断此问题的任何想法或建议?不幸的是,它是一个'安全'的机器,所以应用补丁/更新sudo不是一种选择。 **对“软件”的引用只是默认的sudoers条目。

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

+0

你可以发布你的完整(redacted)sudoers,因为默认设置可以在不同的操作环境(即Debian vs OpenSuse vs ...)之间有所不同吗? – 6EQUJ5

+0

此外,在发布代码/输出时,请尽量避免从HTML发布,因为它无法正确呈现 - 它需要缩进四个空格;作为提示,如果您从电子邮件粘贴复制到文本编辑器并在粘贴到SO之前修复它:-) – 6EQUJ5

+0

感谢您对它进行格式设置。我不确定如何达到正确的效果。张贴整个sudoers是很难的,因为会有太多需要改变的地方,改变它可能会引入错误。 – BSAFH

回答

3

以辅助调试和维修,你应该分裂您的规则:

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

分割你的规则到不同的线条使得它更清晰的你正在尝试做的。

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

确保您使用的东西类似sudo -u user1(etc),所以Runas_alias实际上是有效的。

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

+0

我做了分裂,我认为问题实际上是2个问题。首先是原始文章中的详细描述(NOPASSWD未注册该Cmnd_Alias),第二个可能仅仅是我缺乏知识。 如果我运行'sudo -u user1 APP',它会正常执行。如果我运行'sudo -Hinu user1 APP',那么我得到密码错误。我通常不使用Hinu,所以我会更仔细地研究其他参数如何影响结果。 编辑:澄清 - 一旦我拆分线NOPASSWD显示在sudo -ll。我不确定我是否可以将其分开制作sudoers文件已经很大。 – BSAFH

+0

它是导致休息的-Hinu中的“我”。可能是目标服务帐户的个人资料中的某些内容。 -Huu工作正常。不幸的是,我必须严格使用-Hinu才能回到书本上。如果您的下一个反应更好,现在将不会给您答复。 – BSAFH

+0

正如以上编辑中指出的那样,有两个问题。 第一个是单行(对于%组)需要被分成2.我不清楚它是什么。 第二个问题是sudo上的“-i”标志没有列在我原来的问题中。执行时,“-i”转换为“bash -c”。 所以最终的结果是APP被定义为之前的版本,但在每个命令之前都附加了“/ bin/bash -c”,并且根据Andrew McDonnell的帖子,以%groupname开头的行被拆分。我还有其他用户和组的所有行都没有问题。不知道为什么,但确定关闭。 – BSAFH