为什么不sudo – 我尊重sudoers文件

为了确保设置正确的PATH环境variables,我使用了sudo -i选项,但是发现sudoers文件没有被尊重。

这是我的设置:

/etc/sudoers

 Defaults env_reset # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL) ALL user ALL=(ALL) ALL user ALL=NOPASSWD: /usr/local/bin/chef-solo 

运行sudo chef-solo -v不会提示input密码。 运行sudo -i chef-solo -v将提示input密码。

sudo -i执行你的shell,而不是命令。 它将命令传递给shell。

对于sudo -i无密码工作,使用别名ALL作为运行命令的规则需要NOPASSWD标志。

在我目前的工作地点,政策禁止将它用于任何可能作为根源(包括su)的命令。 相反,我们使用NOPASSWD结合非root用户运行用户来切换帐户而不使用su,如以下规则所示:

%组ALL =(用户)NOPASSWD:ALL

这就允许使用“sudo -iu user”和“sudo -u user命令和参数”。