我正在尝试启用无密码 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 update
sudoers 配置行中,但最终执行的命令是yum -y update
. (区别在于额外的参数-y
)。
然后,命令字符串的不匹配导致 sudoers 无法达到设计的定义。
因此,我建议采用以下方法来纠正该问题:
/usr/bin/yum -y update
在设置 sudoer 配置时使用命令字符串,或者使用命令字符串
/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