方法1:使用su命令
bash
su - 用户名 |
示例:
bash
su - alice # 切换到用户alice的环境(包含工作目录、PATH变量等) |
- 参数说明:-(或 --login):模拟用户登录,加载目标用户的环境变量(如 .bashrc、.bash_profile)。不加 -:仅切换用户身份,但保持当前目录和环境变量。
- 输入密码:需要输入目标用户的密码(如 alice 的密码)。
方法2:使用sudo命令
bash
sudo -iu 用户名 |
示例:
bash
sudo -iu alice # 以alice身份启动交互式shell(保留环境变量) |
- 参数说明:-i:模拟用户登录,加载目标用户的环境。-u:指定目标用户。
- 前提条件:当前用户(如root)需有权限通过 sudo 切换到目标用户(通常需在 /etc/sudoers 中配置)。
方法3:直接退出root账户
如果当前是通过 su - 或 sudo -i 进入的root账户,可以直接退出:
bash
exit # 或按 `Ctrl+D` |
- 效果:返回到切换root前的普通账户。
方法4:SSH登录(远程场景)
如果需从远程切换,可直接通过SSH登录目标用户:
bash
ssh alice@localhost # 本地登录示例 | |
ssh alice@192.168.1.100 # 远程服务器示例 |
- 输入密码:需输入 alice 的密码或使用密钥认证。
注意事项
- 权限安全:避免长期使用root账户,建议通过 sudo 执行特权命令。普通用户应通过 sudo 提权,而非直接切换root。
- 密码策略:su 切换需目标用户密码,而 sudo 需当前用户密码(需配置 /etc/sudoers)。
- 环境变量:使用 su - 或 sudo -i 确保加载目标用户的环境配置(如PATH、别名等)。
示例流程
- 从普通用户切换到root:
- bash
- sudo -i # 输入当前用户密码
- 从root切换回普通用户:
- bash
- su - alice # 输入alice的密码
- 退出当前会话:
- bash
- exit # 返回到root
- exit # 返回到初始普通用户
通过以上方法,你可以灵活地在root和普通账户之间切换,同时兼顾安全性和操作便利性。