Linux系统用户与权限管理完全指南
作为开源操作系统的代表,Linux以其强大的多用户管理能力和精细的权限控制系统著称。本文将深入解析Linux用户管理和权限控制的完整机制,帮助系统管理员和开发者掌握这些核心技能。
一、Linux用户管理体系
1. 用户账户类型
- 超级用户(root):系统最高权限账户,UID为0
- 系统用户:用于运行服务进程,UID通常为1-999
- 普通用户:一般使用者账户,UID从1000开始
2. 核心配置文件
/etc/passwd - 存储用户基本信息 /etc/shadow - 存储加密后的用户密码 /etc/group - 存储用户组信息 /etc/gshadow - 存储组密码(较少使用)
二、用户管理实操
1. 用户账户操作
| 功能 | 命令 | 常用选项 |
|---|---|---|
| 创建用户 | useradd | -m(创建家目录), -s(指定shell), -u(指定UID) |
| 修改用户 | usermod | -l(修改用户名), -aG(追加组) |
| 删除用户 | userdel | -r(同时删除家目录) |
2. 密码管理
使用passwd命令管理用户密码:
# 修改当前用户密码 passwd # root修改其他用户密码 passwd username # 锁定/解锁账户 passwd -l username passwd -u username
三、权限控制机制
1. 传统Unix权限模型
Linux采用经典的rwx权限系统:
- r(read):读取权限
- w(write):写入权限
- x(execute):执行权限
权限分为三组:所有者(u)、所属组(g)、其他用户(o)
2. 权限修改命令
# 改变文件所有者 chown user:group filename # 改变权限 chmod 755 filename chmod u+x,g-w,o-r filename
3. 特殊权限位
- SUID:执行时以文件所有者身份运行
- SGID:对目录设置时,新建文件继承目录组
- Sticky bit:仅文件所有者可删除/重命名
四、高级权限管理
1. ACL访问控制列表
传统权限模型无法满足复杂需求时,可使用ACL:
# 查看ACL getfacl filename # 设置ACL setfacl -m u:username:rwx filename
2. SELinux安全机制
提供强制访问控制(MAC),比传统DAC更安全:
# 查看SELinux状态 sestatus # 修改安全上下文 chcon -t httpd_sys_content_t /var/www/html
掌握Linux用户和权限管理是系统管理员的基本功。从基础的用户/组管理到高级的ACL和SELinux,Linux提供了多层次的权限控制机制。合理配置这些功能可以极大提升系统的安全性和管理效率。
建议在实际环境中多加练习,并定期审计系统权限配置,确保符合最小权限原则。
