Linux中使用 su 命令切换用户
su
( 替代或切换用户的缩写) 实用程序,可以运行另一用户的特权命令,默认情况下是 root 用户。
使用 su
是在当前登录会话中切换到管理帐户的最简单方法。当不允许 root 用户通过 ssh 或使用 GUI 显示管理器登录系统时,这特别方便。
在本教程中,我们将解释如何使用该 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
文件中定义的外壳程序,请使用 -s
, --shell
选项。例如,要切换到 root 并运行 zsh
shell ,您可以输入:
su -s /usr/bin/zsh
为了保持整个环境 (HOME
, SHELL
, USER
,和 LOGNAME
主叫用户)使用 -p
, --preserve-environment
选项。
su -p
使用该 -
选项时,将 -p
被忽略。
如果要以替代用户身份运行命令而不启动交互式 shell ,请使用 -c
, --command
选项。例如,要以超级用户身份调用命令 ps
,您可以输入:
su -c ps
要切换到另一个用户帐户,请将用户名作为参数传递给 su
。例如,要切换到用户 tyrion
,您可以输入:
su tyrion
sudo 与 su
在某些 Linux 发行版(如 Ubuntu) 上,出于安全原因,默认情况下禁用了 root 用户帐户。这意味着没有为 root 设置密码,并且您不能用于 su
切换到 root 。
更改为 root 的一种方法是在 su
命令前添加 sudo
并输入当前登录的用户密码:
sudo su -
该 sudo
命令允许您以其他用户(默认情况下为 root 用户)运行程序。
如果授予用户 sudo
权限,则该 su
命令将以 root 身份调用。运行 sudo su -
和使用 root 运行 su -
效果相同。
与该 -i
选项 sudo
一起使用时,请以 root 用户的环境运行交互式登录 shell :
sudo -i
sudo -i
与 su -
运行基本相同。
使用 sudo
的好处是不需要在多个管理用户帐户之间共享 root 密码。
另外,通过, sudo
您可以允许用户仅以 root 特权运行特定程序。
结论
su
是一个命令行实用程序,可让您临时成为另一个用户并执行命令。