资讯详情

资讯详情

RHCSA备考指南:RHEL系统管理与高频配置实战

1. 先把考试说清楚RHCSA到底考什么1.1 考试范围和题型先建立一张知识地图考RHCSA这件事我前后带过不少学员也陪着很多人从零基础一路摸到证书。先说个结论RHCSA不是考“你背了多少命令”而是考“你能不能在一台陌生的RHEL系统上完成一系列基础配置任务”。你面对的是一台没有图形界面的虚拟机终端里只有黑屏和白字题目要求你用命令行完成网络配置、用户创建、存储挂载、SELinux调整这些事情做完之后系统还要能重启、能正常登录、能继续运行。考试时长两个半小时题目大概十几道到二十道全部是实操题。评分方式也很直接机器检查结果不看过程。你用什么方法实现无所谓但最终配置必须生效而且重启后依然生效。这一点特别关键很多人平时练习的时候在终端里改完就完事了忘了写进持久化配置结果考试一重启网络没了、服务挂了、挂载丢了白白丢分。RHCSA的知识范围其实很集中我习惯把内容分成这样几块基础操作和文件管理、用户与权限、网络配置、软件仓库管理、存储管理分区、LVM、swap、systemd服务管理、定时任务与日志、SELinux、归档压缩还有RHEL 9新增的Podman容器基本操作。其中网络、存储、用户权限和SELinux是重头戏几乎每场考试都会出现而且一旦出错就是连锁反应。我这篇文章要说的就是这些重头戏里最基础、最高频的配置操作。不是让你背题而是帮你把每条命令背后的思路理顺。你理解了为什么要这么配考试时哪怕题目换个花样你也能反应得过来。1.2 环境准备虚拟机选择和RHEL安装要点练RHCSA最忌讳“只看不练”。我见过太多人买一堆资料、看一堆视频结果自己一台测试机都没有到了考场连shell都不熟这种状态去考试基本是送钱。你需要准备的只有三样东西一台电脑、一个虚拟机软件、一份RHEL或兼容系统的镜像。虚拟机软件我推荐你用KVM/libvirt或者VMware Workstation个人练习用VirtualBox也行。KVM的体验最接近真实考试环境因为红帽考试的虚拟机后台就是KVM。但如果你Windows本子上不方便搞KVMVMware也没问题核心是“命令行操作习惯”要练出来用什么虚拟机工具影响不大。镜像方面最简单的方法是去注册一个红帽开发者账号可以免费获得RHEL的ISO镜像和订阅。这一步很值得做因为练习用的系统和考试系统保持同一发行版很多细节行为才一致比如SELinux的策略、firewalld的默认配置、NetworkManager的行为。随便换一个Ubuntu或者Debian来练虽然命令类似但坑完全不一样。安装时我给你的建议是磁盘不用太大20G足够了但注意在安装界面里手动分区给/boot和/划好空间留一块空闲磁盘稍后练习LVM和分区用。装完了第一件事用nmcli配好网络用dnf装一些顺手的小工具比如vim、bash-completion、tree然后做一个快照。之后的每一次练习你都可以从快照回滚放开了折腾。2. 网络与软件源开局两件套2.1 用nmcli彻底掌控网络配置RHCSA的网络配置题本质上只考一件事让系统按要求使用指定的IP并且重启后依然有效。RHEL默认用NetworkManager管理网络图形工具nmtui可以应急但考试和日常生产环境里用nmcli才是效率最高、最不容易出错的方式。先理清nmcli的基本逻辑它操作的对象是“连接”而不是“网卡”。一个网卡可以有好几个连接配置但同一时间只有一个活跃连接。你修改IP的时候别直接去改ifcfg文件再systemctl restart network那套老思路在RHEL 9里已经过时了。正确做法是看当前活跃的连接名然后去改那个连接。举个例子假设机器里有个网卡叫ens160当前活跃连接是ens160你要把它配成静态地址nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.10.50/24 ipv4.gateway 192.168.10.1 ipv4.dns 192.168.10.1 nmcli connection up ens160改完之后用nmcli device show ens160或ip addr验证。这里有个很容易被忽略的细节ipv4.addresses后面如果不带子网掩码或CIDR后缀NetworkManager可能不认所以一定要写全/24这种格式。此外如果你要把DHCP改成静态别忘了把ipv4.method一起改掉否则系统会一直用DHCP把地址覆盖掉。主机名的修改也是考试常客。临时改直接用hostnamectl set-hostname改完立即生效。但如果你在/etc/hosts里也写了旧主机名的解析有些服务还是会找到旧的。所以改完主机名之后顺手检查一下/etc/hosts把对应的行更新掉。这个习惯能帮你避开很多奇怪的“服务连不上”问题。判断网络配置是否合格我用一个很土但很有效的演练方法配完之后重启虚拟机再登录进去ping网关和DNS然后执行nmcli connection show看一眼状态。能活过重启才算真的配好了。2.2 本地软件仓库配置别在环路上挣扎软件仓库的题考试里几乎必考。常见要求就是给系统配一个本地仓库指向光盘镜像或某个本地目录让你能正常安装软件包。很多人在这一步栽跟头原因不是不会写repo文件而是不知道baseurl应该指向哪、gpgcheck该填几、仓库名不能随便起。一个标准的本地repo文件放到/etc/yum.repos.d/目录下后缀必须是.repo内容大概是这样的[BaseOS] nameBaseOS baseurlfile:///mnt/cdrom/BaseOS gpgcheck0 enabled1 [AppStream] nameAppStream baseurlfile:///mnt/cdrom/AppStream gpgcheck0 enabled1挂载镜像的做法也很固定mkdir -p /mnt/cdrom mount /dev/cdrom /mnt/cdromRHEL 9的安装镜像里有两个重要的软件仓库目录BaseOS和AppStream两个都要挂上。如果只写了BaseOS你会发现dnf安装很多常用软件时依然报错说找不到包因为那些包在AppStream里。别问我是怎么知道的我第一次练习就踩了这个坑在终端里折腾了快十分钟才反应过来。另外考试时不一定给你光盘也可能是给了个URL或目录。不管来源是什么核心就是看这个目录里有没有repodata文件夹。repodata存在说明这是一个合法的仓库根目录你就把baseurl指到它上一级目录即可。没有repodata那就是拿不到仓库配置了也白配。清理缓存也是个好习惯。每次改完repo文件执行dnf clean all dnf repolist看到列表里出现你新加的仓库ID再用dnf install装个小包测试一下比如dnf install -y vim能正常装完这个环节就稳了。3. 用户权限与SELinux最容易被扣分的地方3.1 用户、组、密码策略的具体配置用户和组的题目RHCSA的考法特别直接它不会让你创建一百个用户而是给你一个场景某部门来了新员工要求创建用户、归入指定的组、设定一个过期时间、能用密码正常登录。这类题不难但有几个细节容易丢分。首先是创建用户的命令。useradd和adduser在RHEL里是同一个东西但在别的发行版不一样考试认准useradd就好。创建一个用户并加入附加组useradd -G wheel -s /bin/bash zhangsan echo zhangsan:password123 | chpasswd如果要求创建用户时顺便指定家目录和UIDuseradd -u 2001 -d /home/dev01 -m -G devgroup dev01-m的作用是同时创建家目录别漏了否则用户登录时会发现没有家目录可用很多程序一启动就报错。设置密码时我习惯用chpasswd管道方式因为它适合在脚本里批量处理而且不普通地暴露在ps的输出里。交互式passwd当然也可以但考试环境里非交互一次搞定更不容易断出错。密码策略的题目也很高频常见的就是“设置密码90天后过期”和“提前7天警告”。命令是chage -M 90 -W 7 zhangsan-M是最大有效天数-W是过期前警告天数。注意别和-m搞混小写-m是修改密码后最少使用多少天才允许再改。如果你不确定当前策略用chage -l zhangsan查看这个输出里能看到所有相关字段检查时很方便。3.2 文件和目录权限进阶ACL与特殊权限文件权限这部分基础读写执行权限大家都懂但RHCSA考的往往是你“平时用不到但排查时很重要”的东西比如ACL、SUID、SGID、sticky bit。最坑的情况是题目要求“让某个用户能读写某个文件”但该文件的所有者和管理组都不是这个用户你直接把权限改成777结果重启后被系统检查程序判为不规范配置。正确的做法是用ACL。给指定用户增加权限setfacl -m u:dev01:rwx /data/project/给一个组加权限setfacl -m g:devgroup:rwx /data/project/查看ACL用getfacl。这里要特别注意ACL对一个目录的设置不会自动递归到已有文件。如果你希望整个目录树都有权限需要加-R递归比如setfacl -R -m u:dev01:rwx /data/project/还有默认ACL这招在“新建文件也要自动带权限”的场景特别有用。设置默认ACLsetfacl -m d:u:dev01:rwx /data/project/这样之后在该目录下新建的文件和子目录会自动应用这条ACL。这个能力在生产环境里很实用比如公司共享目录下每个部门的文件都希望同事能读写又不想每次手动改权限默认ACL就是解决方案。SUID、SGID和sticky bit的检查方法也得记住。看权限位如果可执行位上是rws那是SUID或SGID如果目录权限最后一位是t那是sticky bit。设置方式也很直白chmod us /usr/bin/someapp chmod gs /data/teamdir chmod t /data/sharedsticky bit最常见在/tmp目录它的作用是目录下所有人都能创建文件但只能删除自己创建的文件。RHCSA里有时候会让你给某个共享目录设sticky bit目的就是防止用户之间互相删东西。3.3 SELinux从“关掉它”到“会查会改”SELinux是很多人考RHCSA的拦路虎也是实际生产环境里最容易被“一刀切”关掉的东西。我理解大家为什么想关它因为调试时确实烦它的报错信息初看像天书。但RHCSA考试里有SELinux的题还会考你“在SELinux开启状态下调整上下文”所以逃避没用还是要正面回答。先分清三个状态enforcing强制启用、permissive宽松模式只记录不拦截、disabled彻底禁用。查看当前状态getenforce考试场景里系统通常是enforcing你要做的是让某个服务能正常工作而不是关掉SELinux。比如你配好了一个HTTP服务但访问网页时总报权限错误第一反应应该是查审计日志ausearch -m avc -ts recent或者用更直接的工具grep denied /var/log/audit/audit.log | tail -20看到具体的违规记录后再看是什么类型的问题。最常见的两类一是文件上下文标错了二是布尔值开关没开。文件上下文标错的经典例子你把网页文件放在自定义目录比如/webdata但没有设置httpd_sys_content_t这个类型于是httpd进程就无法读取。解决办法有两种推荐先学会semanagesemanage fcontext -a -t httpd_sys_content_t /webdata(/.*)? restorecon -Rv /webdata-a表示新增规则restorecon -Rv是把实际标签刷新成规则里的值。注意不执行restorecon的话规则加了但当前文件标签还是旧的问题依旧。另一种方法是直接用chcon临时改上下文但不持久重启后可能被重置考试里如果没要求持久chcon只能应急。布尔值的场景也很常见比如NFS的home目录共享、FTP上传这些。查询和修改getsebool -a | grep ftp setsebool -P ftpd_full_access on-P参数很重要表示persistent写入持久化配置重启不丢。没有-P只是临时生效重启就没了。最后我建议你把每次的SELinux报错都当成一道小题来练先看audit.log判断是上下文还是布尔值然后选对应的命令解决。练多了你就会发现SELinux其实有很强规律它只是把权限控制从DAC模型提升到了MAC模型每个进程、每个文件都有一张“身份证”系统按规则核对身份规则对了就通行无阻。4. 存储、系统服务与自动化考试里的大头4.1 LVM和swap调整这条考得最多存储类的题目在RHCSA里占据的分数比重很高LVM又是其中出现频率最高的考点。考法通常是给你一块新加的磁盘要求你创建一个卷组、一个逻辑卷格式化成文件系统并且挂载到指定目录还得能重启自动挂载。整个过程可以分成清晰的几步。第一步是分区因为LVM需要分区类型为Linux LVM代码8e。用fdisk或gdisk操作创建完分区后注意让系统重新读取分区表partprobe /dev/sdb lsblk第二步是创建PV、VG、LVpvcreate /dev/sdb1 vgcreate vg0 /dev/sdb1 lvcreate -L 2G -n lvdata vg0-L 2G是固定大小如果你希望占满卷组剩余空间可以用-l 100%FREE这样的百分比写法。给LV扩容是考试爱考的延伸操作lvextend -L 1G /dev/vg0/lvdata resize2fs /dev/vg0/lvdata # xfs用 xfs_growfs /挂载点这里有个致命细节ext系列文件系统在线扩容用resize2fs而xfs要挂载之后用xfs_growfs加挂载点来扩容。如果你搞混了就会提示找不到superblock或者不支持的操作实际使用上差异很大。第三步是格式化并挂载mkfs.xfs /dev/vg0/lvdata mkdir -p /data mount /dev/vg0/lvdata /data持久化挂载是永远的考点。修改/etc/fstab时我强烈建议你按这样写/dev/vg0/lvdata /data xfs defaults 0 0用UUID其实更稳因为考试环境里设备名可能会变。获取UUID用blkid。写完fstab后一定执行一下mount -a这条命令会按fstab的内容重新挂载一遍所有未挂载的项能立刻发现fstab里有没有写错。没有报错就说明重启也没问题这是验证fstab最快捷的方法。swap的调整同样常考比如要求增加一个1G的swap分区。创建swap分区的方式有两种用磁盘分区或者用文件。考试比较偏爱“增加swap分区”的方式流程是mkswap /dev/sdb2 swapon /dev/sdb2要让重启后继续生效在fstab里加一行/dev/sdb2 swap swap defaults 0 0验证用swapon -s看当前生效的swap设备。如果你之前的系统已经有了一个swap分区新增后不要急着把旧swap关掉考试要求“增加”就老老实实加新的千万不要手滑把原有的swap分区给删了。4.2 systemd、cron与日志的日常运维systemd这部分RHCSA考得不算深但都是日常运维离不开的基础操作。你要能熟练完成设置服务开机自启、立即启动服务、查看服务的运行状态、修改服务配置后重新加载。最常用的几个命令systemctl enable --now httpd systemctl status httpd systemctl restart httpd systemctl daemon-reloadenable --now是同时完成开机自启和立即启动一步到位。如果你改了某个服务的unit文件比如改了/etc/systemd/system/下的自定义service必须执行systemctl daemon-reload否则systemd不识别的你的修改直接restart也还是用旧配置。自定义service文件的写法属于进阶题考的概率不大但了解一下没坏处。一个最简单的内容[Unit] DescriptionMy Custom Service Afternetwork.target [Service] ExecStart/usr/local/bin/myscript.sh Restarton-failure [Install] WantedBymulti-user.target重点是ExecStart要写绝对路径而且脚本本身要加chmod x否则服务启动就会失败journal日志里会显示权限不足。定时任务方面cron是必考项。常见的需求是“每天凌晨两点执行某个脚本”或“每周一清理日志文件”。最直接的方式是编辑crontab -e这是当前用户的定时任务0 2 * * * /usr/local/bin/backup.sh格式就是“分 时 日 月 周”五段加要执行的命令。周一到周日对应数字1到7也有用mon这类缩写的但考试里你最好直接写数字不容易错。如果你希望所有用户的任务由系统统一管理写到/etc/crontab里也可以但那个文件里还要多写一个“执行用户”字段初学者容易漏。还有/etc/cron.d/和/etc/cron.daily/、/etc/cron.hourly/这些目录它们的特点是用户不用自己处理适合系统级脚本。排查cron是否执行我有一套固定方法先查看日志journalctl -u crond -since today再看用户的crontab内容crontab -l如果日志显示任务被执行了但结果不对多半是脚本的问题比如脚本里用了相对路径、环境变量缺失等。cron环境里的PATH默认很干净不包含/usr/local/bin所以你脚本里的命令最好写全绝对路径或者在脚本开头重新export PATH。日志管理相对简单重点是用journald查系统日志和用rsyslog分类记录。查看某服务的日志journalctl -u httpd -n 50 journalctl -u httpd --since 1 hour ago排查boot阶段问题journalctl -b -p err-b表示当前启动-p err只看错误级别以上的消息。这个命令是我排查开机故障时的首选。如果你还要配logrotate做日志轮转原理很简单每天或每周把旧日志改名压缩保留若干个历史版本。默认配置在/etc/logrotate.conf和/etc/logrotate.d/里你新建一个文件比如/var/log/myapp/*.log { daily rotate 7 compress missingok }关键点是写清楚日志文件匹配路径和轮转的频率。没有missingok的话文件不存在时会报错。4.3 归档压缩与ssh免密效率和细节归档压缩这部分考法非常朴实给定一个目录或一组文件要求你用tar打包并压缩放到指定位置后续可能还要能解压出来。命令本身并不难tar -czvf /root/backup.tar.gz /etc对应的解压tar -xzvf /root/backup.tar.gz -C /tmp/restore-C指定解压目标目录-c创建归档-z用gzip压缩-v显示过程-f接文件名。这几个参数是打包默认套餐我建议你默写出来。还有不同压缩格式的差异-z对应gzip-j对应bzip2-J对应xz。考试一般默认要求gzip但你能看懂另外两个也不亏遇到系统资源紧张的时候用xz压缩率会高很多。ssh免密这个考点生产环境里应用极广考试里也不时会碰到。场景一般是“从本机以指定用户登录远程主机时不需要输入密码”。实现方式就是用公钥认证流程三步走ssh-keygen -t rsa ssh-copy-id remoteuserremotehost ssh remoteuserremotehostssh-keygen生成密钥时会让你输入passphrase我们通常直接回车让它空密码这样免密才没有交互。ssh-copy-id这条命令会把公钥追加到目标机的~/.ssh/authorized_keys里顺便设置好权限。如果你要手动完成就得在目标机创建~/.ssh目录权限改成700authorized_keys文件权限改成600否则sshd会出于安全考虑拒绝使用这个密钥认证。排查免密失败时看服务端日志最靠谱journalctl -u sshd -since today如果出现Authentication refused: bad ownership or modes那基本就是权限问题。还有一种情况是SELinux上下文不对restorecon -Rv ~/.ssh能解决。这几个问题我都在真实环境里踩过排查思路基本就是“权限优先、上下文其次、配置最后”。5. 常见问题与排查技巧实录5.1 典型报错和排查速查表练RHCSA过程中你会反复遇到同样的一批报错。我整理了一个速查表把频率最高的几个问题、判断方法和常用解决命令列在一起方便你对照排查。现象高概率原因检查/解决命令重启后网络不通没把配置写进连接而是临时改的nmcli connection show检查ipv4.methoddnf安装包提示找不到仓库仓库目录没有repodata或baseurl路径写错ls /mnt/cdrom确认目录结构新用户无法登录家目录没创建或shell非法ls -ld /home/user检查/etc/passwd服务启动失败unit文件错误或脚本没有执行权限journalctl -u 服务名 -n 20挂载后重启丢失fstab行格式错误或漏写mount -acat /etc/fstabweb页面访问403SELinux上下文不对ls -Z对比目标目录的context挂载报错“wrong fs type”没有安装对应的文件系统驱动或设备名不对blkid查看真实文件系统类型定时任务不执行脚本内环境变量缺失或crond未运行systemctl status crond脚本内用绝对路径这张表我建议你贴在显示器边上练习时每遇到一个报错就对照一下慢慢地你就形成了“看到现象→锁定方向→快速定位”的排查习惯。考试其实很考验这个习惯因为两个半小时的实操题时间一大半都消耗在“为什么我配了不生效”上。5.2 踩坑实录配置文件的“幽灵”干扰有些问题的坑不在命令本身而在你之前练习时留下的“历史包袱”。下面这几个场景是我见过的最高频的“幽灵干扰”。第一类是远程仓库和本地仓库并存。你之前用默认的官方源试过几次后来配置了本地源但dnf还是去访问公网仓库等半天然后超时。这时候你需要看看/etc/yum.repos.d/里是不是有不止一个repo文件或者原来的repo配置里enabled1没有关掉。把所有不用的仓库enabled0或者干脆把文件移走只留下你配置的本地repo问题立刻解决。第二类是fstab里写了旧的错误条目。比如你挂载了一个不存在的设备重启后系统会进入emergency mode卡在交互式救援界面。解决办法是在emergency模式里输入root密码然后修改fstab用#注释掉错误行重启。这类问题特别像“幽灵”因为你可能根本不记得自己什么时候写过这一行但它就是会在关键时候拖你下水。第三类是hosts文件里的旧解析。你改了主机名但/etc/hosts里还放着旧主机名映射到127.0.0.1结果某些服务启动时解析到旧名字后行为异常。解决方法是打开/etc/hosts把旧主机名替换成新的一行就能避免无数的奇怪报错。第四类是环境变量和PATH的问题。你在shell里手工执行脚本一切正常但cron一执行就失败多半因为脚本里没有设置PATH。生产环境里很多运维人员都在脚本开头显式声明#!/bin/bash export PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin这一行加上很多定时任务的诡异问题就消失了。最后我还想强调一个习惯每做完一个配置立刻做一次“重启验证”。网络配置、fstab挂载、SELinux布尔值、定时任务这些是特别容易被“当前会话生效”迷惑的。你只有在重启后重新登录确认所有配置依然生效考试时心里才有底。这个方法看起来笨但它是检验持久化配置最有效的手段没有之一。我个人在实际带学员的过程中见过太多“练的时候全对、考的时候全忘”的案例根本原因不是知识点没记住而是练习时不够系统、没有形成自己的检查清单。RHCSA考的是你作为系统管理员的基本功基本功是否扎实就看这些最基础的配置能不能在慌乱中依然做对。把上面这些操作练到不用想就能敲出来再去考试你会觉得题目比平时练习还轻松。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →