<p>su命令可切换用户身份:一、su - username切换普通用户并加载环境;二、su - 切换root用户;三、su username非登录式切换;四、su username -c "command"执行单条命令;五、推荐用sudo替代su提升安全性。</p>

如果您在Linux系统中需要临时以其他用户身份执行命令或登录,可以使用su命令切换用户。以下是具体操作步骤:
一、使用su命令切换普通用户
su命令允许当前用户切换到指定的用户账户,需提供目标用户的密码。切换后将进入该用户的默认shell环境。
1、打开终端窗口。
2、输入命令:su - username(其中username为要切换的目标用户名)。
3、按回车后,系统提示输入目标用户的密码。
4、正确输入密码后,命令行提示符将变为目标用户的格式,表示切换成功。
二、使用su切换至root用户
切换到root用户可获得系统最高权限,适用于需要管理系统的操作。默认情况下,多数发行版禁用root密码,需确保root账户已设置有效密码或启用对应认证机制。
1、在终端中执行:su - 或 su -l(短横线表示加载完整root环境变量)。
2、输入当前已设置的root用户密码。
3、验证是否成功:运行 whoami,输出应为root。
三、使用su非登录式切换(不加载环境)
不带短横线的su命令仅切换用户身份,不重新加载目标用户的shell配置文件(如.bashrc、.profile),适用于快速执行单条命令而无需完整环境。
1、输入命令:su username(无短横线)。
2、输入目标用户密码。
3、此时提示符不变,但当前UID已变更,可通过 id 命令确认用户ID和组ID。
四、使用su执行单条命令后自动退出
该方式避免进入交互式shell,适合脚本中临时提权执行特定指令,执行完毕即返回原用户会话。
1、运行:su username -c "command"(将command替换为实际要执行的命令)。
2、例如:su john -c "ls /home/john/private"。
3、系统提示输入john的密码,验证通过后执行命令并立即退出su会话。
五、配置sudo替代su进行root权限管理
现代Linux发行版推荐使用sudo而非直接启用root登录,通过/etc/sudoers文件控制细粒度权限,降低安全风险。
1、以当前用户执行:sudo su -(需该用户已在sudo组中且已配置相应权限)。
2、输入当前用户的密码(非root密码)。
3、成功获取root shell后,可执行管理操作。
4、退出root shell:输入 exit 或按Ctrl+D。










