1. Linux账号管理基础
Linux作为多用户操作系统,账号管理是其核心功能之一。每个用户都拥有独立的账号,系统通过UID(用户ID)和GID(组ID)来识别和管理用户权限。
1.1 用户账号类型
Linux系统主要包含三类用户账号:
- 超级用户(root):UID为0,拥有系统最高权限
- 系统用户:UID范围1-999,用于运行系统服务
- 普通用户:UID从1000开始,由管理员创建
1.2 用户配置文件
用户信息主要存储在以下配置文件中:
- /etc/passwd:存储用户基本信息
- /etc/shadow:存储加密后的用户密码
- /etc/group:存储用户组信息
- /etc/gshadow:存储用户组密码
重要提示:直接编辑这些配置文件存在风险,建议使用专用命令修改
2. 用户管理实操
2.1 用户创建与删除
创建用户的基本命令:
useradd -m -s /bin/bash username # 创建用户并建立家目录 passwd username # 设置用户密码删除用户的正确方式:
userdel -r username # -r参数会同时删除用户家目录2.2 用户属性修改
常用修改命令:
usermod -l newname oldname # 修改用户名 usermod -d /new/home username # 修改家目录 usermod -s /bin/zsh username # 修改默认shell3. 组管理技巧
3.1 组的基本操作
创建和删除组:
groupadd groupname groupdel groupname将用户加入组:
usermod -aG groupname username # -aG保持原有组关系3.2 有效组管理
查看用户所属组:
groups username切换有效组:
newgrp groupname # 临时切换有效组4. 权限管理详解
4.1 文件权限基础
Linux文件权限分为三类:
- 所有者权限(user)
- 所属组权限(group)
- 其他用户权限(other)
每种权限包含:
- 读(r,4)
- 写(w,2)
- 执行(x,1)
4.2 权限修改方法
使用chmod命令修改权限:
chmod 755 filename # 数字方式 chmod u+x filename # 符号方式修改文件所有者:
chown user:group filename5. 特殊权限设置
5.1 SUID/SGID权限
- SUID:执行时以文件所有者身份运行
- SGID:执行时以文件所属组身份运行
设置方法:
chmod u+s filename # 设置SUID chmod g+s filename # 设置SGID5.2 粘滞位
常用于共享目录,防止用户删除他人文件:
chmod +t directory6. 访问控制列表(ACL)
6.1 ACL基本概念
ACL提供更精细的权限控制,可以针对特定用户/组设置权限。
检查文件系统是否支持ACL:
mount | grep acl6.2 ACL操作命令
设置ACL权限:
setfacl -m u:username:rwx filename查看ACL权限:
getfacl filename7. 安全最佳实践
7.1 密码策略设置
修改/etc/login.defs配置密码策略:
PASS_MAX_DAYS 90 PASS_MIN_DAYS 7 PASS_WARN_AGE 147.2 用户权限限制
使用sudo限制普通用户权限:
visudo # 编辑sudoers文件7.3 登录安全
限制root直接登录:
# 修改/etc/ssh/sshd_config PermitRootLogin no8. 常见问题排查
8.1 权限问题诊断
检查权限问题的步骤:
- 确认当前用户身份:
whoami - 检查文件权限:
ls -l filename - 检查用户所属组:
groups username - 检查ACL权限:
getfacl filename
8.2 用户登录问题
排查流程:
- 检查账号是否锁定:
passwd -S username - 检查shell是否正确:
cat /etc/passwd | grep username - 检查家目录权限:
ls -ld /home/username
9. 实用脚本示例
9.1 批量创建用户
#!/bin/bash for user in user1 user2 user3; do useradd -m -s /bin/bash $user echo "$user:password123" | chpasswd done9.2 权限检查脚本
#!/bin/bash for file in /path/to/files/*; do if [ $(stat -c %a $file) -gt 755 ]; then echo "Warning: $file has overly permissive permissions" fi done10. 进阶技巧
10.1 用户会话管理
查看当前登录用户:
who w终止用户会话:
pkill -KILL -u username10.2 资源限制
通过/etc/security/limits.conf限制用户资源:
username hard nproc 100 # 限制进程数 username hard fsize 50000 # 限制文件大小(KB)掌握Linux账号与权限管理是系统管理员的核心技能。建议定期审计系统账号和权限设置,遵循最小权限原则,确保系统安全稳定运行。