Linux用户切换与管理完整指南
一、用户切换核心方法
1. su
基础切换
完整环境切换(加载目标用户的配置文件)
su - 目标用户名
仅切换用户身份(保留当前环境变量)
su 目标用户名
操作流程:
- 输入命令后按回车
- 输入目标用户的密码
- 执行
exit
或Ctrl+D
返回原用户
示例:
su - root # 切换到root并加载环境
su developer # 切换用户但保留当前Shell环境
2. sudo
权限提升
以目标用户身份执行单条命令
sudo -u 目标用户名 命令
进入交互式root Shell
sudo -i
配置要求:
当前用户必须在 /etc/sudoers
文件中被授权
典型场景:
sudo -u www-data cat /var/log/nginx.log # 以Web用户查看日志
sudo -i # 获得完整root环境
二、远程用户切换
1. SSH 直接登录
ssh 目标用户名@服务器IP
密钥认证配置:
ssh-copy-id 目标用户名@服务器IP # 部署公钥
ssh -i ~/.ssh/private_key.pem 目标用户名@服务器IP
2. 多跳服务器切换
ssh -J 跳板机用户@跳板机IP 目标用户@目标服务器IP
三、会话管理技巧
1. 终端复用(tmux)
tmux new -s dev_session # 创建新会话
Ctrl+B → C # 新建窗口
Ctrl+B → 数字键 # 窗口切换
2. 后台任务管理
保持会话持续运行
nohup 命令 &
disown -h %1 # 脱离终端关联
查看所有用户进程
ps -ef | grep 用户名
四、安全增强配置
1. sudoers 文件配置
visudo
添加内容:
用户名 ALL=(ALL:ALL) NOPASSWD: /usr/bin/apt # 免密执行特定命令
%groupname ALL=(ALL) ALL # 组权限配置
2. SSH 安全加固
/etc/ssh/sshd_config 修改:
PermitRootLogin no # 禁止root直接登录
PasswordAuthentication no # 强制密钥认证
AllowUsers 白名单用户 # 用户访问控制
五、状态监控命令
1. 实时会话查看
命令 | 功能 | 输出示例 |
---|---|---|
w | 显示登录用户及活动 | 09:30:45 up 20 days, user load average |
who -u | 带空闲时间显示 | dev_user pts/0 2024-05-07 09:30 (192.168.1.100) |
2. 历史登录审计
last -n 5 用户名 # 查看最近5次登录记录
lastlog # 所有用户最后登录时间
六、故障排查指南
1. 切换失败诊断流程
- 检查用户是否存在:
getent passwd 用户名
- 验证密码是否正确:
sudo passwd -S 用户名
- 确认sudo权限:
sudo -l -U 用户名
2. 紧急恢复方法
单用户模式恢复(物理服务器)
1. 重启系统并在GRUB菜单选择"recovery mode"
2. 选择 "root Drop to root shell prompt"
3. 执行 `passwd 用户名` 重置密码
最佳实践建议:
- 生产环境优先使用
sudo
代替直接su root
- 定期执行
sudo -k
清除授权缓存- 敏感操作前通过
echo $USER
确认当前用户身份- 重要会话使用
script
命令记录完整操作日志:script -a /var/log/admin_operations.log