1. RHCSA第二次作业概述
作为红帽认证系统管理员(RHCSA)认证路径上的关键里程碑,第二次作业通常聚焦于Linux系统管理的进阶实操技能。不同于首次作业的基础命令练习,这次任务往往涉及文件系统权限管理、用户账户控制、服务配置等核心运维场景。根据红帽官方认证大纲和常见培训机构的课程设计,典型的RHCSA第二次作业会包含以下核心内容:
- 用户与组管理(创建/修改/删除系统账户)
- 文件权限与所有权设置(chmod/chown/ACL)
- 进程监控与服务管理(systemd单元操作)
- 存储管理基础(分区创建与文件系统挂载)
- 网络配置与防火墙规则(nmcli/firewalld)
提示:红帽考试环境默认使用RHEL 8/9系统,所有操作需通过命令行完成,务必熟悉相关命令的参数组合。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 用户与权限管理实战
2.1 用户账户全生命周期管理
创建用户账户时,useradd命令需要配合多个参数才能满足生产环境要求。以下是创建开发团队用户的完整示例:
bash复制# 创建开发组
sudo groupadd -g 2000 developers
# 创建用户并设置附加组、家目录、登录shell
sudo useradd -u 1001 -G developers,wheel -d /home/dev_user1 -s /bin/bash dev_user1
# 设置密码(考试环境可能需要)
echo "RedHat123" | sudo passwd --stdin dev_user1
关键参数解析:
-u:明确指定UID避免自动分配冲突-G:将用户加入supplementary groups(开发组+管理员组)-d:自定义家目录路径-s:指定登录shell类型
2.2 精细化文件权限控制
当标准权限模型无法满足需求时,需使用ACL(Access Control List)进行扩展授权。给开发组配置项目目录的读写权限:
bash复制# 创建项目目录
sudo mkdir /var/projectX
# 设置基础权限
sudo chown root:developers /var/projectX
sudo chmod 2770 /var/projectX # SGID保持组继承
# 添加ACL规则允许测试用户只读访问
sudo setfacl -m u:tester:r-x /var/projectX
# 验证ACL设置
getfacl /var/projectX
特殊权限标志说明:
2:SGID位,新创建文件自动继承父目录组身份770:所有者与组可读写执行,其他用户无权限
3. 系统服务与进程管理
3.1 systemd服务单元操作
管理系统服务需要掌握systemctl命令的核心操作模式。以配置HTTP服务为例:
bash复制# 安装Apache(考试环境可能已预装)
sudo dnf install httpd -y
# 设置开机启动并立即启动服务
sudo systemctl enable --now httpd
# 检查服务状态(关键字段解读)
systemctl status httpd -l
状态输出关键指标:
Loaded:单元配置文件是否正确加载Active:服务运行状态(active/running)Main PID:主进程ID及对应命令CGroup:资源控制组信息
3.2 进程监控与故障排查
当系统出现资源异常时,需要组合使用多种工具进行诊断:
bash复制# 实时进程监控(按CPU排序)
top -o %CPU
# 内存占用分析
free -h
# 磁盘I/O统计
iostat -x 2 5
# 综合性能快照(推荐)
sudo dnf install sysstat -y
sar -u -r -d 1 3
注意:在考试环境中,可能需要通过
kill -9终止失控进程,但生产环境应优先尝试kill -15发送SIGTERM信号允许进程优雅退出。
4. 存储与网络配置
4.1 磁盘分区与文件系统
使用parted工具进行GPT分区操作示例:
bash复制# 列出可用磁盘
sudo parted -l
# 在/dev/sdb上创建分区
sudo parted /dev/sdb mklabel gpt
sudo parted /dev/sdb mkpart primary xfs 1MiB 2GiB
sudo parted /dev/sdb print # 验证分区表
# 创建XFS文件系统并挂载
sudo mkfs.xfs /dev/sdb1
sudo mkdir /mnt/data
echo "/dev/sdb1 /mnt/data xfs defaults 0 0" | sudo tee -a /etc/fstab
sudo mount -a
关键步骤验证点:
- 分区对齐(从1MiB开始避免性能损失)
- 文件系统类型匹配(RHEL 9默认使用xfs)
- fstab条目格式正确(特别是挂载选项)
4.2 网络连接配置
通过nmcli配置静态IP地址的规范流程:
bash复制# 查看当前连接
nmcli connection show
# 修改ens160连接的IPv4配置
sudo nmcli connection modify ens160 \
ipv4.method manual \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "8.8.8.8 8.8.4.4"
# 重新激活连接
sudo nmcli connection down ens160 && sudo nmcli connection up ens160
# 验证配置
ip addr show ens160
route -n
防火墙规则配置示例(允许HTTP服务):
bash复制# 添加永久规则
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-port=8080/tcp
# 重载配置
sudo firewall-cmd --reload
# 验证规则
sudo firewall-cmd --list-all
5. 常见问题排查与调试技巧
5.1 SELinux上下文修复
当文件权限正确但访问仍被拒绝时,通常需要检查SELinux上下文:
bash复制# 查看目录安全上下文
ls -Zd /var/www/html
# 临时修改上下文(重启失效)
sudo chcon -t httpd_sys_content_t /var/www/html/custom
# 永久修改(推荐方式)
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html/custom(/.*)?"
sudo restorecon -Rv /var/www/html/custom
5.2 系统日志分析
使用journalctl查看系统日志的实用命令:
bash复制# 查看最近20条内核日志
sudo journalctl -k -n 20
# 跟踪httpd服务日志
sudo journalctl -u httpd -f
# 按时间范围查询
sudo journalctl --since "2023-08-01 09:00:00" --until "2023-08-01 12:00:00"
# 导出日志到文件(考试可能需要)
sudo journalctl -b > boot_log.txt
调试服务启动失败的典型流程:
systemctl status <service>查看失败原因journalctl -xe检查详细错误日志- 检查配置文件语法(如
apachectl configtest) - 验证依赖服务是否运行(如数据库连接)
