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

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

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

在这两种情况下也执行 su 和 su - 让我成为 root 用户。那么它有什么好处呢?

答案1

描述

它们之间是有区别的:

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

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


结论:

  • su username:
    • 您必须提供目标用户的密码
    • 您将进入非登录 shell(诸如此类的内容.profile将不会被获取)。
  • sudo su - username
    • 您正在使用自己的密码以 root 身份运行su命令(如果您被允许)
    • 您将获得具有目标用户访问权限的登录 shell。

使用哪一个:

在用户之间共享单个密码不是一个好主意,因此最好su根本不使用,相反我们可以使用sudo,也不需要运行类似的命令:

sudo su - username

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

sudo -i -u username

如果您必须使用su,那么请始终使用它,su -以确保所有内容均按其应有的方式来源,并且没有任何内容受到损害。

相关内容