如何让 sudo 询问 root 密码?

Dav*_*d Z 34 linux root sudo

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

我知道它可以用 in 中的一行来完成/etc/sudoers,但我似乎永远无法正确解析手册页中的 BNF 语法来确切地找出要写的内容。

小智 33

好的,它又来了,所以你可以设置复选标记。

在 中/etc/sudoers,添加这一行:

Defaults rootpw
Run Code Online (Sandbox Code Playgroud)

打开 rootpw 标志,使 sudo 要求输入 root 密码。

  • 你应该总是使用 `visudo` 命令而不是手动编辑 `/etc/sudoers` 文件。`visudo` 在保存之前验证文件以确保它是正确的,所以如果你犯了语法错误,你就不会被锁定在 sudo 之外...... http://askubuntu.com/a/81054/166411 (13认同)

Ign*_*ams 7

你需要打开rootpw旗帜。


Pau*_*ker 6

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

Defaults targetpw
ALL ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

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

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

Defaults rootpw
Run Code Online (Sandbox Code Playgroud)

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

一种可行的可能性是:

Defaults rootpw
myuser ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

简而言之,myuser现在只要知道 root 密码,就可以在所有主机上以任何用户身份运行所有命令。

另一种可行的方法是:

Defaults rootpw
%sudousers ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

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

su
usermod -a -G sudousers myuser
exit
Run Code Online (Sandbox Code Playgroud)

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

Defaults rootpw
myuser ALL=(ALL) ALL
%sudousers ALL=(ALL) ALL
Defaults:%sudousers !rootpw
Run Code Online (Sandbox Code Playgroud)

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


小智 5

我知道这个问题很老,但它是我为这个用例找到的最简洁的问题(这是一个很小的百分比,是真的,但在正确的场景中仍然是合法和有帮助的)。

在将来自各种来源的所有步骤放在一起后 - 包括对这个问题的多个答案,这些步骤适用于 Ubuntu-Gnome 16.04 LTS:

  1. 为root设置密码
    • 这是关键要做第一!(由于标准的安全配置,Ubuntu 自动没有 ROOT 用户的密码。
    • 如果您不先执行此操作,您将无法访问 root 权限。这可以通过使用 Live Disk 启动、安装硬盘驱动器和编辑 sudoers 文件来克服,但最好避免这种情况。
    • 打开终端并输入: sudo passwd
    • 为 ROOT 用户设置新密码。
  2. 更改 SUDO 配置以需要 root 密码
    • SUDO 需要请求 root 权限的用户
    • 设置“rootpw”标志会告诉 SUDO 需要 root 用户的密码。
    • 打开终端并输入: sudo visudo
    • 这将打开“/etc/sudoers”文件
    • 在其他“默认”行之后,添加: Defaults rootpw
    • 保存(假设你是nano,这是默认的,这是CTRL+O)
    • 关闭文件 (CTRL+X) 并退出终端
  3. 你完成了!

只是一个简短的说明 - 我还想确保无法使用 root 用户从图形登录中登录,因此正在寻找排除方法。显然,默认情况下排除了 root 用户,并且不能使用 Gnome 图形登录来登录 - 这是一件非常好的事情!