news 2026/10/16 11:06:50

RHCSA第一次作业全流程实操:从环境配置到SELinux排错

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RHCSA第一次作业全流程实操:从环境配置到SELinux排错

说句实在话,很多准备考RHCSA的朋友,第一次做作业时最容易犯的毛病就是“打开终端不知道先敲什么”。RHCSA全称Red Hat Certified System Administrator,说白了就是检验你在真实Linux环境下能不能独立搞定一台服务器的日常管理,而这第一次作业,基本就是把你从“会一点Linux命令”拉到“能完成系统管理任务”的第一道坎。这篇文章不是给你贴答案,而是把第一次作业拆开揉碎,告诉你每一步在练什么、为什么这样练、实操中会踩什么坑,以及怎么自查才能确认自己真的学会了。适合刚报名培训的学员,也适合打算自学备考、想检验自己水平的人。

1. 先搞明白:RHCSA第一次作业到底在练什么

1.1 从证书倒推需要掌握的技能

RHCSA考试(EX200)有明确的技能域,第一次作业通常不会直接让你做整套模拟题,但它的设计逻辑一定是围绕核心考点来的。我见过很多学员拿到作业清单后一脸茫然,觉得“题目太简单了”,其实越简单的题越能暴露基本功问题。

RHCSA考试的内容可以归纳成几条主线:

  • 命令行操作与文件管理,包括bash、通配符、输入输出重定向、文本处理工具;
  • 用户与权限体系,包括用户/组创建、密码策略、sudo权限、文件权限与特殊权限;
  • 存储管理,包括磁盘分区、文件系统创建、LVM逻辑卷、swap分区、fstab持久化挂载;
  • 系统管理基础,包括systemd服务、日志、定时任务、时间同步;
  • 网络配置,包括主机名、IP地址、路由、防火墙策略;
  • 软件管理,包括yum/dnf源配置、包安装与更新;
  • 安全增强模块SELinux的基本操作。

换句话说,第一次作业如果只练了“用户管理和看文件”,那是不够的。它的目的不是让你做一道题,而是让你把这些技能串成一条线——拿到一台全新服务器,从设置网络、创建用户、划分存储,到启动服务、开放端口,最后验证结果,整个过程就是一次微缩的“交付一台可用系统”。

1.2 一份“第一次作业”应该涵盖的内容范围

如果你正在带班或者自学规划,我建议把第一次作业当成一次“全流程演练”,而不是零散的命令练习。举一个我常用的作业结构,你可以直接参考:

模块任务概要对应考点
环境初始化设置主机名、IP、软件源网络配置、基础设置
用户与权限创建用户、组,设置sudo用户管理、权限体系
基础服务配置SSH、NTP、日志系统服务管理
存储配置分区、格式化、LVM、挂载文件系统与逻辑卷
安全加固SELinux上下文、防火墙端口安全模块
综合验证重启后全部生效、服务可访问持久化、排错能力

不要小看“重启后生效”这一步,第一次作业最重要的目标就是让学习者建立“服务要能开机自启、配置要能持久化”的意识。很多人在虚拟机里配置完感觉一切正常,一重启就原形毕露——网络断了、服务起不来、自定义目录不见了,这些才是RHCSA真正的考场,也是实际工作中最常遇到的问题。

2. 环境准备:别在安装和订阅上浪费时间

2.1 虚拟化平台与系统版本选择

第一次作业最忌讳的就是把大量精力消耗在“装系统”上。我在带学员时反复强调:装系统只要成功一次,后面就全是重复劳动,有那时间不如多练两道真题。

虚拟化平台方面,VMware Workstation和VirtualBox都可以,但我个人更推荐用VMware Workstation,因为它的快照和网络模式在练习时更顺手。比如快照功能,做LVM实验前拍一张快照,出错了直接回滚,比重新装一遍系统省太多时间。如果机器内存够大,建议虚拟机给4GB以上内存、双核CPU,磁盘至少给40GB——RHCSA存储练习需要你有多块磁盘做分区和LVM,磁盘太小会限制你练习的场景。

