su和sudo su之间的区别是什么?

因为好奇所以问一下。 :)
当我输入
sudo su

它要求我输入用户密码。当我只输入
su

它要求输入root用户密码。但是这两个命令都将我导向了root终端。那么为什么会有这样的差异呢?

1@muru OP问的是susudo su之间的区别,而不是sudo -ssudo -i - Maythux
2@新用户请再次阅读。 - muru
1永远没有充分的理由去运行 sudo su。我一直想知道为什么在 Ubuntu 社区中这么常见。它很笨拙、不优雅,且增加了不必要的开销。如果您已经设置了 root 帐户,只需运行 su,否则运行 sudo -isudo su 就太傻了。 - terdon
1通常情况下,当用户在企业局域网上时,系统管理员可能不会与所有员工共享root用户密码。在这种情况下,用户可以通过输入sudo su并插入用户密码来更容易地成为root用户。由于大多数Linux用户是企业的员工,比如IT部门,我猜这可能是一个原因。 :) - Anonymous Platypus
1@AnonymousPlatypus 不,那是在你使用 sudo -isudo -s 时的情况,根据你想要做什么,可能还需要使用 -E。你不希望使用的是 sudo su。这是因为没有理由运行两个程序,一个足够,并且这样你可以更好地控制结果环境。 - terdon
1个回答

sudo su 的意思是以 sudo 的身份运行命令 su,也就是以 root 身份运行。在这里,系统会要求您输入密码,因为您是一个 sudoer(有 sudo 权限的用户)。当您输入密码后,您将获得 root 权限。所以,su 命令不会再要求输入密码。这与您已经是 root 用户一样,切换到其他用户时也不需要输入密码,因为您已经是 root。

当您只运行命令 su 时,您是以普通用户的身份运行它。由于 su 的意思是切换到 root 用户,所以系统会要求您输入 root 密码。


2这是一个很好的答案,所以我不会再写另一个,但我想包含我找到的以下详细的博客文章:http://johnkpaul.tumblr.com/post/19841381351/su-vs-sudo-su-vs-sudo-u-i - Mark Kirby