网站搜索

了解 Linux 中“su”和“su -”命令之间的区别


在之前的文章中,我们已经向您解释了 Linux 中 sudo 和 su 命令的区别。这是用于在 Linux 中实现安全性的两个重要命令,涉及用户管理策略和用户权限。

su 命令用于切换到另一个用户,换句话说,在正常登录会话期间更改用户 ID(这就是为什么它有时被称为 switch (-) 用户由多个 Linux 用户组成)。如果没有用户名执行,例如su -,它将默认以root用户登录。

Linux 新用户面临的一个常见挑战是理解 “su”“su -” 之间的区别。本文将帮助您简要了解Linux系统中“su”“su -”的区别。

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

su tecmint

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

因此,当用户 howtoing 尝试列出工作目录(仍然是用户 aaronkilik 的工作目录)时,会出现错误:“ls: 无法打开目录 .显示:权限被拒绝”。

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

其次,当您使用 --l--login 标志调用 su 时,它会为您提供与正常登录时类似的登录界面。以下所有命令彼此等效。

su - tecmint
OR
su  -l tecmint
OR
su --login tecmint

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

重要的是,当您在没有用户名的情况下运行su时,您将自动成为超级用户。您将获得 root 的默认环境,包括可执行文件更改的路径。您还将进入 root 的主目录:

su

另请查看:如何在 Linux 中键入 sudo 密码时显示星号

我们希望这篇文章能为您提供丰富的信息。您可以通过下面的评论部分提出任何问题或分享您的想法。