系统版本选RHEL 9系列,因为现在考试用的就是RHEL 9环境。但没有红帽订阅怎么办?两个办法:一个是到红帽开发者网站申请免费的个人开发者订阅,能正常使用RHEL官方软件源;另一个是换用Rocky Linux 9或AlmaLinux 9,它们是RHEL的二进制兼容发行版,学习体验几乎一致,软件源免费可用。我见过不少学员用CentOS Stream 9练习,虽然也能覆盖绝大多数考点,但部分细节和RHEL 9存在差异,不建议在备考阶段用它。

2.2 从零安装一台RHEL学习机

安装过程有几个细节会影响后续练习,值得单独拿出来说。

分区那里,新手最容易忽略的是“手动分区”。默认自动分区也能装完系统,但考试中要求你手动配置分区、按特定大小划分目录,如果你连安装时的分区界面都没见过,后面会非常被动。我建议第一次安装就手动分区:/boot给1GB(不用太大,但太小升级内核时会尴尬),swap给2GB甚至更大的练习空间,/给剩余空间,再留出一块“不分区”的空白磁盘,方便系统装完后练习加盘、建分区。

Root密码设置记得用复杂一点但能记住的,比如带上大小写和数字。另外安装界面的“软件选择”里选“带GUI的服务器”还是“最小安装”,其实都行。如果你想逼自己多用命令行,最小安装更好;如果对Linux还不熟,带GUI会给你心理上的安全感,桌面环境里打开终端,学习曲线更平缓。我个人的建议是:第一次作业阶段用带GUI的版本,到后期冲刺阶段再开最小安装的虚拟机来模拟考场环境。

2.3 软件源、主机名与网络规划

装完系统后别急着做作业,先把基础配置固化。软件源是第一个坑——RHEL系列的系统如果没订阅,默认软件源是空的,你敲dnf install vim会提示找不到软件包。可以用红帽开发者订阅的subscription-manager register搞定,也可以用本地ISO挂载创建本地源,或者直接用Rocky/Alma的源地址替换。这个流程在真实服务器运维中也会遇到,属于必会技能。

接下来设置主机名和IP。主机名一定要能改就改,不要用默认的localhost,因为考试环境里每台机器主机名都不同,你记混了后面考到配置主机名时很容易翻车:

hostnamectl set-hostname servera.example.com exec bash

网络配置推荐用nmcli而不是直接改网卡配置文件。虽然RHCSA考试会让你写网卡配置文件,但那是考点,平时练习用nmcli又稳又快:

nmcli con mod ens160 ipv4.addresses 192.168.1.10/24 nmcli con mod ens160 ipv4.gateway 192.168.1.1 nmcli con mod ens160 ipv4.dns "223.5.5.5" nmcli con mod ens160 ipv4.method manual nmcli con up ens160

注意一下,虚拟机网卡名经常不是ens160,按实际环境替换就行。配完用ping验证连通性,至少保证内网能通。

3. 实操过程:手把手完成作业核心环节

3.1 命令行与文件操作:一切的基础

第一次作业里最常见的题型就是“创建目录结构、复制文件、设置权限”。很多新手觉得tgz解压、find查找、grep过滤这种基础命令没啥可练的,但实际操作时速度跟不上、参数记混的大有人在。

举个例子,创建一个多级目录结构并复制文件:

mkdir -p /data/project/{docs,logs,backup} cp /etc/passwd /data/project/docs/ find /data -type f -name "*.log"

这里面有个容易疏忽的点:如果/data目录之前不存在,而你的脚本里又要反复引用它,记得先创建父目录再创建子目录,否则会报No such file or directory的错。命令行训练没有捷径,唯一靠谱的办法就是给自己设计“一小时完成30个指定操作”的练习目标,每个操作都必须用管道、重定向、通配符组合完成。比如“把/etc目录下所有.conf文件里包含root的行保存到/home/student/conf_root.txt”这种题目,一句命令就能考到find、grep、重定向三个知识点。

3.2 用户、组与权限管理:RHCSA的重头戏

用户管理是每次作业必然出现的核心模块,也是RHCSA考试占比最大的几个方向之一。第一次作业我建议至少覆盖以下操作:

groupadd ops useradd -G ops alice echo "password" | passwd --stdin alice usermod -aG wheel alice visudo

