技术知识库

帮助中心 >  产品文档 >  云服务器 >  su”和“su - ”命令的区别

su命令用于切换到另一个用户,换句话说,在正常的登录会话期间更改用户标识 (这是许多Linux用户有时称为交换机(-)用户的原因)。 如果执行时没有用户名 ,例如su - ,默认情况下它将以root用户身份登录。


新的Linux用户面临的共同挑战是理解“su”和“su - ”之间的差异。 本文将帮助您简单了解Linux系统中“su”和“su - ”的区别。


通常,要成为另一个用户或登录到其他用户,可以调用以下命令,然后提示您输入要切换到的用户的密码。


$ su howtoing

image.png

在Linux中切换用户


考虑到上面的屏幕截图中的情况,需要注意的是用户howtoing保持用户aaronkilik原始登录会话的环境,当前工作目录和可执行文件的路径也保持不变。


因此,当用户howtoing尝试列出工作目录(仍然是用户aaronkilik的工作目录)时,会显示错误:“ ls:can not open directory。:Permission denied ”。


但最后,用户howtoing可以在运行cd命令之后列出他的主目录,而没有任何选项。


其次,当你用- ,或者-l或--login标志调用su时,它会为你提供一个类似于正常登录的登录界面。 下面的所有命令都是相同的。


$ su - howtoing

OR

$ su  -l howtoing

OR

$ su --login howtoing

在这种情况下,用户howtoing提供了他自己的默认登录环境,包括可执行文件的路径; 他也登录到他的默认主目录。

image.png


以不同的用户登录


重要的是,当你没有用户名运行su时,你将自动成为超级用户。 您将获得root的默认环境,包括可执行文件更改的路径。 你也将登陆根目录:


$ su

另外检查: 如何在Linux中输入Sudo密码时显示星号


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: