Linux中可用su命令切换用户:一、su - username切换普通用户;二、su -切换root;三、su -c "command"执行单条root命令;四、配置sudoers实现免密sudo su -;五、login username启动全新会话。

如果您在Linux系统中需要临时以其他用户身份执行命令或进行操作,则可以使用su命令切换用户。以下是实现用户切换的具体步骤:
一、使用su命令切换普通用户
su命令用于切换当前登录用户,不加参数时默认切换至root用户;若指定用户名,则切换为该用户。该操作要求输入目标用户的密码(非当前用户密码)。
1、打开终端窗口。
2、输入命令:su - username,其中username为要切换的目标用户名。
3、按回车后,系统提示输入目标用户的密码。
4、正确输入密码后,命令行提示符将变为目标用户的环境配置,包括家目录和Shell设置。
二、使用su切换至root用户
切换到root用户可获得系统最高权限,适用于需要执行管理任务的场景。此操作需已知root账户密码,且该账户未被禁用。
1、在终端中输入:su - 或 su -l(短横线表示加载完整root环境)。
2、回车后,系统等待输入root密码。
3、键入正确的root密码并确认,提示符将变为“#”,表明已成功进入root shell。
三、使用su -c执行单条root命令
当仅需运行一条特权命令而无需完全切换用户时,-c选项可避免长时间处于root环境,提升安全性。
1、在普通用户终端中输入:su -c "command",将command替换为实际要执行的命令(如ls /root)。
2、系统提示输入root密码。
3、密码验证通过后,命令立即以root权限执行,并自动返回原用户环境。
四、配置sudo免密切换root(替代su方案)
通过修改sudoers文件,允许特定用户无需密码即可执行su -或bash -l等命令,避免暴露root密码,同时保留审计日志。
1、以root身份运行:visudo。
2、在文件末尾添加一行:username ALL=(ALL) NOPASSWD: /bin/su -, /bin/bash -l,其中username替换为实际用户名。
3、保存并退出编辑器。
4、此后该用户可直接执行:sudo su -,无需输入密码。
五、使用login命令全新会话切换
login命令启动一个全新的登录会话,与su不同,它会彻底重置环境变量、TTY设置及PAM会话状态,更接近真实远程登录行为。
1、确保系统已安装login工具(通常默认存在)。
2、在终端中输入:login username。
3、按提示输入目标用户的密码。
4、成功认证后,将进入该用户的完整登录环境,原shell进程被终止。