创建用户时要注意几个细节:默认的useradd不会创建家目录的Shell配置模板吗?其实会创建,但如果你加的是系统账户(-r参数),它是没有家目录的。另外passwd --stdin在RHEL 9里可以正常用,但在某些发行版里会提示不支持,备用方案是echo "password" | chpasswd。

sudo配置是另一个高频考点。wheel组在RHEL系列默认具有sudo权限,但考试经常要求你为特定用户配置特定的sudo规则。这时候不要直接改/etc/sudoers,而是用visudo创建一个/etc/sudoers.d/下的独立文件,比如:

visudo -f /etc/sudoers.d/alice echo "alice ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/alice

配置文件权限必须是0440,否则系统会拒绝加载。这个点如果作业里没有考到,你也要主动去验证一遍,因为它是多选题最爱出坑的地方。

文件权限部分,除了常规的chmod 750,一定要练特殊权限。RHCSA作业最常见的组合是:创建一个公共目录,要求组内成员可读写,且文件只能被所有者删除。这就是sticky bit和setgid的组合:

mkdir /data/team chown root:ops /data/team chmod 2770 /data/team

2770里的2就是setgid,表示新建文件自动继承目录的组;目录本身770表示组成员可读写执行,其他人无权访问。想验证效果,用alice在目录里建个文件,看属主组是不是自动变成ops。

3.3 存储:分区、格式化与LVM

存储实验是所有环节里最容易“重启翻车”的,也是第一次作业最能拉开差距的部分。我建议按这个顺序练:

第一,用fdisk或parted做传统分区。比如给第二块磁盘创建两个分区,一个作为普通分区挂载到/mnt/data,另一个作为swap使用。

fdisk /dev/sdb # n 新建分区,p 主分区,1 分区号,默认扇区,+2G 大小 # 记着最后用 w 保存分区表 partprobe /dev/sdb mkfs.xfs /dev/sdb1 mount /dev/sdb1 /mnt/data

第二,把另一个分区做swap。注意swap文件系统的创建不是mkfs,而是mkswap:

mkswap /dev/sdb2 swapon /dev/sdb2

第三,LVM逻辑卷管理。这是RHCSA的必修课,如果你只在本机练习过一次LVM,上考场会非常被动:

pvcreate /dev/sdb1 /dev/sdb2 vgcreate vgdata /dev/sdb1 /dev/sdb2 lvcreate -L 9G -n lvdata vgdata mkfs.xfs /dev/vgdata/lvdata mount /dev/vgdata/lvdata /mnt/data

LVM的核心优势是扩容。比如你想把逻辑卷从9G扩到12G,再用xfs_growfs扩大文件系统:

lvextend -L +3G /dev/vgdata/lvdata xfs_growfs /mnt/data

注意xfs文件系统只能扩容不能缩容,这个点是坑:如果你先格式化成ext4,那就可以用resize2fs灵活地扩缩容。考试时看清题目要求,以及目标文件系统的类型。

持久化配置是最后一步,也是最容易做错的。考试要求重启后挂载不丢,需要写进/etc/fstab。我强烈建议用UUID而不是设备名:

blkid /dev/vgdata/lvdata # /dev/vgdata/lvdata: UUID="xxxx-xxxx" TYPE="xfs"

然后在/etc/fstab里写:

UUID=xxxx-xxxx /mnt/data xfs defaults 0 0

写完后一定要执行mount -a验证语法,否则fstab写错了导致重启进不了系统,这种事故在考试中直接会判失败。

3.4 服务与系统管理:systemd与firewalld

第一次作业到这一步,难度开始上来了。先用systemd管理服务:

systemctl enable --now httpd systemctl status httpd systemctl restart httpd systemctl list-units --type=service --state=running

enable --now是现在最标准的启动并开机自启的写法,比enable后再start少敲一条命令,也不容易漏掉开机自启。

firewalld是另一个必考项,核心操作是:

firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload firewall-cmd --list-all

注意:不加--permanent的规则只在当前会话有效,一重启就消失。很多学员配完了当时能访问,重启后服务还在但端口不通,就是漏了--permanent。另外修改完规则后必须--reload,否则也不会实际生效。

