
考 RHCSA 最头疼的往往不是知识点本身而是不知道从哪开始准备网上资料零零散散今天看到一个命令用法明天看到一个配置片段攒了一堆收藏却形不成体系。这篇文章围绕 Red Hat Certified System AdministratorRHCSAEX200备考第一阶段的完整路径来展开从考试逻辑、环境搭建到核心命令、实战案例、高频踩坑一次讲清楚。适合准备考证的运维新手、想系统补 Linux 基础的后端开发以及正在刷 LinkedIn Cert Prep 系列课程的读者。1. RHCSA 是什么为什么值得考1.1 考试定位RHCSA 全称 Red Hat Certified System Administrator是红帽认证体系中的初级系统管理员认证。考试编号是 EX200采用纯实操形式你坐在一台安装了 Red Hat Enterprise Linux 的电脑前根据题目要求在真实系统里完成配置任务改错、漏改、改坏了都不会有提示最终由系统自动判分。这和传统笔试、选择题考试完全不同。它考的不仅是“知道某个命令”而是“在限定时间内能不能把一台服务器配置成题目要求的状态”。对于正在学习 Red Hat Enterprise Linux 的人来说RHCSA 也是目前认可度最高的入门级 Linux 实操认证之一。很多企业在招聘 Linux 运维、初级 DevOps 工程师时会把 RHCSA 作为加分项甚至硬性条件。1.2 Cert Prep 第一部分覆盖什么LinkedIn 上的 “Red Hat Certified System Administrator (RHCSA) (EX200) Cert Prep” 系列课程通常会拆成多个部分来讲解。第一部分一般聚焦在最基础也最高频的内容上Linux 命令行操作与文件管理用户与用户组管理文件权限与 ACL软件包管理dnf/yum、rpm进程管理与 systemd 服务管理网络基础配置系统日志SELinux 基础这些知识点不仅是考试前 60% 的基础也是后续 RHCERed Hat Certified Engineer红帽认证工程师考试的地基。本文会按照这个范围展开并给出可以照着做的完整示例。1.3 一次能考过的关键根据大量通过者的经验RHCSA 备考的核心可以总结成一句话不要只看一定要在虚拟机里动手敲。考试题目都是你在日常练习中做过的操作区别只在于熟练度和速度。所以本文的每个命令、每个配置都建议你打开终端亲自执行一遍。2. 环境准备用虚拟机搭一套练习环境RHCSA 考试基于 Red Hat Enterprise LinuxRHEL但部分读者没有现成的 RHEL 环境。这里给出两条练习路径官方路径注册红帽开发者订阅可以合法获得 RHEL 的免费订阅用于学习具体方式是在红帽官网注册开发者账号进入“Red Hat Developer”后绑定订阅然后在系统上用 subscription-manager 注册即可。替代路径使用与 RHEL 完全二进制兼容的 Rocky Linux 或 AlmaLinux。两者的命令、配置文件路径与服务管理方式都借鉴自 RHEL适合先熟悉操作考试前再用 RHEL 环境过一遍。注意Red Hat 5.8、6.x 等老版本在 2024 年之后已经远离主流运维场景RHCSA 考试也早已切换到 RHEL 8/9 的任务体系。不建议在新项目中学习老版本命令体系尤其是网络管理、软件源配置差异很大。2.1 VMware 虚拟机安装 RHEL 9“vmvare 虚拟机安装 red hat enterprise” 是备考人群搜索最多的关键词之一。在 VMware Workstation 中安装 RHEL 9 的流程如下下载 RHEL 9 ISO 镜像官方评估版 ISO 或通过开发者订阅下载。新建虚拟机操作系统类型选择 “Red Hat Enterprise Linux 9 64-bit”。内存建议分配 4GB 以上处理器 2 核以上磁盘 40GB 以上。网络适配器选择 NAT 模式方便虚拟机访问外网下载软件包。安装时选择 “Minimal Install” 最小化安装避免图形界面带来的额外负载。磁盘分区建议使用默认自动分区考试练习阶段不需要手动折腾 LVM 细节。设置 root 密码并创建一个普通用户比如 student后面练习 sudo 权限会用到。安装完成并重启后第一件事是配置主机名和 IP 地址保证能通过 SSH 连接同时确认能访问软件源。2.2 软件源配置如果你使用的是 Rocky Linux 或 AlmaLinux安装完成后默认就有可用的软件源直接执行sudo dnf makecache如果你是 RHEL 9 且注册了开发者订阅执行sudo subscription-manager register --username 你的红帽账号 --password 你的密码 sudo subscription-manager attach --auto然后验证软件源sudo dnf repolist如果无法使用官方 CDN也可以配置本地镜像仓库但练习阶段不建议折腾这一步先保证能安装 httpd、vim 等基础软件即可。2.3 练习环境的目录规划考试时你会在多个虚拟机之间切换练习阶段也建议养成规范操作的思路。可以把练习内容按模块拆分例如~/rhcsa/01_users # 用户与权限 ~/rhcsa/02_packages # 软件包管理 ~/rhcsa/03_services # systemd 服务 ~/rhcsa/04_network # 网络配置每次练习之前先对虚拟机做一个快照方便练坏了快速回滚。3. 核心知识点拆解RHCSA Part1 高频内容3.1 命令行与文件管理RHEL 9 中默认 shell 是 Bash。你需要熟练掌握文件管理命令ls -l /etc cd /var/log pwd cp -r /etc/skel /tmp/skel_backup mv /tmp/skel_backup /tmp/skel_bak rm -rf /tmp/skel_bak find /var/log -name *.log -mtime -7 grep -r error /var/log/messages tar -czf /tmp/etc_backup.tar.gz /etc这些命令看起来简单但考试中经常混合考察。例如“找出 /var/log 下 7 天内修改过的 .log 文件并复制到 /tmp 下”就需要同时用到 find、cp 和 -exec 或管道组合。需要特别注意的是rm -rf在真实服务器上必须谨慎虽然是考试也建议先ls确认路径。tar解包时用-xzf对应.tar.gz用-xJf对应.tar.xz。3.2 用户与用户组管理用户管理是 RHCSA 的高频考点。核心命令# 创建用户 sudo useradd -m -s /bin/bash alice # 设置密码 sudo passwd alice # 创建用户组 sudo groupadd developers # 把用户加入附加组 sudo usermod -aG developers alice # 查看用户信息 id alice # 查看用户主要组 groups alice考试中经常出现的考点useradd与adduser的区别RHEL 中adduser是useradd的符号链接没有 Debian/Ubuntu 中交互式创建用户的行为。usermod -aG中-a是追加的意思不加-a会覆盖用户的附加组这是非常容易踩坑的点。修改用户主要组用usermod -g修改附加组用usermod -G。删除用户时userdel -r会连同用户家目录和邮件目录一起删除。sudo 权限配置也是必考内容。普通用户授权方式有两种推荐使用 drop-in 文件方式# /etc/sudoers.d/alice alice ALL(ALL) ALL这种方式比直接修改/etc/sudoers更安全而且visudo -c可以检查语法。执行下面的命令创建文件echo alice ALL(ALL) ALL | sudo tee /etc/sudoers.d/alice3.3 文件权限与 ACLRHEL 9 默认文件权限遵循 Linux 标准模式读 r4写 w2执行 x1。需要熟练掌握chmod 750 /data/project chown root:developers /data/project chmod us /data/project/bin/tool chmod gs /data/project对于目录来说setgid位gs很常用它能让新创建的文件自动继承目录的用户组。考试中“让某个目录下新建的文件都归 developers 组所有”答案就是chmod gs配合适当的组权限。ACL访问控制列表用于精细权限控制# 给用户 bob 在 /data/project 目录上设置 rwx 权限 setfacl -m u:bob:rwx /data/project # 查看 ACL getfacl /data/project # 删除某条 ACL setfacl -x u:bob /data/project # 清空所有 ACL setfacl -b /data/project注意ls -l输出中如果一个文件有 ACL权限位末尾会出现例如drwxrwx---。3.4 软件包管理RHEL 9 使用dnf作为包管理器yum是它的兼容别名。常用操作# 搜索 dnf search httpd # 安装 sudo dnf install -y httpd # 卸载 sudo dnf remove -y httpd # 查看软件包是否已安装 rpm -q httpd # 查看软件包安装的文件列表 rpm -ql httpd # 查看某个文件属于哪个软件包 dnf provides /etc/httpd/conf/httpd.conf考试中rpm的命令经常以“查询”为主比如“找出 /etc/ssh/sshd_config 属于哪个包”用rpm -qf即可rpm -qf /etc/ssh/sshd_config软件包管理还有一个常考考点dnf history 回滚。如果误装了一个包可以通过dnf history查看历史记录然后用dnf history undo 编号回滚。3.5 systemd 服务管理RHEL 7 之后系统初始化全面切换到了 systemd。RHCSA 考试中 systemd 是绝对核心。必会命令# 启动并设置开机自启 sudo systemctl enable --now httpd # 查看状态 systemctl status httpd # 重载配置 sudo systemctl daemon-reload # 重启和停止 sudo systemctl restart httpd sudo systemctl stop httpd # 查看服务是否开机自启 systemctl is-enabled httpd # 查看服务是否正在运行 systemctl is-active httpd如果考试中要求“创建一个新的 systemd 服务”你需要会写单元文件。一个最小示例# /etc/systemd/system/myapp.service [Unit] DescriptionMy Custom Application Afternetwork.target [Service] Typesimple Useralice ExecStart/usr/local/bin/myapp.sh Restarton-failure [Install] WantedBymulti-user.target写完单元文件后执行sudo systemctl daemon-reload sudo systemctl enable --now myapp注意Typesimple表示 ExecStart 启动的进程就是主进程如果脚本需要先 fork 到后台可能需要用Typeforking并指定 PIDFile。3.6 网络配置RHEL 8/9 推荐使用nmcli管理网络。常见操作# 查看所有连接 nmcli connection show # 修改连接为静态 IP nmcli connection modify eth0 ipv4.addresses 192.168.100.100/24 nmcli connection modify eth0 ipv4.gateway 192.168.100.1 nmcli connection modify eth0 ipv4.dns 8.8.8.8 nmcli connection modify eth0 ipv4.method manual # 生效 nmcli connection up eth0命令中eth0需要根据实际连接名称修改运行nmcli connection show查看。另外hostnamectl set-hostname用于修改主机名sudo hostnamectl set-hostname node1.example.com考试中网络题目通常要求“配置静态地址并保证重启后生效”。nmcli修改后的配置会在重启后保留但要注意如果 NetworkManager 被禁用整个网络栈可能不受控所以要确认 NetworkManager 服务处于活动状态。3.7 日志与 SELinux 基础日志查看考点集中在journalctl# 查看当前启动的所有日志 journalctl -b # 查看某个服务的日志 journalctl -u httpd # 实时查看 journalctl -f # 查看最后 50 行 journalctl -n 50SELinux 是 RHCSA 的难点也是很多考生认为“玄学”的部分。其实考试只需要掌握三个核心概念SELinux 有三种模式Enforcing强制、Permissive宽容、Disabled禁用。查看当前模式用getenforce。文件标签context决定进程能否访问文件。例如 httpd 默认只能访问标记为httpd_sys_content_t的目录。排错顺序先看日志再修改标签或布尔值。常用命令# 临时切换模式 sudo setenforce 0 # 永久修改模式 sudo vim /etc/selinux/config # 查看文件上下文 ls -Z /var/www/html # 修改文件上下文 sudo semanage fcontext -a -t httpd_sys_content_t /data/www(/.*)? sudo restorecon -Rv /data/www如果遇到“服务无法读取文件”的报错先getenforce看 SELinux 是否开启再用ausearch -m avc查被拒绝的记录。很多时候问题不是权限位而是上下文标签不对。4. 完整实战从零初始化一台 RHEL 服务器下面把前面拆解的知识点整合到一个完整场景中。假设你刚装好一台最小化 RHEL 9 虚拟机需要完成以下任务创建用户 alice、bob创建组 developers把 alice 和 bob 加入该组。为 alice 配置 sudo 权限。创建目录 /data/project要求组内成员可读写且新建文件自动继承组。安装 httpd并调整 SELinux 让 /data/www 目录可被 httpd 读取。配置 httpd 开机自启并放行防火墙。验证服务可访问。4.1 用户与组配置# 创建组 sudo groupadd developers # 创建用户并设置密码 sudo useradd -m -s /bin/bash alice echo alice:Passw0rd! | sudo chpasswd sudo useradd -m -s /bin/bash bob echo bob:Passw0rd! | sudo chpasswd # 将用户加入附加组 sudo usermod -aG developers alice sudo usermod -aG developers bob # 验证 id alice id bob为 alice 配置免密 sudoecho alice ALL(ALL) NOPASSWD:ALL | sudo tee /etc/sudoers.d/alice sudo visudo -c输出应该包含parsed OK字样。4.2 目录权限与默认继承组# 创建目录 sudo mkdir -p /data/project # 设置目录归属 sudo chown root:developers /data/project # 目录权限rwxrwx---所有者 root 和组 developers 可读写执行 sudo chmod 2770 /data/project # 验证 ls -ld /data/project2是 setgid 位。此时在 /data/project 下新建文件的组会是 developers而不是创建者自己的主组。用 alice 验证sudo -u alice touch /data/project/test.txt ls -l /data/project/test.txt可以看到文件的组为 developers。4.3 安装 httpd 并配置 SELinux# 安装 httpd sudo dnf install -y httpd # 创建网站目录 sudo mkdir -p /data/www echo RHCSA Practice Page | sudo tee /data/www/index.html # 修改 httpd 默认文档根目录也可以直接在 /var/www/html 下建这里演示自定义目录修改 httpd 配置让 DocumentRoot 指向 /data/wwwsudo vim /etc/httpd/conf/httpd.conf找到DocumentRoot行修改为DocumentRoot /data/www然后找到Directory /var/www区块改为Directory /data/www Options Indexes FollowSymLinks AllowOverride None Require all granted /Directory如果不想改整个配置文件也可以创建/etc/httpd/conf.d/www.confVirtualHost *:80 DocumentRoot /data/www Directory /data/www Options Indexes FollowSymLinks AllowOverride None Require all granted /Directory /VirtualHost修改配置后设置 httpd 的 SELinux 上下文# 给 /data/www 及其子目录打上 httpd 的内容标签 sudo semanage fcontext -a -t httpd_sys_content_t /data/www(/.*)? sudo restorecon -Rv /data/www # 验证 ls -Zd /data/www然后启动服务并设置开机自启sudo systemctl enable --now httpd systemctl status httpd4.4 防火墙放行RHEL 9 默认启用了 firewalld。放行 HTTP 服务sudo firewall-cmd --permanent --add-servicehttp sudo firewall-cmd --reload验证sudo firewall-cmd --list-all4.5 结果验证从本机或宿主机访问虚拟机 IPcurl http://虚拟机IP/预期输出RHCSA Practice Page到这一步一台服务器完成基础初始化也完整覆盖了 RHCSA Part1 的核心操作。5. 常见问题与排查思路问题现象常见原因解决思路dnf install 报 “No URLs in mirrorlist” 或 “Cannot find a valid baseurl”软件源没配置好或未注册订阅检查/etc/yum.repos.d/下的 .repo 文件RHEL 先确认 subscription-manager 注册状态useradd 创建用户后无法 su 切换未设置密码或 shell 不是可登录 shellpasswd 用户名设置密码确认/etc/passwd中 shell 是/bin/bashusermod 后用户组没生效用户已登录缓存未刷新重新登录或执行newgrp 组名chmod 2770 后新文件组不对目录没有 setgid 位或修改了错误的目录chmod gs /data/project后重新测试httpd 启动失败端口占用ss -tlnpgrep :80 查看占用进程网页显示 ForbiddenSELinux 上下文或目录权限问题先getenforce确认 SELinux 模式再用ausearch -m avc查 AVC 拒绝记录临时用setenforce 0测试是否 SELinux 导致防火墙放行后外部仍无法访问服务不在 firewall 规则中或默认 zone 不对firewall-cmd --list-all确认 http 服务已添加nmcli 修改 IP 后重启失效修改的是临时连接或 NetworkManager 未接管用nmcli connection modify而不是ip addr addsystemctl enable 报错缺少 [Install] 段在 unit 文件末尾添加[Install] WantedBymulti-user.target再daemon-reloadjournalctl 看不到日志服务以非 systemd 方式启动或日志级别过滤先确认服务由 systemd 管理用journalctl -u 服务名 --since todayrpm -qf 无法查询文件被修改过或路径不对用rpm -qf /etc/ssh/sshd_config查原始包文件路径如果文件来自源码安装则无法查询排查时建议按照“先看服务状态再看日志再看 SELinux最后看防火墙”的顺序不要上来就重启服务。6. 备考最佳实践与工程习惯6.1 每天固定演练不贪多RHCSA 的内容范围很固定真正拉开差距的是熟练度。建议每天抽 30 到 60 分钟在一台快照好的虚拟机里完成一组“任务组合”例如创建 3 个用户、2 个组修改 sudo 权限。配置一个 LAMP 环境的 httpd 服务。调整一个目录的 ACL 权限。用 nmcli 修改 IP 并保证重启生效。每次练完做一个快照或直接回滚第二天重新来一遍直到不需要看笔记也能顺畅完成。6.2 刻意用英文环境考试界面默认是英文而很多命令、报错、配置文件的关键信息都是英文。如果平时一直在中文语言环境里练习考试时看到英文界面会不习惯。建议练习阶段就将系统语言切换为英文sudo localectl set-locale LANGen_US.UTF-86.3 先理解再记忆优先掌握--help和 man考试允许使用 man 手册但时间有限。建议对每个核心命令至少知道--help中能快速找到答案的选项不要死记硬背所有参数。比参数更重要的是思路例如看到“新建文件自动继承组”立刻想到setgid看到“进程占用端口”立刻想到ss -tlnp。6.4 学会查看系统状态很多题目表面上问的是“xxx 没生效”实际考察的是你有没有系统化排错思路。日常练习中养成执行完一个步骤就验证的习惯id 用户 ls -ld 目录 systemctl is-active 服务 curl http://localhost/确认每一步都生效了再进入下一步。这个习惯在考试中能省下大量时间。6.5 谨慎使用-y和rm练习时dnf install -y没问题但考试中如果遇到交互式确认可以通过-y跳过。不过rm -rf这类命令没有后悔药执行前先ls确认路径养成“先看后删”的习惯。真实生产环境中这条原则更重要。6.6 定期回归基础很多人学到 LVM、Kickstart 这些进阶内容后反而把用户管理、权限命令忘了。RHCSA 的考试范围虽然是基础但所有进阶题都建立在正确的用户、权限、SELinux 上下文之上。建议每周至少花 15 分钟快速过一遍基础命令。7. 下一步怎么学如果你已经掌握了本文中的用户、权限、软件包、systemd 和 SELinux 基础下一步可以往这些方向继续推进LVM 逻辑卷管理创建卷组、逻辑卷、扩展文件系统。磁盘分区与自动挂载fdisk/gdisk、mkfs、/etc/fstab。日志轮转与远程日志。容器基础Podman 与 rootless 容器。Kickstart 无人值守安装。这正好是 Cert Prep 后续部分和 RHCE 考试会涉及的内容。先把虚拟机环境保持好每天坚持一套组合练习RHCSA 并没有想象中那么难。如果本文对你有帮助可以收藏备用后面我会继续整理 LVM、网络绑定、系统调优这些更高阶的备考内容。