我看到两者都做了同样的事情,并且最终都在同一个目录中。那么它真的相同还是有区别?
在这两种情况下也执行 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。
- 您正在使用自己的密码以 root 身份运行
使用哪一个:
在用户之间共享单个密码不是一个好主意,因此最好su
根本不使用,相反我们可以使用sudo
,也不需要运行类似的命令:
sudo su - username
我们可以设置我们的/etc/sudoers
文件,然后使用类似的东西:
sudo -i -u username
如果您必须使用su
,那么请始终使用它,su -
以确保所有内容均按其应有的方式来源,并且没有任何内容受到损害。