# 如何进行Linux用户权限管理 ## 1. Linux用户权限基础概念 ### 1.1 用户与用户组 Linux是一个多用户操作系统,通过用户和用户组实现权限隔离: - **用户**:系统资源的使用主体,每个用户拥有唯一的UID - **用户组**:用户的集合,方便批量权限分配,每个组拥有唯一的GID 系统配置文件: - `/etc/passwd`:存储用户账户信息 - `/etc/shadow`:存储加密后的用户密码 - `/etc/group`:存储用户组信息 ### 1.2 文件权限模型 Linux采用经典的"用户-组-其他"三组权限:
-rwxr-xr– 1 user group 4096 Jan 1 10:00 file.txt
- 第1位:文件类型(`-`普通文件,`d`目录等) - 2-4位:所有者(owner)权限 - 5-7位:所属组(group)权限 - 8-10位:其他用户(other)权限 ### 1.3 特殊权限位 | 权限 | 符号 | 作用 | |------|------|------| | SetUID | s | 执行时临时获得文件所有者权限 | | SetGID | s | 执行时临时获得文件所属组权限 | | Sticky | t | 目录内文件仅所有者可删除 | ## 2. 用户与用户组管理 ### 2.1 用户管理命令 ```bash # 创建用户 sudo useradd -m -G supplementary_groups -s /bin/bash username sudo passwd username # 设置密码 # 修改用户 sudo usermod -aG new_group username # 追加用户组 sudo usermod -L username # 锁定账户 # 删除用户 sudo userdel -r username # -r同时删除家目录
# 创建/删除组 sudo groupadd groupname sudo groupdel groupname # 修改组成员 sudo gpasswd -a user group # 添加用户到组 sudo gpasswd -d user group # 从组移除用户
su - username # 完全切换用户环境 sudo -i # 切换到root sudo command # 以root权限执行单条命令
chmod u+x file # 给所有者添加执行权限 chmod g-w file # 移除组写权限 chmod o=r file # 设置其他用户只读 chmod 755 dir # 常用目录权限设置
八进制权限表示:
权限 | 二进制 | 八进制 |
---|---|---|
r– | 100 | 4 |
-w- | 010 | 2 |
–x | 001 | 1 |
umask 0022 # 设置默认权限掩码 chmod g+s dir # 设置SetGID使新建文件继承组
# 查看/设置ACL getfacl file setfacl -m u:user:rwx file # 添加用户ACL setfacl -x u:user file # 移除ACL条目
编辑/etc/sudoers
(建议使用visudo):
# 用户别名 User_Alias ADMINS = user1, user2 # 命令别名 Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/yum # 权限分配 ADMINS ALL=(ALL) ALL %wheel ALL=(ALL) NOPASSWD: ALL
# 查看状态 sestatus # 修改模式 setenforce 0 # 临时切换为Permissive模式 # 上下文管理 ls -Z # 查看安全上下文 chcon -t httpd_sys_content_t /var/www/html
推荐方案: 1. 为每个服务创建专用用户 2. 使用chroot/jail隔离环境 3. 配置最小权限原则的sudo规则
/etc/login.defs
)lastlog
, who
等命令)/etc/passwd
: 644/etc/shadow
: 600 find / -xdev -type f -perm -0002
关键日志文件: - /var/log/secure
: 认证相关日志 - /var/log/auth.log
: 授权日志 - journalctl -u sshd
: SSH服务日志
whoami
ls -l
groups
getfacl
问题1:Permission denied错误 - 检查执行权限和文件路径权限链 - 确认SELinux是否阻止访问
问题2:用户无法sudo - 检查/etc/sudoers
配置 - 确认用户是否在wheel组
- hosts: all tasks: - name: Create admin group group: name: admin state: present - name: Add users to admin group user: name: "{{ item }}" groups: admin append: yes loop: - user1 - user2
#!/bin/bash # 检查SUID/SGID文件 find / -xdev -type f \( -perm -4000 -o -perm -2000 \) -ls # 检查用户权限一致性 awk -F: '($3 == 0) {print}' /etc/passwd
有效的Linux用户权限管理需要: 1. 理解基础权限模型 2. 遵循最小权限原则 3. 定期审计权限配置 4. 结合多种安全机制(传统权限+ACL+SELinux) 5. 建立标准化管理流程
通过本文介绍的技术和方法,系统管理员可以构建安全、可控的Linux权限管理体系,既保证系统安全又不影响正常业务运作。
注意:生产环境中修改权限前务必进行测试,并做好备份。权限配置错误可能导致系统无法正常访问。 “`
这篇文章约2900字,采用Markdown格式编写,包含: 1. 8个主要章节 2. 代码块、表格等格式元素 3. 实操命令和配置示例 4. 安全最佳实践建议 5. 常见问题解决方案 6. 自动化管理方案
可根据需要调整各章节的详细程度或添加更多实际案例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。