一个用户的多个sudotypes

我有一个情况,我希望主要的pipe理员用户(所有的sudo)有一个命令作为另一个用户的无密码sudo。 据我所知,这应该在/ etc / sudoers中给出以下内容:

ramo ALL=(otherUser) NOPASSWD: /usr/bin/command ramo ALL=(ALL) ALL 

但是这两条线似乎有冲突,或者第二条覆盖了第一条。 任何想法如何做到这一点?

干杯

拉莫

编辑:原来我稍微误解了sudo如何指定用户。 我有一个印象,如果你有所有=(otherUser),那么你不需要“sudo -u其他用户”,但可以sudo。 事实并非如此。

顺序很重要,行为在sudoers(5)手册页中有描述:

当多个条目匹配用户时,它们按顺序应用。 如果有多个匹配,则使用最后的匹配(不一定是最具体的匹配)。

用你原来的规则,“(全部)全部”是最后一个匹配,所以sudo提示input密码。

以下/ etc / sudoers工作:

 ramo ALL=(ALL) ALL ramo ALL=(otherUser) NOPASSWD: /bin/whoami 

例如:

 $ sudo -k /bin/whoami [sudo] password for ramo: root $ sudo -k -u otherUser /bin/whoami otherUser $ sudo -k -u otherUser /bin/true [sudo] password for ramo: $ sudo -k /bin/true [sudo] password for ramo: 

使用sudo-1.8.6p7-1testingFedora 19

我想你可以用'!'来否定。 尝试第二行

 ramo ALL=(ALL) !/usr/bin/command