如何让 sudo 询问 root 密码?

如何让 sudo 询问 root 密码?

当我sudo以普通非特权用户身份运行时,它会要求输入我的密码,而不是 root 密码。这通常很方便,但它减少了以 root 身份运行命令所需的信息量。那么我怎样才能要求sudo输入 root 密码而不是调用用户的密码呢?

我知道可以用一行来完成/etc/sudoers,但我似乎无法正确地解析手册页中的 BNF 语法来弄清楚到底要写什么。

答案1

好的,它再次显示出来,以便您可以设置复选标记。

在 中/etc/sudoers添加以下行:

Defaults rootpw

打开 rootpw 标志,让 sudo 询问 root 密码。

答案2

您需要打开rootpw标志。

答案3

一种常见的配置,需要目标的密码(这不是我们想要的):

Defaults targetpw
ALL ALL=(ALL) ALL

第二行会大声读出:“所有主机上的所有用户在执行所有命令时都可以模拟(所有)用户。”并且意味着Defaults targetpw他们需要知道他们模仿的用户的密码才能这样做。

天真地将这个简单的配置更改为:

Defaults rootpw

不会让任何用户或组拥有以其他用户身份运行命令的权限。

一个可行的方案是:

Defaults rootpw
myuser ALL=(ALL) ALL

用简单的英语来说,myuser现在只要知道 root 密码,就可以以任何用户的身份在所有主机上运行所有命令。

另一个可行的方案是:

Defaults rootpw
%sudousers ALL=(ALL) ALL

sudousers只要知道 root 密码,该组的任何成员都可以以任何用户身份在所有主机上运行所有命令。要允许myuser运行 sudo 命令,sudousers需要将其添加到其次要组中。

su
usermod -a -G sudousers myuser
exit

编辑:关于例外和范围的澄清示例:

Defaults rootpw
myuser ALL=(ALL) ALL
%sudousers ALL=(ALL) ALL
Defaults:%sudousers !rootpw

这需要myuser知道 root 密码,但要求sudousers组中的任何成员使用自己的密码。请注意,如果myuser是成员,sudousers则此行为也会覆盖rootpw他们(最后一个匹配的条目覆盖先前的条目)。

答案4

您可以关闭 sudo 并使用su -c

相关内容