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

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

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

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

但我无法理解的是:

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

但实际情况是,用户被要求输入他自己的密码有人能解释一下这个过程的逻辑吗?

答案1

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

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

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

相关内容