
1. 为什么RHCSA的第一次作业值得认真对待刚接触RHCSA认证的人多数会先问一个问题这个认证到底难不难我的回答通常是——如果你把备考当成背题库那它确实不算难但如果你想靠一张RHCSA证书撑起Linux运维的入门底气那备考过程中每一次实操训练尤其是第一次动手做作业、搭环境、敲命令的那个过程才是真正拉开差距的地方。RHCSA全称是Red Hat Certified System Administrator全中文可以理解为红帽认证系统管理员。它面向的是Linux系统的基础运维能力考试全部在真机上进行没有选择题没有填空题只有几十道需要在终端里实际完成的操作任务。这与很多传统认证有本质区别——它不是你知道什么的测验而是你能不能做出来的考验。正因为如此备考RHCSA的第一次作业往往不是背几个命令那么简单而是要独立完成从环境搭建、网络配置、用户管理到服务部署的一整套基础运维动作。那第一次作业具体应该是什么以我自己的备考经验来说绝大多数培训机构和自学路线图都会把第一次作业安排成两件事第一把考试环境完整跑起来也就是安装虚拟机、配置好Red Hat系Linux系统、保证SSH能远程登录第二完成一组基础命令练习包括文件操作、用户创建、权限调整。听起来很简单对吧但恰恰是这第一次作业筛掉了相当一部分报名了却始终没走上考场的人。为什么会这样因为大多数人对会Linux的想象停留在图形界面里点点鼠标而RHCSA的第一次作业会直接把你拉进纯命令行。第一关就是网络不通的自我排查第二关就是SELinux权限拦截报错第三关可能是防火墙把SSH端口挡在了外面。这些在平时看起来考试应该不考吧的细节实际操作起来一个比一个磨人但也正是这些细节决定了你后面几十次练习的效率。这篇文章我就以RHCSA第一次作业为起点把自己当时踩过的坑、摸索出的顺序、以及后来帮别人辅导时看到的共性问题完整梳理一遍。不管是准备报名的初学者还是已经在培训群里等着交作业的新手这篇文章应该可以帮你少走至少一周的弯路。2. 第一次作业的实战环境搭建从安装虚拟机到SSH登入2.1 选对虚拟化方案为什么我推荐RHEL 9加VMware Workstation或KVMRHCSA考试默认的操作系统版本是Red Hat Enterprise Linux也就是RHEL。当前考试环境中比较主流的是RHEL 9系列练习用哪个虚拟化平台其实没有硬性规定但市面上最常用的是VMware Workstation和KVM。我个人建议如果你用的是Windows本机直接上VMware Workstation Pro个人用途免费版本完全够用如果你本身就在Linux环境里那用KVM更顺理成章。这里要先说清楚一个容易踩的坑很多人为了节省时间直接下载CentOS Stream或Rocky Linux来练习这点当然没问题因为命令和体系基本一致。但有一个细节必须注意——RHEL官方要求注册订阅才能使用dnf源而Rocky Linux、CentOS Stream不需要订阅。如果你练习的时候用的是Rocky考试用的是RHEL那你一定要提前适应两件事一是RHEL的软件源需要注册二是在不注册的情况下你没法通过dnf安装额外软件。第一次作业如果装完系统发现yum/dnf装不了包先别急着怀疑镜像问题基本就是订阅没弄。安装虚拟机时我建议给到的配置是内存至少4GB8GB更稳、硬盘40GB以上、网络适配器选择NAT模式。为什么强调NAT而不是桥接因为NAT模式下你的宿主机可以稳定的和虚拟机通信而桥接模式在很多校园网、办公网环境下会拿不到IP并且整个实验过程你还需要保证虚拟机能访问外网来下载软件包NAT模式在网络环境剧烈变化时更稳定。这也意味着你的SSH连接几乎不会因为宿主机网络变动而中断。2.2 安装系统阶段最容易忽视的三个配置RHEL安装过程中有三次机会能让你后面的实验省很多事但新手通常根本不看直接Next等到交作业时才回来翻车。第一个是安装源和软件包选择。安装时要记得勾选带图形界面的服务器或者服务器基础环境。如果你只选了最小化安装后面做图形相关练习会哭而且不会自动装firewalld之外的很多工具。不需要图形界面也可以选最小化但第一次作业阶段建议选带基本工具的类服务器环境毕竟你后面要做网络调试、文本处理、日志查看缺了常用工具很容易中途卡住先装包。第二个是磁盘分区。强烈建议手工配置分区留出一块未分配的空间或者专门划分一个独立的卷组。这么做的原因后面会详细展开因为RHCSA考试里有大量LVM题目如果你练习环境一开始就把所有磁盘空间分给根分区等到作业要求做逻辑卷时你连调整磁盘大小的余地都没有。别嫌这一步麻烦考试训练里多一个空闲卷组能省掉后面重装系统的很多麻烦。第三个是root密码和网络配置。安装向导里会让你设置root密码别设置成过于简单或者包含特殊字符容易记混的因为后面你大量操作都要用root建议设一个又好记又满足复杂度要求的密码。网络配置这块安装界面里看起来可以配置主机名和网络但很多人忘了在安装阶段就把网卡设为开机自动连接导致第一次启动后进入系统发现IP地址是空的。具体表现就是ifconfig或者ip addr查不到IPv4地址SSH也连不上。2.3 首次SSH连接失败排查从网卡到防火墙的完整思路第一次作业的交作业标准通常是通过SSH从宿主机连进虚拟机的命令行。这一步听起来很简单但它串联了网络接口、IP地址、默认路由、防火墙、SSH服务五个环节任何一个环出问题你都会看到Connection refused或Connection timed out。我的建议是不要一上来就去改firewalld先按以下顺序排查在虚拟机里执行ip addr确认网卡有IPv4地址。如果没有输出说明网卡没启用直接用nmcli connection up 你的连接名顺便用nmcli connection modify 你的连接名 autoconnect yes让它以后自动启动。确认能ping通网关。网关是多少要看你NAT网段的配置一般VMware默认是192.168.x.2VirtualBox默认通常是10.0.2.2。ping不通网关说明路由或网卡配置有问题。确认能ping通宿主机。宿主机IP用ipconfig或者ip addr查。如果这一步通而SSH还是连不上多半是防火墙或者SSH服务本身的问题。在虚拟机里执行systemctl status sshd确认SSH服务在运行。若没有运行运行systemctl enable --now sshd。最后才考虑防火墙放行。如果你习惯图形界面可以用firewall-config命令行里则执行firewall-cmd --permanent --add-servicessh firewall-cmd --reload。这里要特别说一个很多人想不明白的概念为什么NAT模式下宿主机要访问虚拟机流量路径是什么简单理解NAT模式的虚拟机和宿主机在同一个虚拟局域网里虚拟机通过虚拟网卡与宿主机上的虚拟交换机相连再通过宿主机的物理网卡访问外网。所以宿主机和虚拟机之间其实是可以直连的不需要经过外部网络。这也是为什么我们在实验环境里百试不爽的SSH连接方式在NAT模式下会非常稳定。我第一次交作业时卡在了SSH登录超时上整整两个晚上最后发现是自己把虚拟机里的firewalld默认zone从public改成了drop。当时只是看教程说改zone可以更安全结果直接把自己挡在门外。这个教训后来成了我辅导别人时必讲的段子安全配置要在功能验证通过之后再考虑一开始就追求加固往往适得其反。3. 第一批命令训练文件管理、权限与用户的底层逻辑3.1 为什么RHCSA第一个作业通常从文件与权限开始RHCSA考试覆盖的内容很广包括用户与组、文件权限、日志管理、网络配置、存储管理、服务部署、容器基础等。那为什么第一次作业往往从文件和权限入手因为在真实的运维场景里文件归属和权限管理是所有服务运行的前提——你启动的服务以哪个用户身份运行你写的配置文件其他人能不能修改你的脚本有没有执行权限这些决定了一个系统能不能稳定、安全地跑起来。而且权限这个东西理念上就那么几个字母rwx实际做题却非常容易出错。因为考试题目不会直接问你数字权限755是什么意思而是描述一个场景比如要求创建一个用户user1使其对目录/data/project有读写执行权限但对同一个目录下的readme.txt只能读不能写同时要求备份文件时保留原有属主和权限信息。题目语言是场景化的但考察的知识点归根到底还是chmod、chown、umask、ACL这些基本操作。所以第一次作业的命令练习别急着背命令先把下面这张对应关系表弄明白操作目标常用命令需要理解的底层概念修改文件或目录权限chmod数字权限法、符号权限法修改文件属主或属组chown、chgrp文件所有权、属组继承设置默认权限umask新文件/目录的默认权限查看权限状态ls -l、stat硬链接、上下文语义单独精细化控制setfacl、getfaclACL访问控制列表特殊权限位chmod us、gsSUID、SGID、Sticky Bit3.2 chmod的数学逻辑为什么数字权限不是随便组合的新人最容易犯的糊涂是都说chmod 777但为什么是777而不是7777这就涉及权限位和特殊权限位的关系。三位基础数字分别代表属主、属组、其他用户的权限每一位上rwx对应的数值是4、2、1加起来是0到7。4代表读2代表写1代表执行所以7421也就是全部权限541代表读执行也就是我们平时说的可读可执行但不可写。比较隐蔽的是chmod 1777这类四位数字场景。四位数字首位是特殊权限位对应SUID4、SGID2、Sticky Bit1。常见的/tmp目录就是1777意思是对其他用户开放写权限但因为Sticky Bit的存在用户只能删除属于自己的文件。第一次作业如果要求你让所有用户都能在某个共享目录里创建文件但不能删除别人的文件答案就不是简单的chmod 777而是要chmod 1777。很多人在这一步开始混本质上是没理解特殊权限位的存在意义——它解决的是多人怎么共享目录但不互相捣乱的问题。另外有一个实操细节需要专门提醒chmod -R 和普通chmod的区别。递归修改目录权限时-R会把目录下所有文件一起改掉但如果题目只要求目录本身可进入、文件权限保持原样就不要用-R。考试时我见过不少人把整个/var目录递归改成777结果系统服务全挂因为SELinux上下文和普通权限交叉问题直接导致各种报错。这种情况重装系统甚至比试图修回去更快。3.3 用户创建实验usermod、group、shadow文件的联动关系RHCSA对用户管理的考察不是孤立的它会串起来考。比如一道典型作业题创建一个用户alice指定其家目录为/home/alice主要组为sales附加组为finance并设置其密码两个月后过期。这道题里涉及的命令不止useradd一个你需要配合usermod、groupadd、chage等一系列操作。先说group。单独用useradd创建用户时系统会自动创建一个与用户名同名的组作为该用户的主要组。但考试场景里经常需要你把用户加入已存在的组或者把某人的主要组切换掉。useradd -g指定主要组-G指定附加组如果要修改已存在用户那就用usermod -g和usermod -G。注意-G如果直接执行会覆盖原有的所有附加组所以一般要写全所有组的列表比如usermod -G sales,finance alice如果之前alice还在别的组这个命令会把它移出去。再说密码有效期。RHCSA考试里有个必考工具是chage它管理的就是/etc/shadow里和密码老化相关的字段。比如要让密码60天后过期就执行chage -M 60 alice要设置最短使用天数避免用户立即改密码就chage -m 7 alice要让用户下次登录强制改密码就chage -d 0 alice。这些字段在shadow文件里分别对应第4列、第5列、第3列配合/etc/login.defs里的默认值一整套逻辑就通了。我辅导别人时最常看到的问题其实不是命令记不住而是不知道这些操作结果应该去哪验证。每次做完用户题目建议都跑一遍id alice查看用户所属组passwd -S alice查看密码状态getent shadow alice查看shadow具体字段。这些验证命令才是RHCSA考试里你每道题花最多时间去确认的东西。毕竟考试过程中题目做完系统不会给提示你要自己判断有没有做到位。4. 网络配置与Systemd服务管理第一次作业里的隐藏大BOSS4.1 nmcli实操为什么不用ifconfig而要学NetworkManager的命令行RHCSA考试明确要求使用NetworkManager体系配置网络命令主角是nmcli而不是ifconfig或ip命令的零散打字。这里有个容易让人困惑的点ip addr也可以查IPifconfig也可以临时改IP但这些都是即时生效但不持久的。考试题目的要求往往是重启后依然生效所以走NetworkManager路线才是正规解法。nmcli最常用的几个场景如下查看网络连接状态最简单的是nmcli device status它列出设备名、类型和连接状态。要查看具体IP信息用nmcli connection show。配置静态IP比较完整的命令是nmcli connection modify System eth0 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 ipv4.method manual nmcli connection up System eth0这里System eth0是你网卡的连接名默认可能不叫这个可以先用nmcli connection show看一下。ipv4.method manual表示手工指定不写这一句而只加ip系统可能仍然按DHCP处理IP配置会不生效。配完还要注意一个细节如果题目要求同时配置多个DNS不要连着写ipv4.dns 8.8.8.8 114.114.114.114中间不要出现逗号nmcli里的多个值直接用空格分隔但要在引号里一次给出。4.2 第一次作业中的systemctl操作模式enable和启动要分清RHCSA考systemctl的频率非常高尤其是服务开机自启这个点。很多人第一次做作业时执行完systemctl start httpd发现服务能访问就以为做完了。但题目如果写的是确保该服务在开机后自动运行你需要的是systemctl enable httpd而不是start。更严格的说法是start只管当前运行状态enable才管理开机启动状态两者最好同时执行就是systemctl enable --now httpd。与之类似的还有服务停止和禁用的区别。systemctl stop httpd是停止当前运行disable是禁止开机启动。很多新人遇到禁用某服务的题目只执行stop结果重启后服务又回来了导致扣分。如果想让一个服务彻底不起最好是systemctl disable --now 服务名。还有一个很容易被忽略的是daemon-reload。修改完一个服务的unit文件或配置之后使用systemctl daemon-reload刷新systemd对它unit文件的感知再restart服务。如果忘了daemon-reload可能你改了ExecStart、改了EnvironmentFilerestart之后仍然用的是旧配置。第一次作业里如果你配了一个自定义的systemd服务却始终启动失败大概率是没执行daemon-reload。4.3 firewalld的zone概念和SSH放行一次典型的考试常见组合RHCSA对防火墙的要求不深但非常集中基本就是firewalld的zone管理和端口放行。考试题目不会给你一张网络拓扑让你设计防火墙策略更多是允许外部访问http服务禁止ssh外部访问这种具体任务。firewalld最核心的概念是zone和服务。zone是不同信任级别的网络区域比如public区域默认是最常用drop区域默认拒绝所有流量trusted区域默认放行一切。你的网卡只会归属某一个zonezone可以给网卡动态切换理解了zone的运行机制放行规则就好懂很多。放行http服务的标准做法是firewall-cmd --permanent --add-servicehttp firewall-cmd --reload注意一定要加--permanent否则规则只在当前运行时生效重启后消失。另外firewall-cmd修改后除非用--reload否则即使加了--permanent当前运行的防火墙也不会立刻应用新规则。遇到题目要求允许某个随机端口比如放行TCP端口8080用firewall-cmd --permanent --add-port8080/tcp firewall-cmd --reload别写8080不加/tcp因为firewalld的端口规则必须区分tcp和udp漏掉协议类型会导致规则不生效。这个细节在考试现场很容易让人挠头毕竟你一时也看不出来哪里错了。这里我愿意多说一句很多人会把firewalld当成能不用就不用的麻烦模块但真正做过RHCSA模拟题就会发现防火墙配置和SELinux经常联合在一起出比如放行端口后服务仍然不通继续排查SELinux是否拦截。如果你只靠关闭防火墙来应付题目考试时会直接丢掉大量步骤分。5. LVM与文件系统扩容RHCSA第一次作业中的硬核进阶5.1 为什么临时掉链子的往往不是命令而是概念LVMLogical Volume Manager大概是RHCSA备考过程中的第一道真正硬骨头。说它硬不是说命令有多复杂而是它的概念链条比较长物理卷PV、卷组VG、逻辑卷LV一级套一级。没理解透这一层关系靠死记命令做题换个题目描述就抓瞎。用一个生活化类比来解释物理卷就像是硬盘上切割出来的大饼卷组是把好几块大饼拼到一起的大盘子逻辑卷则是从大盘子里面切出来的一块披萨。你在系统里看到的一个分区比如/data挂载点对应的就是一个逻辑卷。披萨不够吃了只要大盘子里还有剩余空间就能把披萨切大一点完全不用重新买面粉。这就是LVM比传统分区灵活的核心可以在不停机的情况下调整文件系统大小。第一次作业里LVM相关题目一般会这样出现一块新硬盘sdb上要求创建物理卷把该物理卷加入已有卷组vg0再从vg0里创建一个大小为2G的逻辑卷lv1格式化为xfs文件系统并挂载到/mnt/lvmdata且要求重启后仍然挂载。这套流程完整做一遍基本把LVM的主要操作都覆盖了。5.2 实例演示从新磁盘到挂载完成的完整命令链假设新磁盘是/dev/sdb完整命令如下# 创建物理卷 pvcreate /dev/sdb # 查看物理卷状态 pvs # 将物理卷加入卷组 vg0假设已存在 vgextend vg0 /dev/sdb # 在vg0上创建逻辑卷 lv1大小2G lvcreate -L 2G -n lv1 vg0 # 格式化文件系统 mkfs.xfs /dev/vg0/lv1 # 创建挂载点 mkdir -p /mnt/lvmdata # 临时挂载 mount /dev/vg0/lv1 /mnt/lvmdata # 永久挂载写入/etc/fstab echo /dev/vg0/lv1 /mnt/lvmdata xfs defaults 0 0 /etc/fstab # 用mount -a验证fstab没有写错 mount -a这里有两个高频错误。第一mkfs.xfs之后不要直接挂载/dev/vg0/lv1而写成了/dev/mapper/vg0-lv1两者其实指向同一个设备如果搞混没关系但别因此害怕实际它们是同一个设备的两个访问路径。第二fstab里如果用UUID更稳尤其题目要求针对块设备操作时/dev/vg0/lv1这种写法可能会在挂载顺序偶尔出问题。可以在格式化后执行blkid查出它的UUID再把UUID填进fstab。还有一步容易被考试新手忽略但第一次作业里往往必考扩容逻辑卷。比如现有lv1只有2G题目要求扩到5G就是lvextend -L 5G /dev/vg0/lv1 xfs_growfs /mnt/lvmdata注意xfs文件系统扩容不能直接用resize2fs那是ext系列用的。很多人从ext4的习惯里带过来直接在xfs上跑resize2fs报错还看不懂。其实xfs的扩容工具是xfs_growfs参数是挂载点而不是设备路径这个区别记牢了扩容题基本不丢分。5.3 挂载、开机自动挂载和fstab排查技巧RHCSA考试对/etc/fstab的考察不只是往里面加一行。常见题目还有系统启动后发现某个挂载点挂不上让你诊断修复。这种题本质考的就是fstab语法和块设备识别方式。fstab每一行有六个字段分别是设备/文件系统、挂载点、文件系统类型、挂载选项、dump备份标志、fsck检查顺序。第六个字段对根分区一般写1其他分区写2或0。如果写错比如把xfs写成了 ext4系统启动时会报错但好在RHEL默认在启动失败后进入emergency mode这时候你可以临时把fstab错误的行注释掉重启后再修复。有个小技巧是凡是改了fstab先执行mount -a测试一遍。如果这条命令什么都没输出、退出码为0通常说明fstab语法没问题。如果报错系统会直接提示哪一行无法挂载这时候按提示去检查对应的设备路径和文件系统类型就行。这个习惯我一直建议学生养成考试时能省不少事。6. 第一次作业之后的延伸日志、计划任务与SELinux的连环坑6.1 日志管理什么是你真正需要会看的内容RHCSA考日志不算多但每次考试基本都会沾边。最核心的考点是journalctl和rsyslog的配合。比如题目要求查找某服务最近一次启动失败的日志或者将特定服务的日志输出到指定文件这是典型考法。journalctl最简单的用法是查看系统日志配合-u指定服务名。比如journalctl -u sshd -n 50-n 50是显示最近50行--since还能按时间过滤。很多同学做作业时遇到服务启动失败直接用systemctl status看个red和failed就完了其实systemctl status显示的只是一小段近期log完整错误往往藏在journalctl里。要理解systemd管理下服务日志的去向可以记住一个大方向所有经systemd启动的服务日志默认都收入journald统一管理。如果你要的是老式syslog风格的/var/log/messages需要rsyslog服务开启并接收journald转发。简单理解就是journalctl是实时日志中心/var/log/messages是落盘的传统日志。两者不冲突题目里要求查看messages文件里有没有某条记录也很常见此时直接用grep等文本工具。6.2 cron与at计划任务作业里最容易被问到的边界RHCSA对计划任务的考察集中在cron和at两种。cron是周期性任务比如每天凌晨两点执行备份at是单次任务比如今晚十点执行一次脚本。cronTasks的配置目录集中在/etc/cron*下面用户级cron可以直接用crontab -e编辑编辑完会在/var/spool/cron/用户名下生成对应文件。系统级则用/etc/crontab或者/etc/cron.d/目录下的文件它的格式多了一个用户字段。需要注意cron本身是个服务要确保crond.service是启动状态。考试里经常有人说我crontab -e写了任务但没执行排第一的原因就是crond服务没起。排第二的原因则是脚本没有执行权限或者脚本里的环境变量与交互式shell不一样。at用法更简单它适合处理一次性任务。比如at 22:00回车后输入多条命令CtrlD结束。要查看待执行的at任务用atq删除用atrm。很多人忽略atd这个服务同样需要systemctl start atd。6.3 SELinux初学阶段怎么理解而不是只靠setenforce 0RHCSA考试涉及SELinux的题不算多但搭配出现频率极高。比如你配置了一个httpd服务网页始终打不开排查到最后发现是SELinux的httpd_sys_content_t上下文没有设置。如果你只想用setenforce 0临时关闭SELinux来让服务跑通考试时你也许能看见页面打开但题目要求保持SELinux开启的状态下正常工作就会直接失分。第一次作业阶段对SELinux的理解可以压缩成三个层次第一SELinux是内核级强制访问控制它在传统r/w/x权限之上再叠加一层策略第二文件有SELinux上下文标签服务进程也有上下文匹配对了才能访问第三日常里最常用的操作是semanage fcontext和restorecon。举个小例子如果你把网站根目录放在了/home/webroot默认这个目录的SELinux上下文是user_home_thttpd进程无法读取。你需要执行semanage fcontext -a -t httpd_sys_content_t /home/webroot(/.*)? restorecon -Rv /home/webroot先给目录打上持久化的标签规则再用restorecon立即修复实际目录的上下文。如果想确认当前上下文用ls -Zd查看。别一上来就setenforce 0。平时练习应该刻意不开SELinux关闭模式逼自己去读错误日志、识别上下文类型这样考试时才稳。7. 从第一次作业到考场一点个人实操体会RHCSA的备考周期通常在一个月到三个月之间而最终能不能顺利通过不在于你看过多少视频也不在于你把题库背得滚瓜烂熟而在于你有没有把每一次第一次作业当作一次真实的系统管理任务来对待。以我个人体会来说最有效率的做法是每一组练习题都要自己搭建一个干净的环境完完整整从头操作一遍操作过程中不看任何答案。出错不要紧尽量自己从日志、从命令输出里面找到线索。等到整个操作做完再对照标准答案逐条核对把错的地方专门记录改天重新搭个环境再独立操作一次。这样几轮下来命令形成的不是死记忆而是肌肉记忆加排查思路的混合体。考试当天的心态也很重要。RHCSA考试所有题目都在真实环境里你做完一道题系统不会告诉你对还是错你只有靠自己的验证手段判断。这种没人给你反馈的感觉会让很多人心里发虚但只要平时练习养成了做一步验证一步的习惯考场上自然就知道每道题做完该用什么命令确认结果。就像前面反复强调的做完用户创建后要看id和getent做完挂载后要看df -h和mount -a做完网络配置后要ping和nmcli查看状态。最后分享一个小技巧RHCSA考试时间一般是两个小时到两个半小时题量不小所以平时做作业时最好给自己掐表。如果一道题五分钟还卡在思路上先跳过做后面的等回头再处理。这个策略听起来简单但平时不练考试时很容易困在一道题里出不来白白丢掉后面的得分机会。说到底RHCSA的第一次作业只是起点它考验的不是天赋而是你有没有愿意坐在终端前一点点排查、一点点验证的耐心。这恰恰也是这个认证最值得考的地方。证书本身只是一张纸但备考过程中建立起来的那套遇到问题怎么查、怎么试、怎么验证的思路才是之后做Linux运维工作真正用得上的东西。