1. RHCSA认证与练习四概述
RHCSA(Red Hat Certified System Administrator)是红帽公司推出的全球公认的Linux系统管理员认证。作为Linux领域最具含金量的入门级认证之一,RHCSA验证了持证者在Red Hat Enterprise Linux环境下的核心系统管理能力。练习四是RHCSA备考过程中的关键实践环节,主要聚焦文件系统权限管理和用户组配置这两个日常运维中最常接触的核心技能点。
这个练习的典型操作场景包括:
- 新员工入职时创建符合部门规范的账户
- 项目协作中设置共享目录权限
- 审计时检查系统权限配置合规性
- 故障排查时验证权限继承关系
2. 用户与组管理实战
2.1 用户账户创建与属性设置
创建用户不仅是简单的useradd命令,需要考虑完整的账户生命周期管理。以下是生产环境中创建技术用户的完整示例:
bash复制# 创建开发组
sudo groupadd -g 2000 developers
# 创建用户并设置附属组
sudo useradd -u 1001 -G developers -c "Web Developer" -d /home/webdev -s /bin/bash webdev
# 设置密码策略
sudo passwd -x 90 -w 7 webdev
# 验证账户信息
id webdev
关键参数说明:
-u:明确指定UID避免冲突-G:加入附属组获取额外权限-c:添加描述信息便于审计-d:自定义家目录位置-s:指定登录shell类型
生产环境提示:建议使用
-r参数创建系统账户时指定UID范围(201-999),普通用户使用1000+的UID空间。
2.2 组管理高级技巧
Red Hat系统中的组管理有几个易错点需要特别注意:
-
主组与附属组的区别:
- 主组(-g):新建文件默认所属组
- 附属组(-G):获取额外权限的补充组
-
组密码的风险管理:
bash复制# 设置组密码(谨慎使用) sudo gpasswd developers # 更安全的做法是直接管理组成员 sudo gpasswd -a user1 developers -
有效组查看与切换:
bash复制# 查看当前有效组 groups # 临时切换有效组 newgrp developers
3. 文件权限深度解析
3.1 权限表示法对比
| 权限类型 | 符号表示 | 八进制值 | 适用场景 |
|---|---|---|---|
| 读 | r | 4 | 查看文件内容/目录列表 |
| 写 | w | 2 | 修改文件/创建删除文件 |
| 执行 | x | 1 | 运行程序/进入目录 |
| 特殊 | s/t | 4/1 | SUID/SGID/sticky bit |
3.2 权限设置最佳实践
bash复制# 递归设置目录权限
sudo chmod -R 775 /project/
# 修改属主和属组
sudo chown -R webdev:developers /project/
# 设置SUID权限(谨慎使用)
sudo chmod u+s /usr/bin/special_script
# 设置粘滞位(用于共享目录)
sudo chmod o+t /shared/tmp/
安全警告:SUID权限可能带来安全风险,应定期检查系统中有SUID/SGID位的文件:
bash复制find / -perm /4000 -ls find / -perm /2000 -ls
4. ACL高级权限控制
当基础权限不能满足复杂需求时,需要使用ACL(Access Control List):
bash复制# 检查文件系统是否支持ACL
tune2fs -l /dev/sda1 | grep "Default mount options"
# 设置ACL权限
setfacl -m u:consultant:rwx /project/docs/
setfacl -m g:contractors:r-x /project/docs/
# 继承目录ACL权限
setfacl -d -m g:developers:rwx /project/
# 查看ACL权限
getfacl /project/docs/
典型ACL应用场景:
- 临时给外包人员访问权限
- 跨部门项目协作
- 细粒度的权限委托
5. 权限问题诊断与修复
5.1 常见权限问题排查流程
-
确认当前用户身份:
bash复制whoami id -
检查文件权限:
bash复制ls -ld /path/to/file getfacl /path/to/file -
检查SELinux上下文:
bash复制ls -Z /path/to/file -
检查父目录权限:
bash复制
namei -l /path/to/file
5.2 权限修复案例
场景:用户无法编辑自己创建的配置文件
bash复制# 查看问题文件
ls -l /etc/app/config.conf
# -rw-r----- 1 root root 1024 Jun 15 config.conf
# 解决方案1:更改文件属主
sudo chown user1 /etc/app/config.conf
# 解决方案2:添加写权限(需评估安全风险)
sudo chmod 664 /etc/app/config.conf
# 解决方案3:通过ACL授权
sudo setfacl -m u:user1:rw /etc/app/config.conf
6. RHCSA考试专项训练
6.1 必考技能点清单
- 创建符合指定要求的用户/组
- 设置满足业务需求的共享目录
- 配置合理的权限继承关系
- 解决跨部门协作的权限问题
- 审计系统权限配置
6.2 模拟试题解析
题目:
- 创建用户
sysadmin,UID为3000 - 创建组
admins,GID为4000 - 设置
/admin目录:- 属组为
admins admins组成员可读写- 其他用户无任何权限
- 新创建文件自动继承组权限
- 属组为
解答:
bash复制# 创建用户和组
sudo groupadd -g 4000 admins
sudo useradd -u 3000 -G admins sysadmin
# 设置目录权限
sudo mkdir /admin
sudo chown root:admins /admin
sudo chmod 770 /admin
# 设置SGID和默认ACL
sudo chmod g+s /admin
sudo setfacl -d -m g:admins:rwx /admin
7. 生产环境经验分享
在实际运维中,我总结出以下权限管理黄金法则:
- 最小权限原则:只授予完成工作所需的最小权限
- 定期审计:每月检查系统特殊权限设置
- 文档记录:维护权限变更日志
- 测试环境验证:权限修改前先在测试环境验证
- 使用模板:对新项目目录建立权限模板
对于大型企业,建议结合LDAP或FreeIPA实现集中化的用户权限管理。以下是一个自动化权限审计脚本的示例:
bash复制#!/bin/bash
# 查找所有可写目录
find / -type d -perm -o=w ! -path "/proc/*" ! -path "/sys/*" > world_writable_dirs.txt
# 检查SUID/SGID文件
find / -type f -perm /6000 -ls > suid_sgid_files.txt
# 检查无属主文件
find / -nouser -o -nogroup > orphaned_files.txt
这个练习看似基础,但掌握好权限管理能避免未来80%的文件系统相关问题。建议在实验环境中反复练习直到能闭眼完成所有操作,考试时这类题目通常需要在5分钟内完成。
