使用参数启用无密码 Sudo

使用参数启用无密码 Sudo

我正在尝试启用无密码 sudo 来在 RHEL 机器上更新 yum。我在 sudo visudo 中有以下行。

myuser ALL=(ALL) NOPASSWD: /usr/bin/yum update

在 myuser 下执行此操作后,我仍然无法在没有提供 sudo 密码的情况下更新 yum。

  • /usr/bin/env sudo yum -y update
  • sudo yum -y update

我之所以需要这样做,是因为 Capistrano 3 中说这是最好的方法。它似乎不再允许 sudo 提示。

答案1

实际上,sudoers 中列出的命令字符串需要完全匹配。

在您的示例中,您将命令字符串放在/usr/bin/yum updatesudoers 配置行中,但最终执行的命令是yum -y update. (区别在于额外的参数-y)。

然后,命令字符串的不匹配导致 sudoers 无法达到设计的定义。

因此,我建议采用以下方法来纠正该问题:

  1. /usr/bin/yum -y update在设置 sudoer 配置时使用命令字符串,或者

  2. 使用命令字符串/usr/bin/yum(其中没有参数)。

答案2

尝试:

Cmnd_Alias YUM = /usr/bin/yum

用户 ALL=(ALL) NOPASSWD: YUM

答案3

检查你的sudoers文件中是否有以下内容:

%sudo   ALL=(ALL:ALL) ALL

如果是,请尝试评论一下:

#%sudo   ALL=(ALL:ALL) ALL

相关内容