3.5 SELinux:十个人九个栽在这里

如果你问考过RHCSA的人最头疼的考点是什么,大概率会提到SELinux。第一次作业如果没有SELinux相关的题目,你就把它当成给自己加练的必做任务,否则后面会吃大亏。

SELinux的核心不是“关掉它”,而是理解三个概念:模式、上下文、布尔值。作业里最典型的场景是这样的——你把一个网站目录放在/web,写了HTML,Apache也配置好了,防火墙也放行了,但访问时就是403。问题大概率出在SELinux上下文不对:

ls -Zd /web # 输出多半是 unconfined_u:object_r:default_t:s0

正确做法是为自定义目录设置Web内容类型:

semanage fcontext -a -t httpd_sys_content_t "/web(/.*)?" restorecon -Rv /web

这两条命令解决的是文件上下文问题。另一个常见场景是,你需要允许httpd访问用户家目录或通过网络连接数据库,这种不需要改上下文,只需要打开对应的布尔值:

setsebool -P httpd_enable_homedirs on

-P表示持久化,不带-P只对当前运行生效,重启后恢复。这个细节在作业中体现为“要求设置为永久生效”,你必须记得加-P。

3.6 收尾自查:像考试一样验证

作业完成后,不要急着跟老师说“做完了”,给自己做一个“重启验证”:

第一,reboot重启系统,确认开机后主机名正确、网络能通、所有自定义挂载点都存在、创建的用户能正常登录、服务是running状态。

第二,验证防火墙规则是否持久化,firewall-cmd --list-all,查看端口是否还在。

第三,验证SELinux上下文是否正确,restorecon后再次访问网页目录,确认返回200。

第四,检查日志有没有服务启动失败的错误,journalctl -p err -b。

这一套验证流程本身就是RHCSA备考的核心能力。很多人平时练习正确率很高,一上考场就慌,原因就是从来没有在“重启后、没图形界面、不能随意查看配置”的条件下做过验证。第一次作业就养成“重启验证”的习惯,后面模拟考试时会顺畅很多。

4. 问题排查:第一次作业里最典型的坑

4.1 网络配置“重启就失效”的真相

这个问题我几乎在每个班都能遇到。明明用nmcli配好了IP,重启后恢复原样,或者干脆网卡起不来。原因通常有三类:

第一,NetworkManager没接管这张网卡。RHEL 9中默认每个网卡都有连接配置文件,但如果之前手动改过/etc/sysconfig/network-scripts/ifcfg-*,又和NetworkManager的配置冲突,就会出现一个配置改了但另一个不认的情况。建议统一用nmcli管理。

第二,网关配置问题。只配了IP地址没配网关,或者网关和DNS信息写在不同的连接里,导致重启后只能内网通、外网不通。用nmcli con show检查连接的详情,确认ipv4.gateway存在。

第三,配置文件缺失。有些学员在安装系统时没启用网卡的自动连接,导致开机后网卡处于连接失败状态。解决方法是修改连接的自动连接选项:

nmcli con mod ens160 connection.autoconnect yes nmcli con up ens160

4.2 用户密码与sudo的细节

用户模块最常见的错误包括:创建用户时忘了设置密码,导致该用户无法登录;使用useradd -r创建系统用户后误以为它能正常登录;配置sudo时直接改/etc/sudoers,结果语法错误导致sudo完全失灵。

这里说一个独家技巧:配置sudo前先执行visudo -c检查语法,配置后开一个新终端用目标用户执行sudo -l看权限是否生效。不要在root会话里测试sudo,因为root本身就是最高权限,测出来什么都是对的。

4.3 磁盘与LVM的常见失误

存储模块的坑主要集中在fstab上。我见过最惨的学员:fstab里设备名写错了,重启后系统直接进入救援模式。

另一个常见问题是“扩容不生效”。lvextend只是扩大逻辑卷,文件系统本身不会自动变大。xfs要用xfs_growfs,ext4要用resize2fs。如果做完df -h发现容量没变,先检查文件系统类型,再执行对应的扩容指令。

创建swap时漏写/etc/fstab也是高频错误。swap的fstab写法和普通挂载不太一样,看着像这样:

