已解决 - 使用 rundeck 将 sudo 改为用户身份,而不是 root 身份

已解决 - 使用 rundeck 将 sudo 改为用户身份,而不是 root 身份

我正在 Centos7 上配置一个服务器,用于一些生物信息分析,并且安装了 rundeck。Rundeck 似乎以自己的帐户名启动脚本,我决定使用 sudo 绕过来让它访问我的脚本。

使用 visudo 我可以使用 rundeck 将 sudo 更改为 root,从而执行一些无需密码的命令。当我输入用户 bioinfo 而不是 root 时,系统会要求输入密码才能执行相同的命令。

以下是 sudoers 文件的一部分:

root    ALL=(ALL)       ALL
bioinfo ALL=(ALL)       ALL
rundeck ALL=(bioinfo)      NOPASSWD:/home/bioinfo/singularity_data/Bionano3.5,/usr/local/bin/singularity,/bin/*

我不知道 root 和 bioinfo 之间有什么不同,因为他们拥有相同的权限。有谁知道为什么 bioinfo 无法工作,而 root 可以正常工作?

我尝试以 root 身份运行我的配置

su - rundeck

然后做一个

sudo whoami

如果 root => root
如果 bioinfo => 询问密码

谢谢

答案1

为了让用户bioinfo能够运行 sudo 命令而不输入密码您需要修改bioinfosudoers 中的条目以包含NOPASSWD:

bioinfo ALL=(ALL)   NOPASSWD: ALL

请注意,这样做允许用户运行任何 sudo 命令而无需输入密码。

如果用户是 sudoers 中指定的组 (例如 %wheel 或 %users) 的成员,则最后一个条目优先 - 因此将此条目放在下面。

如果您希望一个用户能够以另一个用户的身份运行而不需要密码:

rundeck ALL=(bioinfo)      NOPASSWD:/home/bioinfo/singularity_data/Bionano3.5,/usr/local/bin/singularity,/bin/*

那么你需要以该格式调用命令,sudo -u bioinfo <cmd>否则它会认为你仍在尝试以 root 身份调用

相关内容