为什么 sudo 需要用户密码而不是 root 密码?

Yan*_*v G 0 permissions command-line sudo password

我试图理解为什么“su”失败而“sudo”成功。

因此,由于默认情况下禁用 root 帐户,因此“su”命令会失败。很公平。

但我无法掌握的事情如下:

当用户尝试使用 root 权限执行命令时,需要“sudo”。我希望提示密码会要求输入“ root 密码”(默认情况下,此时未设置)——因为root 权限将暂时授予用户。

然而,实际发生的是用户被要求输入他自己的密码。有人可以解释一下这个过程的逻辑吗?

van*_*ium 12

任何被系统管理员授予权限的用户都可以使用该sudo命令以 root 权限执行操作。su另一方面,只有知道目标帐户密码的用户才能访问。

  • sudo允许特权用户以另一个用户的身份执行命令。如果未指定用户,则该其他用户将为root。用户需要提供他/她的密码。然后,安全系统检查该用户是否具有 root 权限。
  • su允许暂时成为另一个用户来执行命令。如果未指定用户,则用户将为root。因此,需要输入目标用户的密码。在 Ubuntu 上,asu成为root不起作用,因为root默认情况下该帐户未启用 - 您无法登录它。sudo -i但是,如果您有权限,您可以使用 打开 root shell 。这样,您就可以使用 root 权限运行 shell,而无需登录到 root 帐户。

在新安装的 Ubuntu 系统上创建的第一个用户(用户 1000)会自动获得sudoroot 权限。任何其他用户必须由已拥有此类权限的用户明确授予“sudo”权限。没有此类权限的用户将无法使用sudoroot 权限执行命令。