当 runas_default 是不同用户时 sudo -l

当 runas_default 是不同用户时 sudo -l

由于某些原因,为了利用系统管理命令,有必要使用双因素帐户。该帐户与普通登录​​帐户不同。例如,如果标准登录帐户是“alice”,则双因素帐户可能是“alice2”。

我有一个sudo类似于以下内容的文件(每个允许的用户一个,位于 /etc/sudoers.d 中):

Defaults:alice  runaspw,runas_default=alice2

alice ALL=(alice2) /bin/bash

这是因为系统会提示“alice”输入“alice2”的密码(这是一个只有两因素的密码),然后“alice”更改为“alice2”帐户。从那里,我有一个单独的文件,允许 alice2无需密码sudo即可使用任何命令。sudo

因此,就双因素身份验证而言,一切似乎都很好。但是,有一些命令不受此两因素方法的限制(例如在某些计算机上重新启动某些服务)。我想,我也有这样的工作,比如

Cmnd_Alias  SRVCHTTPD = /usr/bin/systemctl restart httpd
Defaults!SRVCHTTPD  !runaspw,runas_default=root

这里,提示用户“alice”输入“alice”的密码,并且可以重新启动服务。

现在是我的问题。当用户查看sudo -l可以执行哪些命令时,系统会提示用户输入双因素帐户 (alice2),而不是主帐户 (alice)。我尝试添加命令别名(遵循关于 sudo -l 的建议),本质上是复制上面的行。

Cmnd_Alias SUDOLIST = /usr/bin/sudo -l
Defaults!SUDOLIST !runaspw,runas_default=root

然而这种做法并没有起到作用,仍然提示用户输入双因素账户密码。

对于我在这里做得不正确的任何建议,我将不胜感激。

相关内容