Linux中的su命令(切换用户)
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
要保留调用用户的整个环境(HOME
、SHELL
、USER
和LOGNAME
),请使用-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
是一个命令行实用程序,允许您暂时成为另一个用户并使用替代用户执行命令。
如果您有任何问题或反馈,请随时发表评论。