Linux 用户操作管理
一、用户基础管理
1. 添加新用户
sudo useradd -m -s /bin/bash 用户名 # -m 创建家目录,-s 指定登录 shell
sudo passwd 用户名 # 设置密码
推荐:创建时直接指定 shell 为
/bin/bash,避免后续修改。
2. 修改已有用户的默认 Shell
sudo chsh -s /bin/bash 用户名
3. 赋予用户 root 权限(sudo)
- Debian / Ubuntu:
sudo usermod -aG sudo 用户名 - CentOS / RHEL:
sudo usermod -aG wheel 用户名
或通过 visudo 添加:
用户名 ALL=(ALL:ALL) ALL
4. 删除用户
sudo userdel -r 用户名 # -r 同时删除家目录和邮件池
二、用户查看与审计
1. 列出所有用户
cat /etc/passwd | cut -d: -f1 # 仅用户名
getent passwd | cut -d: -f1 # 更通用(支持 LDAP)
2. 区分普通用户与系统用户
- 系统用户通常 UID < 1000,普通用户 UID ≥ 1000
awk -F: '$3 >= 1000 {print $1, $3}' /etc/passwd
3. 查看用户最后登录时间
lastlog # 所有用户的最后一次登录
lastlog | grep "Never" # 从未登录的用户
4. 查找不活跃用户(超过 90 天未登录)
lastlog -b 90
5. 查看当前登录的用户
who # 简单列表
w # 详细信息(含空闲时间)
三、sudo 与 root 环境的区别
| 特性 | sudo command | sudo -i / sudo su - |
|---|---|---|
| 权限 | 完全等同于 root | 完全等同于 root |
| 环境变量 | 继承普通用户(HOME 不变) | 加载 root 的环境(HOME=/root) |
| 当前目录 | 停留在原目录 | 切换到 /root |
| 配置文件 | 不加载 root 的 dotfiles | 加载 root 的 .bashrc 等 |
总结:
sudo仅提升权限,不改变运行环境;sudo -i获得完整的 root 登录环境。
四、SSH 安全加固
1. 禁止 root 远程登录
编辑 /etc/ssh/sshd_config:
PermitRootLogin no
重启服务:sudo systemctl restart sshd
注意:禁止前请确保存在一个可 sudo 的普通用户。
2. 公钥认证(PubkeyAuthentication)
PubkeyAuthentication yes:允许客户端使用密钥对登录。- 配合
PasswordAuthentication no可实现仅密钥登录,极大提高安全性。
客户端生成密钥对
ssh-keygen -t ed25519 -C "comment"
服务端添加公钥
将客户端公钥(id_ed25519.pub)内容追加到 ~/.ssh/authorized_keys:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
3. SSH 认证失败常见原因
- 客户端私钥权限过宽(应
600) - 服务器端
authorized_keys或.ssh目录权限错误(目录700,文件600) - 服务器配置
PasswordAuthentication no且未配置公钥 AuthenticationMethods限制了认证方式
调试方法:ssh -vvv user@host
五、实用操作示例
| 任务 | 命令 |
|---|---|
| 创建用户并指定 shell | sudo useradd -m -s /bin/bash alice |
| 设置密码 | sudo passwd alice |
| 加入 sudo 组 | sudo usermod -aG sudo alice |
| 查看 alice 的 UID 和 shell | id alice 或 grep alice /etc/passwd |
| 锁定用户(禁止登录) | sudo passwd -l alice |
| 解锁用户 | sudo passwd -u alice |
| 查看所有用户最后登录 | lastlog |
| 仅显示从未登录的普通用户 | lastlog | awk 'NR==1 || ($3>=1000 && /Never logged in/)' |
六、安全最佳实践
- 禁用 root 远程 SSH,使用普通用户 + sudo 执行管理任务。
- 强制使用公钥认证,禁止密码登录(除非有特殊需求)。
- 定期审计用户:清理离职员工账户、锁定超过 90 天未登录的账户。
- 检查无主文件(用户已删除但文件残留):
find / -nouser -o -nogroup 2>/dev/null - 使用
visudo编辑 sudoers,避免语法错误导致 sudo 不可用。
文档版本 1.0 | 适用于 Debian/Ubuntu/CentOS 等主流发行版
Linux 用户操作管理
https://www.youcats.cn/archives/1779075866629
评论