1. Linux用户与工作组管理概述
在Linux系统中,用户和工作组管理是系统管理员日常工作中最基础也是最重要的部分。每个运行中的进程都属于特定用户,每个文件都有所属用户和组,这种权限机制构成了Linux安全体系的基础架构。
用户分为三类:超级用户(root)、系统用户和普通用户。root拥有至高无上的权限,系统用户通常用于运行服务进程,而普通用户则是日常使用者。工作组则是用户的集合,主要用于简化权限管理。
2. 核心命令详解
2.1 用户管理命令
useradd - 创建新用户
sudo useradd -m -s /bin/bash -G developers alice-m:自动创建用户家目录-s:指定默认shell-G:指定附加组- 创建后建议立即用
passwd设置密码
usermod - 修改用户属性
sudo usermod -aG sudo bob # 将bob加入sudo组 sudo usermod -L alice # 锁定alice账户userdel - 删除用户
sudo userdel -r charlie # -r表示同时删除家目录2.2 工作组管理命令
groupadd - 创建新组
sudo groupadd developersgroupmod - 修改组属性
sudo groupmod -n devs developers # 重命名组gpasswd - 组密码管理
sudo gpasswd -a alice developers # 添加用户到组 sudo gpasswd -d bob developers # 从组中移除用户2.3 信息查询命令
id - 显示用户身份信息
id alice # 显示用户UID、GID及所属组whoami - 显示当前用户
whoami # 快速确认当前用户身份groups - 显示用户所属组
groups bob # 显示bob所属的所有组getent - 查询系统数据库
getent passwd # 显示所有用户 getent group # 显示所有组3. 配置文件解析
3.1 /etc/passwd文件结构
username:x:UID:GID:comment:homedir:shell- x表示密码已移至/etc/shadow
- UID:0=root,1-999=系统用户,1000+=普通用户
3.2 /etc/shadow文件字段
alice:$6$...:18647:0:99999:7:::- 用户名
- 加密密码
- 最后修改日期(距1970-1-1的天数)
- 密码最短有效期
- 密码最长有效期
- 密码过期前警告天数
3.3 /etc/group文件格式
developers:x:1002:alice,bob- 组名:密码占位符:GID:成员列表
4. 高级权限管理
4.1 sudo权限配置
编辑/etc/sudoers建议使用visudo:
sudo visudo典型配置:
%developers ALL=(ALL) NOPASSWD: /usr/bin/apt update4.2 文件权限管理
chown alice:developers project/ # 修改属主和属组 chmod 775 script.sh # 设置权限位 setfacl -m u:bob:rwx file.txt # 设置ACL权限5. 实用技巧与排错
5.1 批量用户管理
# 批量创建用户 for user in user1 user2 user3; do sudo useradd -m $user echo "$user:Password123" | sudo chpasswd done5.2 密码策略设置
sudo chage -M 90 -m 7 -W 14 alice # 设置密码有效期5.3 常见问题排查
用户无法登录:
- 检查/etc/passwd中的shell路径是否正确
- 确认账户未被锁定(passwd -S)
- 检查/home目录权限(应为755)
权限拒绝:
- 确认用户是否在正确的组中
- 检查文件权限和ACL设置
- 确认SELinux上下文是否正确
6. 安全最佳实践
- 定期审计用户:
sudo lastlog # 查看用户最后登录时间 sudo passwd -S --all # 检查密码状态- 限制root登录:
sudo passwd -l root # 锁定root密码 sudo nano /etc/ssh/sshd_config # 设置PermitRootLogin no- 使用SSH密钥认证:
ssh-keygen -t ed25519 ssh-copy-id user@server- 配置密码复杂度:
sudo apt install libpam-pwquality sudo nano /etc/security/pwquality.conf掌握这些用户和工作组管理命令,你就能高效管理Linux系统的访问控制。建议在日常工作中建立标准的用户创建流程和定期审计机制,这是保障系统安全的重要防线