为了确保设置正确的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命令和参数”。