su 用户名和 sudo su - 用户名有什么区别?

Sou*_*Ray 3 su sudo

我看到两者都做同样的事情并且最终我都在同一个目录中。所以它真的一样还是有区别?

也做 su 和 su - 在这两种情况下都让我成为 root 用户。那么它是如何有益的?

Rav*_*ina 11

描述

它们之间有以下区别:

首先使用su username你必须提供“用户名”的密码才能切换到它的帐户,而sudo su - username用你自己的密码一秒钟你将成为 root,然后不使用任何其他密码你正在运行su - uesrname切换到“用户名”。

另一个区别是使用-withsu它会在运行登录 shell 时切换到用户,而不是-你将获得非登录 shell。


结论:

  • su username
    • 您必须提供目标用户的密码
    • 您将被放入一个非登录的 shell(诸如此类的东西.profile将无法获取)。
  • sudo su - username
    • 您正在使用自己的密码以suroot身份运行命令(如果您被允许)
    • 您将获得具有目标用户访问权限的登录 shell。

使用哪一种:

在用户之间共享一个密码不是一个好主意,所以最好不要使用su,而是我们可以使用sudo,也不需要运行类似的东西:

sudo su - username
Run Code Online (Sandbox Code Playgroud)

我们可以设置我们的/etc/sudoers文件然后使用类似的东西:

sudo -i -u username
Run Code Online (Sandbox Code Playgroud)

如果您必须使用su,那么请始终使用它su -,以确保一切都按原样采购,并且没有受到任何损害。