红帽认证系统管理员(RHCSA)是Linux系统管理领域最具含金量的入门级认证之一。作为红帽认证体系的基础,RHCSA考核内容覆盖了Linux系统管理的核心技能点,包括文件系统操作、用户权限管理、服务配置等实际运维工作中必备的能力。
我去年参加了红帽官方培训课程,在结课时完成了一个综合性实践项目。这个项目不仅帮助我顺利通过了RHCSA认证考试,更重要的是让我对Linux系统管理有了更体系化的理解。下面我就详细分享这个结课项目的完整实现过程。
项目使用CentOS 8作为实验环境,这是当时与RHEL 8最接近的免费发行版。安装时需要注意几个关键点:
安装完成后,首先执行系统更新:
bash复制sudo dnf update -y
sudo reboot
按照项目要求,需要创建三个测试用户:
bash复制sudo useradd -m -s /bin/bash user1
sudo useradd -m -s /bin/bash user2
sudo useradd -m -s /bin/bash admin1
设置密码时,使用以下命令可以强制用户在首次登录时修改密码:
bash复制sudo passwd -e user1
sudo passwd -e user2
sudo passwd -e admin1
项目要求创建一个共享目录,实现以下权限控制:
具体实现步骤:
bash复制sudo mkdir /shared
sudo chown admin1:admin1 /shared
sudo chmod 770 /shared
验证权限设置:
bash复制ls -ld /shared
# 应显示 drwxrwx--- 2 admin1 admin1 4096 [日期] /shared
为user1和user2设置磁盘配额限制:
bash复制sudo dnf install quota -y
bash复制/dev/mapper/cl-root / xfs defaults,usrquota,grpquota 0 0
bash复制sudo mount -o remount /
sudo quotacheck -cum /
sudo quotaon -v /
bash复制sudo edquota -u user1
# 在编辑器中设置soft/hard限制,如500M/1G
项目要求配置SELinux,实现以下目标:
具体配置:
bash复制# 检查SELinux状态
sudo sestatus
# 设置httpd非标准端口
sudo semanage port -a -t http_port_t -p tcp 8080
# 设置samba共享标签
sudo semanage fcontext -a -t samba_share_t "/shared(/.*)?"
sudo restorecon -Rv /shared
bash复制sudo dnf install httpd -y
bash复制sudo mkdir -p /var/www/html/project
sudo chown -R apache:apache /var/www/html/project
编辑/etc/httpd/conf.d/project.conf:
code复制<VirtualHost *:8080>
ServerName project.example.com
DocumentRoot /var/www/html/project
<Directory /var/www/html/project>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
bash复制sudo systemctl enable --now httpd
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
bash复制sudo dnf install samba -y
code复制[shared]
path = /shared
valid users = user1 user2 admin1
browseable = yes
writable = yes
create mask = 0660
directory mask = 0770
bash复制sudo smbpasswd -a user1
sudo smbpasswd -a user2
sudo smbpasswd -a admin1
bash复制sudo systemctl enable --now smb
sudo firewall-cmd --add-service=samba --permanent
sudo firewall-cmd --reload
项目要求设置定期备份任务:
bash复制#!/bin/bash
tar -czf /backups/backup-$(date +%Y%m%d).tar.gz /shared /var/www/html/project
find /backups -type f -mtime +7 -delete
bash复制sudo chmod +x /usr/local/bin/backup.sh
bash复制sudo crontab -e
# 添加以下内容
0 2 * * * /usr/local/bin/backup.sh
在实际操作中遇到的一些典型问题及解决方法:
bash复制# 检查审计日志
sudo ausearch -m avc -ts recent
# 临时解决方案
sudo setenforce 0
# 永久解决方案
sudo semanage boolean --list | grep 相关服务
sudo setsebool -P 相关布尔值 on
bash复制# 检查配额状态
sudo repquota -a
# 重新初始化配额
sudo quotacheck -avugm
sudo quotaon -avug
bash复制# 查看服务状态
sudo systemctl status 服务名
# 查看日志
sudo journalctl -xe -u 服务名
通过这个综合项目,我系统性地实践了RHCSA考试要求的各项技能。有几个特别值得注意的经验点:
权限管理方面,除了基本的chmod/chown,还需要考虑SELinux上下文和文件创建掩码(umask)的影响。特别是在配置samba共享时,这三者的协同配置至关重要。
服务配置完成后,一定要测试从其他客户端访问,很多问题(特别是防火墙和SELinux相关)只有在实际访问时才会暴露。
养成查看系统日志的习惯,/var/log/目录下的各种日志文件是排查问题的第一手资料。journalctl工具可以更方便地查看systemd管理的服务日志。
这个项目不仅帮助我顺利通过了RHCSA认证,更重要的是建立了对Linux系统管理的整体认知框架。建议准备RHCSA认证的同学,一定要动手实践类似的综合项目,而不仅仅是单独练习各个考点。