RHCE 2026(EX200 RHCSA + EX294 RHCE Ansible)完整版全知识点清单
## 目录
1. EX200 RHCSA 全部官方知识点(完整全覆盖)
2. EX294 RHCE Ansible 全部官方知识点(完整全覆盖)
3. 统一故障标准化排错流程
4. 考场通用红线避坑清单
第一部分 EX200 RHCSA 全部知识点
模块1:基础Shell操作、文本处理、归档、软硬链接
知识点列表
- 使用bash交互式shell,命令历史、Tab补全
- IO重定向:标准输出、标准错误、追加、覆盖
- 管道
|,grep正则文本检索 - sed、awk基础文本过滤
- tar归档压缩、解压、指定解压目录
- 硬链接、软链接创建与区别
- vim编辑器基础操作(移动、复制、删除、保存、撤销、行号)
参考命令
bash
# 重定向
ls /etc > list.txt
ls /etc >> list.txt
find /var 2> error.log
command &> all_output.log
# grep正则
grep "root" /etc/passwd
grep -E "^root|bash$" /etc/passwd
grep -r "fail" /var/log/
# tar压缩解压
tar -czf data.tar.gz /data
tar -xzf data.tar.gz -C /tmp
# 链接
ln /etc/hosts /tmp/hlink
ln -s /etc/hosts /tmp/slink
🚨易踩坑点
>覆盖原有文件,>>追加,极易混淆- 软链接依赖源文件;硬链接不能跨文件系统、不能链接目录
- tar解压
-C指定目录经常遗漏
模块2:本地用户、组管理、密码策略、sudo授权
知识点列表
- useradd/usermod/userdel 用户创建、修改、删除
- groupadd/groupmod/groupdel 用户组管理
- 主组、附加组管理
- passwd 设置用户密码;非交互式密码配置
- chage 单用户密码有效期管理
- /etc/login.defs 全局默认用户策略
- sudo权限配置 visudo / /etc/sudoers.d/
- 账号锁定、解锁、禁止登录shell(/sbin/nologin)
参考命令
bash
useradd -u 1800 -g ops -G dev,qa -m tom
usermod -aG docker tom
usermod -L tom
usermod -U tom
usermod -s /sbin/nologin tom
userdel -r tom
groupadd -g 2500 ops
groupmod -n new_ops ops
groupdel ops
passwd tom
echo "Admin@123" | passwd --stdin tom
chage -M 90 -m 3 -W 10 tom
chage -l tom
# sudo配置
echo "tom ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/tom
chmod 440 /etc/sudoers.d/tom
🚨易踩坑点
usermod -G不加-a覆盖所有附加组(最高频丢分点)userdel不加-r残留家目录与邮件池- sudoers权限必须440,权限错误sudo直接失效
/sbin/nologin≠/bin/false,严格按照题干要求填写
模块3:文件权限、特殊权限SUID/SGID/Sticky、ACL
知识点列表
- rwx基础权限数字/符号修改
- chown 修改文件/目录属主、属组,递归修改
- SUID(用户特殊权限)、SGID(组继承)、Sticky粘滞位
- ACL访问控制列表 setfacl/getfacl
- 默认ACL(目录新建文件自动继承权限)
参考命令
bash
chmod 770 /share
chmod u=rwx,g=rx,o= /share
chown tom:ops /share
chown -R tom /share
# 特殊权限
chmod u+s /usr/bin/demo
chmod g+s /share_dir
chmod o+t /public
# ACL
setfacl -m u:tom:rwx /share
setfacl -m g:dev:rx /share
setfacl -R -m u:tom:rwx /share
setfacl -b /share
getfacl /share
setfacl -d -m g:dev:rwx /share
🚨易踩坑点
- 默认ACL
-d只对新建文件生效 ,存量文件不会自动更新,必须搭配-R - cp默认不保留ACL,需要使用
cp -rp
模块4:存储管理:磁盘分区、LVM、Swap、永久挂载 /etc/fstab
知识点列表
- lsblk查看块设备,fdisk(MBR)、gdisk(GPT)磁盘分区
- LVM完整链路 PV→VG→LV
- LV扩容操作;区分XFS/ext4文件系统扩容命令
- XFS无法缩容;ext4支持缩容
- 文件系统格式化 mkfs.xfs / mkfs.ext4
- blkid 获取UUID,fstab永久挂载
- mount临时挂载、
mount -a校验fstab - Swap分区、Swap文件两种实现方式
- 文件系统挂载参数(acl、uquota等)
参考命令
bash
lsblk
gdisk /dev/sdb
# LVM
pvcreate /dev/sdb1
pvdisplay
vgcreate vg_data /dev/sdb1
vgextend vg_data /dev/sdb2
lvcreate -L 25G -n lv_data vg_data
lvresize -L +10G /dev/vg_data/lv_data
# 文件系统扩容
mkfs.xfs /dev/vg_data/lv_data
xfs_growfs /data
mkfs.ext4 /dev/vg_data/lv_data
resize2fs /dev/vg_data/lv_data
blkid /dev/vg_data/lv_data
mount /dev/vg_data/lv_data /data
mount -a
# Swap
mkswap /dev/sdb3
swapon /dev/sdb3
swapoff /dev/sdb3
swapon -s
# swapfile
dd if=/dev/zero of=/swapfile bs=1G count=4
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
🚨易踩坑点
- lvresize扩容后忘记执行文件系统扩容指令
- fstab书写错误,开机进入emergency紧急模式;写完必须执行
mount -a - swapfile权限必须600,否则无法启用
模块5:systemd 服务管理、单元文件、journal日志
知识点列表
- systemctl start/stop/restart/enable/disable/mask/unmask
enable --now同时开机自启+立即启动- 修改自定义 .service单元文件后必须
daemon-reload - journalctl 查询服务日志、实时跟踪、时间过滤
- journal日志持久化配置
参考命令
bash
systemctl start chronyd
systemctl stop chronyd
systemctl restart chronyd
systemctl enable --now chronyd
systemctl disable chronyd
systemctl mask firewalld
systemctl unmask firewalld
journalctl -u chronyd
journalctl -u chronyd -f
journalctl --since "1 hour ago"
systemctl daemon-reload
🚨易踩坑点
- enable仅设置开机启动,不会启动当前服务
- 修改service单元忘记daemon-reload,变更永久失效
模块6:SELinux 安全上下文、布尔值、故障排查
知识点列表
- getenforce;临时 setenforce 0/1
- /etc/selinux.config 永久模式切换
- chcon 临时修改安全上下文
- semanage fcontext 定义永久上下文 + restorecon应用
- getsebool / setsebool 管理SELinux布尔值
- ausearch 查询AVC拒绝日志,定位访问拦截
参考命令
bash
getenforce
setenforce 0
vi /etc/selinux/config
chcon -t httpd_sys_content_t /web/index.html
semanage fcontext -a -t httpd_sys_content_t "/web(/.*)?"
restorecon -Rv /web
getsebool -a | grep samba
setsebool -P samba_export_all_rw on
ausearch -m avc -ts recent
🚨易踩坑点
- chcon临时生效,重启丢失;永久必须semanage + restorecon
- setsebool 不加-P为临时生效,重启失效
模块7:firewalld防火墙管理、区域、服务、端口、富规则
知识点列表
- 默认zone、网卡绑定zone
- 放行服务、放行TCP/UDP端口
- --permanent永久规则 + firewall-cmd --reload
- 富规则rich-rule:基于源IP限制访问
- 端口转发配置
参考命令
bash
firewall-cmd --get-default-zone
firewall-cmd --get-active-zones
firewall-cmd --add-port=80/tcp
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name=http accept' --permanent
🚨易踩坑点
- 不带--permanent全部临时;使用reload不要restart(断开连接)
模块8:nmcli网络管理、静态IP、网关、DNS、主机名
知识点列表
- nmcli device / connection查看网卡
- 使用nmcli配置静态IPv4地址、网关、DNS
- ipv4.method manual静态 / auto dhcp
- connection up激活网卡配置
- hostnamectl 修改永久主机名
- /etc/hosts本地域名解析
- ip route、ss端口监听、连通性测试
参考命令
bash
nmcli device status
nmcli connection show
nmcli connection modify ens160 \
ipv4.addresses 192.168.10.10/24 \
ipv4.gateway 192.168.10.1 \
ipv4.dns 223.5.5.5 \
ipv4.method manual \
connection.autoconnect yes
nmcli connection up ens160
hostnamectl set-hostname servera.lab.example.com
ip a
ip route
ss -ntulnp
🚨易踩坑点
- 忘记
ipv4.method manual依旧DHCP获取地址 - 修改配置后不执行connection up,配置不生效
模块9:chrony NTP时间同步与时区
知识点列表
- /etc/chrony.conf 添加NTP服务器
- chronyd服务启停、开机自启
- chronyc sources / chronyc tracking 验证同步
- timedatectl 设置时区 Asia/Shanghai
参考命令
bash
vi /etc/chrony.conf
server ntp.aliyun.com iburst
systemctl enable --now chronyd
chronyc sources
chronyc tracking
timedatectl set-timezone Asia/Shanghai
🚨易踩坑点
服务名称 chronyd,不是chrony;防火墙放行udp/123
模块10:进程管理、cron、at定时任务
知识点列表
- ps、top查看进程;kill/kill -9发送信号
- crontab 用户定时任务;系统全局定时任务 /etc/cron.d
- at一次性计划任务
- cron黑白名单 /etc/cron.allow / /etc/cron.deny
参考命令
bash
ps aux
top
kill 1234
kill -9 1234
crontab -e -u tom
crontab -l -u tom
crontab -r -u tom
at 16:00
atq
atrm 1
🚨易踩坑点
cron环境变量极少,脚本路径全部使用绝对路径;系统cron格式多用户名字段
模块11:dnf软件仓库、软件包、Module模块流
知识点列表
- dnf install / remove / list / search
- repo仓库文件规范(/etc/yum.repos.d/*.repo)
- dnf module list/enable/install/reset(RHEL9核心考点)
- dnf groupinstall开发工具组
- dnf download下载rpm离线包
参考命令
bash
dnf install httpd -y
dnf remove httpd
dnf list installed
dnf module list php
dnf module enable php:8.1
dnf module install php:8.1
dnf module reset php
dnf groupinstall "Development Tools"
dnf download --resolve httpd
🚨易踩坑点
切换module版本必须先reset;repo后缀必须为.repo
模块12:内核参数 sysctl
知识点列表
- /etc/sysctl.conf 永久内核参数
- sysctl -p 重载内核参数
- net.ipv4.ip_forward IP路由转发
bash
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
模块13:磁盘配额 XFS Quota
知识点列表
- 挂载参数开启uquota/gquota
- xfs_quota 设置软硬限额、报表查询
bash
mount -o remount,uquota /data
xfs_quota -x -c report /data
xfs_quota -x -c 'limit bsoft=500m bhard=600m tom' /data
模块14:Root密码重置(GRUB救援模式)
知识点列表
- GRUB启动菜单 e编辑内核,添加 rd.break
- rw重新挂载sysroot,chroot切换根
- passwd重置密码
- SELinux开启环境必须
touch /.autorelabel
操作命令
bash
mount -o remount,rw /sysroot
chroot /sysroot
passwd root
touch /.autorelabel
exit
exit
🚨易踩坑点
SELinux开启环境缺少autorelabel,重启密码不生效
模块15:日志基础 rsyslog、logrotate
知识点列表
- /etc/rsyslog.conf 系统日志规则
- logrotate日志轮转配置
模块16:网络绑定 team/bond链路聚合
知识点列表
- nmcli创建team逻辑接口
- activebackup、roundrobin运行模式配置
模块17:基础故障排查思路
网络不通、服务无法启动、挂载异常、权限/selinux访问拒绝
第二部分 EX294 RHCE Ansible自动化 全部官方知识点
模块1:Ansible控制节点环境部署
知识点列表
- 控制节点安装ansible-core
- 控制节点与被控节点SSH免密登录
- ansible.cfg配置文件(优先级、inventory、remote_user、host_key_checking、become全局配置)
- inventory静态清单、主机变量、分组、嵌套子组
参考命令
bash
ssh-keygen
ssh-copy-id student@servera
ansible all -m ping
ansible.cfg
ini
[defaults]
inventory = ./inventory
remote_user = student
host_key_checking = False
[privilege_escalation]
become=True
become_method=sudo
become_user=root
inventory示例
ini
[web]
servera ansible_host=192.168.10.11
[db]
serverb
[allnodes:children]
web
db
模块2:Ad-hoc 临时命令、基础模块调用
知识点列表
- ansible -m 指定模块、-a传入参数
- command模块(不支持管道/重定向)
- shell模块(支持管道、重定向)
bash
ansible web -m dnf -a "name=httpd state=present"
ansible web -m service -a "name=httpd state=started enabled=yes"
ansible web -m file -a "path=/web state=directory mode=0755"
ansible web -m copy -a "src=/etc/hosts dest=/etc/hosts"
🚨易踩坑点
command无法使用管道;复杂命令必须shell模块
模块3:Playbook YAML语法规范
知识点列表
- yaml格式:
---开头、仅空格缩进、冒号后空格 - Play定义:hosts、become、gather_facts
- tasks任务列表
执行命令
bash
ansible-playbook site.yml
ansible-playbook --syntax-check site.yml
ansible-playbook -C site.yml
🚨易踩坑点
禁止Tab缩进;语法报错优先执行syntax-check
模块4:核心变量体系(必考大题)
知识点列表
- play内vars定义变量
- host_vars / group_vars 文件变量
- Ansible Facts系统收集变量(gather_facts)
- register注册命令输出
- 变量过滤器
| default() - Jinja2变量引用
{``{ var }}
模块5:条件判断 when
知识点列表
- 任务级when条件判断
- 结合ansible_distribution系统版本判断
yaml
- name: 安装httpd
dnf:
name: httpd
state: present
when: ansible_distribution == "RedHat"
模块6:循环 loop
知识点列表
loop迭代列表,批量创建用户、目录、软件包
yaml
loop:
- tom
- jack
模块7:Handlers & Notify(高频考点)
知识点列表
- 任务changed状态触发notify调用handler
- handler在play全部任务结束统一执行
🚨易踩坑点
ok状态不会触发handler;不会实时执行
模块8:Template Jinja2模板文件 .j2
知识点列表
- template模块推送模板文件
- 模板内部支持变量、循环、条件表达式
模块9:Tags 任务标签
知识点列表
- 任务添加tags;执行playbook指定标签运行
bash
ansible-playbook site.yml -t install
模块10:错误处理 block / rescue / always
知识点列表
- block执行主体任务
- rescue捕获异常执行恢复操作
- always无论成败一定执行
模块11:Ansible Vault 加密敏感文件
知识点列表
- vault create/edit/encrypt/decrypt
- 使用密码文件执行加密剧本
bash
ansible-vault create secret.yml
ansible-playbook site.yml --vault-password-file passfile
模块12:Roles角色(标准项目结构大题必考)
知识点列表
- ansible-galaxy init 创建角色骨架
- 目录:tasks、handlers、templates、files、vars、defaults、meta
- playbook中调用roles
- 变量优先级:defaults < play vars < host_vars < vars目录变量
bash
ansible-galaxy init webserver
模块13:EX294必考内置模块全集
ping、command、shell、file、copy、template、fetch、dnf、service、user、group、lineinfile、blockinfile、mount、sysctl、firewalld、seboolean、authorized_key、hostname、lvg、lvol、archive、unarchive
模块14:ansible-doc 文档查询
bash
ansible-doc dnf
ansible-doc -s copy
模块15:Ansible自动化部署服务场景(考试实操大题)
- Apache httpd虚拟主机 + TLS HTTPS
- NFS服务端共享、客户端挂载
- Samba文件共享、selinux配置
- MariaDB数据库创建库、用户、授权
- LVM逻辑卷批量创建与挂载
- chrony时间同步批量配置
模块16:Ansible常见故障点
- unreachable:ssh连通性、inventoryIP、remote_user错误
- sudo提权报错:缺少become、被控节点无NOPASSWD
- YAML语法错误
- handlers无法触发
- gather_facts关闭无法调用系统变量
第三部分 通用标准化故障排错流程
3.1 Linux系统服务通用排查步骤
- systemctl status 服务名称,查看启动状态
- journalctl -u xxx -f 实时查看服务日志
- 执行配置语法校验(httpd -t / testparm / named-checkconf)
- ss -ntulnp 检查端口监听
- firewall-cmd --list-all 核对防火墙策略
- ausearch -m avc -ts recent 排查SELinux拦截
- ls -lZ 检查文件权限与安全上下文
- 客户端测试访问
3.2 Ansible执行故障排查步骤
- ansible all -m ping 测试连通
- ansible-playbook --syntax-check 校验yaml语法
- ansible-playbook -C 模拟运行观察变更状态
- 检查become提权配置
- 核对inventory IP、主机名、ssh账号
第四部分 RHCE考场全局红线避坑
- 所有配置追求永久生效,禁止只使用临时命令
- EX294任务优先使用Playbook实现,禁止登录被控节点手工操作
- fstab修改必须执行
mount -a,防止系统无法启动 - XFS文件系统不能缩小LV
- 修改systemd单元文件执行daemon-reload
- firewalld永久规则必须--permanent + reload
- SELinux布尔值 setsebool 添加 -P
- usermod附加组必须带 -aG
- playbook禁止Tab缩进;先语法校验再运行