两者之间的技术差异是什么?我唯一注意到的是
sudo su
Run Code Online (Sandbox Code Playgroud)
要求您输入自己的密码(假设您不是 root)
尽管
su root
Run Code Online (Sandbox Code Playgroud)
要求您输入root 的密码。然而,两者似乎都让您登录到 root 用户帐户。
两者之间有细微的差别。su root(可以缩写为 just su)以调用它的用户身份运行 su 命令。以 root 身份sudo运行指定的命令 ( su)。su以 root 身份运行本质上是一个空操作,尽管它可能会启动一个新的 shell。跑步sudo -i是一种更清洁(在我看来)的跑步方式sudo su。
此外,如前所述,默认 Ubuntu 安装中没有 root 密码,因此单独调用su将失败。
第二个命令无法在默认的 Ubuntu 安装中执行,因为该root帐户未启用。
但假设你已经解锁了root帐户并给了他密码,我认为这两个命令只能在环境和 shell 变量集中有所不同。比较两种情况下的输出env,也许还set可以查看差异的输出。