1. RHCSA第二次作业概述
作为红帽认证系统管理员(RHCSA)认证路径上的关键里程碑,第二次作业通常聚焦于Linux系统管理的进阶实操技能。不同于入门级的第一次作业,这次任务往往会涉及更复杂的系统配置、服务管理和故障排查场景,直接检验学员对RHEL系统核心组件的掌握程度。
根据红帽官方认证大纲和常见培训机构课程设计,RHCSA第二次作业一般包含以下核心内容:
- 用户与组权限的精细化管理
- 文件系统权限与ACL配置
- 系统服务单元管理与故障恢复
- 存储管理进阶操作(LVM、磁盘配额等)
- 网络配置与防火墙规则定制
- 计划任务与日志分析
这些内容共同构成了Linux系统管理员日常工作的基础技能矩阵。完成这些任务不仅是为了通过认证,更重要的是培养解决实际运维问题的能力。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 用户与权限管理实战
2.1 用户账户的创建与属性配置
在RHEL系统中,useradd命令远比表面看起来复杂。除了基本的-m(创建家目录)和-s(指定shell)参数外,实际工作中还需要注意:
bash复制# 创建开发团队用户并设置附加组
sudo useradd -m -G developers,testers -s /bin/bash -c "Dev Team Member" devuser01
# 设置密码过期策略(90天)
sudo chage -M 90 devuser01
关键细节:
-G参数指定的附加组必须已存在- 使用
-c添加注释信息有利于后期管理 - 密码策略应通过
chage命令统一配置
2.2 sudo权限的精细控制
/etc/sudoers文件的配置需要特别注意语法规范:
code复制# 允许developers组成员无需密码执行特定命令
%developers ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart httpd, /usr/bin/vi /etc/httpd/conf/httpd.conf
重要提示:永远使用
visudo编辑此文件,因为它在保存时会进行语法检查,避免配置错误导致所有sudo权限失效。
3. 存储管理进阶操作
3.1 LVM逻辑卷管理
LVM是RHCSA考试的重点难点,实际工作中常见的操作流程:
bash复制# 1. 创建物理卷
sudo pvcreate /dev/sdb
# 2. 创建卷组
sudo vgcreate vg_data /dev/sdb
# 3. 创建逻辑卷(精简配置)
sudo lvcreate -L 10G -n lv_www vg_data
# 4. 创建文件系统并挂载
sudo mkfs.xfs /dev/vg_data/lv_www
sudo mkdir /var/www
echo "/dev/vg_data/lv_www /var/www xfs defaults 0 0" | sudo tee -a /etc/fstab
sudo mount -a
常见问题排查:
- 当
vgs或lvs命令无输出时,检查/etc/lvm/lvm.conf中的过滤器设置 - 扩展逻辑卷后,记得用
xfs_growfs或resize2fs调整文件系统大小
3.2 磁盘配额配置
启用配额需要多个步骤协同工作:
bash复制# 1. 在fstab中添加usrquota,grpquota选项
/dev/vg_data/lv_www /var/www xfs defaults,usrquota,grpquota 0 0
# 2. 重新挂载分区
sudo mount -o remount /var/www
# 3. 初始化配额数据库
sudo quotacheck -cug /var/www
sudo quotaon /var/www
# 4. 为用户设置配额
sudo edquota -u devuser01
4. 系统服务管理深度解析
4.1 systemd单元文件定制
创建自定义服务单元时,以下模板涵盖了大多数场景:
ini复制[Unit]
Description=Custom Application Service
After=network.target
[Service]
Type=simple
User=appuser
Group=appgroup
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -jar /opt/app/app.jar
Restart=on-failure
RestartSec=30s
[Install]
WantedBy=multi-user.target
关键参数说明:
Type=simple适用于大多数前台进程Restart策略需要根据应用特性调整- 使用专用用户运行服务增强安全性
4.2 服务故障排查流程
当服务启动失败时,系统化的排查步骤:
-
查看服务状态详情
bash复制sudo systemctl status servicename -l -
检查日志(journalctl提供多种过滤方式)
bash复制sudo journalctl -u servicename --since "1 hour ago" -
手动执行命令测试
bash复制sudo -u appuser /usr/bin/java -jar /opt/app/app.jar -
检查依赖项(特别是网络和存储)
bash复制sudo lsof -i :8080 sudo ls -l /opt/app/
5. 网络配置与防火墙
5.1 网络接口绑定
多网卡绑定提高可靠性:
bash复制# 创建bond接口配置文件
echo 'DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
BONDING_OPTS="mode=active-backup miimon=100"' | sudo tee /etc/sysconfig/network-scripts/ifcfg-bond0
# 配置从属接口
for NIC in eth0 eth1; do
echo "DEVICE=$NIC
MASTER=bond0
SLAVE=yes" | sudo tee /etc/sysconfig/network-scripts/ifcfg-$NIC
done
# 重启网络服务
sudo systemctl restart network
5.2 firewalld高级配置
允许特定IP访问服务的配置示例:
bash复制# 创建新zone
sudo firewall-cmd --permanent --new-zone=restricted
# 添加源IP限制
sudo firewall-cmd --permanent --zone=restricted --add-source=192.168.1.50/32
# 允许特定服务
sudo firewall-cmd --permanent --zone=restricted --add-service=http
# 重载配置
sudo firewall-cmd --reload
6. 自动化任务与日志分析
6.1 高级crontab配置
生产环境中推荐的crontab写法:
bash复制# 每天凌晨3点执行备份,输出重定向到日志
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
# 每周一检查磁盘空间,邮件通知结果
0 9 * * 1 df -h | mail -s "Disk Space Report" admin@example.com
最佳实践:
- 脚本中使用完整路径
- 重要的任务添加邮件通知
- 复杂的任务应该写成独立脚本
6.2 日志轮转配置
/etc/logrotate.d/下的自定义配置示例:
bash复制/var/log/app/*.log {
daily
missingok
rotate 30
compress
delaycompress
notifempty
create 0640 appuser appgroup
sharedscripts
postrotate
/usr/bin/systemctl reload appservice >/dev/null 2>&1 || true
endscript
}
这个配置实现了:
- 每天轮转日志
- 保留30天历史
- 使用gzip压缩(delaycompress表示延后压缩)
- 轮转后保持正确的权限
- 触发服务重载
在实际操作中,我发现很多学员容易忽略SELinux对系统服务的影啊。当服务无法访问特定文件时,除了检查常规权限外,一定要用ls -Z查看安全上下文,必要时使用chcon临时修改或semanage永久调整策略。
