执行 sudo su 和 su root 做同样的事情吗?

use*_*637 6 command-line bash

两者之间的技术差异是什么?我唯一注意到的是

sudo su
Run Code Online (Sandbox Code Playgroud)

要求您输入自己的密码(假设您不是 root)

尽管

su root
Run Code Online (Sandbox Code Playgroud)

要求您输入root 的密码。然而,两者似乎都让您登录到 root 用户帐户。

Sco*_*nce 8

两者之间有细微的差别。su root(可以缩写为 just su)以调用它的用户身份运行 su 命令。以 root 身份sudo运行指定的命令 ( su)。su以 root 身份运行本质上是一个空操作,尽管它可能会启动一个新的 shell。跑步sudo -i是一种更清洁(在我看来)的跑步方式sudo su

此外,如前所述,默认 Ubuntu 安装中没有 root 密码,因此单独调用su将失败。


enz*_*tib 4

第二个命令无法在默认的 Ubuntu 安装中执行,因为该root帐户未启用。

但假设你已经解锁了root帐户并给了他密码,我认为这两个命令只能在环境和 shell 变量集中有所不同。比较两种情况下的输出env,也许还set可以查看差异的输出。