Linux中的su命令(切换用户)

评论 0 浏览 0 2019-09-18

su(替代或切换用户的缩写)实用程序允许您使用其他用户(默认情况下为 root 用户)的权限运行命令。

使用su 是在当前登录会话中切换到管理帐户的最简单方法。当 root 用户不能通过 ssh 或使用图形用户界面显示管理器登录系统时,这种方法尤其方便。

在本教程中,我们将解释如何使用su命令。

如何使用su命令

su命令的一般语法如下:

su [OPTIONS] [USER [ARGUMENT...]]

当不带任何选项调用时,su 的默认行为是以 root 身份运行交互式 shell:

su

系统将提示您输入 root 密码,如果通过身份验证,运行该命令的用户将暂时成为 root。

会话 shell (SHELL) 和 home (HOME) 环境变量 替代用户的 /etc/passwd 条目设置,当前目录不会更改。

要确认用户已更改,请使用whoami命令:

whoami

该命令将打印运行当前 shell 会话的用户的名称:

输出

root

调用su时最常用的选项是--l--login)。这使得 shell 成为一个登录 shell,其环境与真实登录非常相似,并更改当前目录 :

su -

如果要运行另一个 shell 而不是 passwd 文件中定义的 shell,请使用 -s--shell 选项。例如,要切换到 root 并运行 zsh shell,您可以键入:

su -s /usr/bin/zsh

要保留调用用户的整个环境(HOMESHELLUSERLOGNAME),请使用-p--preserve-environment 选项调用该命令。

su -p

当使用-选项时,-p将被忽略。

如果您想以替代用户身份运行命令而不启动交互式 shell,请使用 -c--command 选项。例如,调用 ps 作为 root 命令,您可以输入:

su -c ps

要切换到另一个用户帐户,请将用户名作为参数传递给su。例如,要切换到用户tyrion,您可以输入:

su tyrion

Sudo vs. Su

在某些 Linux 发行版(例如 Ubuntu)上,root 用户帐户 出于安全原因默认禁用。这意味着没有为root设置密码,并且不能使用su切换到root。

更改为 root 的一种选择是在 su 命令前面添加 sudo 并输入当前登录的用户密码:

sudo su -

sudo 命令允许您以另一个用户(默认为 root 用户)运行程序。

如果用户被授予 sudo 权限,su 命令将以 root 身份调用。运行sudo su -然后输入用户密码与运行su -并输入root密码具有相同的效果。

当与 -i 选项一起使用时,sudo 在 root 用户环境中运行交互式登录 shell:

sudo -i

sudo -i与运行su -基本相同。

使用 sudo 相对于 su 的优点是 root 密码不需要在多个管理用户帐户之间共享。

使用sudo,您还可以允许用户仅以 root 权限运行特定程序。

结论

su 是一个命令行实用程序,允许您暂时成为另一个用户并使用替代用户执行命令。

如果您有任何问题或反馈,请随时发表评论。

最后更新2023-09-16
0 个评论
标签