/dev/sdb2 swap swap defaults 0 0

写完照样用swapon -a验证。

4.4 SELinux和防火墙“莫名其妙不生效”

这两种问题经常被混淆。现象都是“服务配好了,访问不了”。排查时先分清层级:

# 防火墙是否放行 firewall-cmd --list-all # SELinux是否阻止 ausearch -m avc -ts recent

ausearch是排查SELinux问题的利器。如果你访问被拒,它的输出里会明确告诉你被哪个策略拒绝,涉及哪个端口或文件。第一次作业时遇到SELinux导致的403,先看/var/log/audit/audit.log,别急着setenforce 0,学会从日志里定位问题,这才是考试想考察的能力。

我把这些坑整理成一张速查表,方便你对照排查:

现象可能原因排查方法解决办法
重启后IP丢了NetworkManager未接管/自动连接关闭nmcli con status设置autoconnect yes
新用户无法登录未设密码或shell非法passwd -S 用户名passwd 用户名
sudo执行报错sudoers语法错误visudo -c修复sudoers文件
挂载点重启消失fstab缺失或格式错误mount -a按UUID补fstab
扩容后容量不变文件系统未扩容df -hT查看类型xfs_growfs或resize2fs
网页访问403SELinux上下文错误ls -Zd/ausearch -m avcsemanage fcontext + restorecon
端口通了但外部访问失败firewalld未永久放行firewall-cmd --list-all加--permanent并reload

第一次作业做完,你会对这些常见问题形成肌肉记忆,而不是只在答案里见过。

最后再分享一个我个人的习惯:完成作业后,我习惯把整套操作的命令记录成一份Markdown笔记,按“环境信息、操作步骤、验证结果、遇到问题”四段式整理。不要小看这份笔记,它既是复习资料,也是面试时你能够拿得出手的证明——说明你真的动手搭过环境、排过障,而不只是“看过教程”。RHCSA这个认证本身不难,但它是后续RHCE和真实运维生涯的基石,第一次作业认真走一遍,后边的路会顺很多。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/16 8:18:09

基于agency-agents的多智能体协作系统:架构设计与实践

如果你最近在折腾AI Agent,八成遇到过这种场面:让一个智能体一口气完成“调研-分析-写报告”整个流程,结果它调研完就忘了结论,写到一半开始编数据,最后交出来一份前后矛盾的东西。我早期做自动化任务时被这种问题折磨…

作者头像 李华
网站建设 2026/10/16 0:31:51

从文法到表达式解析:C++手写递归下降与Bison实战

简介:面向编译原理课程中的语法分析实验,这是一份采用C实现的递归子程序法分析程序,适合正在完成相关作业的高校学生,也适合想对照自动评测要求检查自己实现的开发者。程序基于词法分析输出的单词序列,按给定文法递归下…

作者头像 李华
网站建设 2026/10/16 6:05:44

M6 mini实测:MoE为何比27B稠密模型更适配边缘NPU

1. 项目概述:这台小机器到底在干什么?“M6 mini 32GB 实测梳理:MoE 能跑,27B 稠密仍受限”——光看标题,你可能以为这是某款新发布的AI硬件评测,但其实它背后藏着当前大模型落地最真实、也最棘手的矛盾&…

作者头像 李华
网站建设 2026/10/14 17:06:36

前端 File 与 Blob:从数据容器到文件上传的完整实践指南

把 File 和 Blob 的关系做成前端面试题,我见过太多人回答“File 继承自 Blob”,然后就停住了。这个答案放在教科书里完全正确,但放进真实项目里几乎不解决任何问题。我自己也是在经历了一次又一次的翻车之后才意识到,真正值得理解…

作者头像 李华
网站建设 2026/10/16 7:24:56

CNN-LSTM-SE注意力机制:原理与Matlab实现

简介:一份基于CNN-LSTM-SE注意力机制的多输入单输出分类预测Matlab实现,面向需要进行时间序列分析、文本分类或语音识别等任务的研究者与工程人员。项目将卷积特征提取、长短期记忆建模与SE通道注意力相结合,适用于特征间存在空间关联且带时序…

作者头像 李华