为用户 A 配置 sudo,以便以用户 B(非 root)身份运行命令

为用户 A 配置 sudo,以便以用户 B(非 root)身份运行命令

我有一些自动化工具需要能够以特定用户身份运行。用户名是“ig_root”,它仅供监控工具使用(检查磁盘空间、数据库、CPU 工作负载等),当某些事情可能需要人工干预时,它会向我们发送警告。

我们需要能够执行的操作是发出 sudo 命令以 ig_root 用户身份运行。我的“invadm”帐户是 sudo 组的成员,它可以“sudo su - root”,但会提示输入密码。我需要设置的是能够为非 root 用户执行类似操作,但不提示输入密码。

换句话说,作为“invadm”用户,我们想要这样做:

# sudo -u ig_root check_dbspace

...没有看到这个:

[sudo] password for invadm:

但我还希望连接到 root 时仍然需要每个人输入密码:

# sudo su - root
[sudo] password for invadm:

那可能吗?

我的当前 visudo 条目在我的测试服务器上如下所示:

# User privilege specification
root    ALL=(ALL:ALL) ALL
invadm  ALL=(ig_root) NOPASSWD: ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

有什么想法吗?我想也许我必须发出 systemctl 并停止/重新启动某些东西,但我了解到没有 sudo 守护进程可以重新启动。我还尝试注销并重新登录以选择任何新环境...没有运气。

目前,唯一一个 sudo 不要求输入密码的帐户是我作为 root 用户时。

# sudo -u ig_root whoami
ig_root

答案1

我认为问题在于,当多个条目与同一用户匹配时,将使用最后一个匹配项。由于invadm属于 sudo 组,因此该%sudo条目适用,因此要求输入密码。

只需将您的特定规则移至文件末尾即可。

相关内容