我试图了解为什么“su”失败而“sudo”成功。
因此,由于 root 帐户默认被禁用,“su”命令会失败。很公平。
但我无法理解的是:
当用户尝试以 root 权限执行命令时,需要使用“sudo”。我期望提示密码要求输入“根 密码“(此时,默认情况下未设置) - 因为root 权限即将暂时提供给用户。
但实际情况是,用户被要求输入他自己的密码有人能解释一下这个过程的逻辑吗?
答案1
任何用户已被系统管理员授予权限可以使用该sudo
命令以root权限执行操作。su
另一方面,只有知道目标账户密码的用户才能访问。
sudo
允许特权用户以其他用户身份执行命令。如果未指定用户,则该其他用户将被指定root
。用户需要提供其密码。然后安全系统会检查该用户是否有权以 root 身份运行。su
允许临时成为另一个用户来执行命令。如果未指定用户,则用户将是root
。因此,需要输入目标用户的密码。在 Ubuntu 上,成为su
将root
不起作用,因为root
默认情况下未启用该帐户 - 您无法登录它。但是,如果您有权限,可以使用 打开 root shellsudo -i
。这样,您就可以以 root 权限运行 shell,而无需登录 root 帐户。
在新安装的 Ubuntu 系统上创建的第一个用户(用户 1000)自动被允许使用sudo
以获得 root 权限。任何其他用户都必须由已经拥有此类权限的用户明确授予“sudo”权限。没有此类权限的用户将无法使用sudo
以 root 权限执行命令。