ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

RHCSA实操备考:从用户权限到存储网络的Linux系统管理通关指南

RHCSA实操备考:从用户权限到存储网络的Linux系统管理通关指南 RHCSARed Hat Certified System Administrator红帽认证系统管理员是 Linux 从业者简历上一块很常见的敲门砖。我第一次交 RHCSA 第一次作业时其实心里没底题目看着不多但没有一道是选择题全部要求在真实系统里用命令行完成做完还得保证重启后配置依然生效。这篇文章就把我当时做这套作业的思路、命令、以及复盘时踩过的坑一起整理出来给正在备考 RHCSA、或者刚入门 Linux 系统管理的朋友做个参考。RHCSA 第一次作业通常不会让你搭多复杂的集群它的价值在于把系统管理员每天要干的那些“基本功”串起来用户创建、文件权限、磁盘分区与扩容、网络配置、服务管理、日志查看、定时任务。你把这些逐条练熟基本就等于摸清了 RHCSA 考试的骨架。这篇内容适合正在备考 RHCSA 的人也适合刚接触 Linux、想在真实环境里练一遍基础运维技能的新手。我会把作业里最常见的一批题目拆开讲包括命令怎么敲、参数什么意思、哪些地方最容易翻车以及我个人的排错习惯。1. RHCSA 第一次作业到底在考什么1.1 先搞懂考核方式没有选择题全是实操RHCSA 和市面上很多“背题库”的认证不一样整场考试下来没有一道选择题也没有填空题你面对的就是一台跑着红帽系操作系统的真实机器。考官会给你一系列任务描述你要在系统里用命令把它完成系统会按照最终状态来判定你做得对不对。这就带来一个很关键的影响考试判的是“结果状态”不是“操作过程”。比如题目要求“把用户 alice 加入附加组 sysadmin”如果你只是用usermod -aG sysadmin alice执行了但忘记查看是否真的生效这题就可能白做。更麻烦的是很多配置如果你不做“持久化”重启后系统就回到原样一样会被判错。所以第一次作业的价值就是让你在低压力情况下提前适应这种“命令 验证 持久化”的三段式操作习惯。我第一次交作业时就吃过“持久化”的亏。有一项任务是把机器 IP 改成静态地址我图省事直接用ip addr add临时加了一个地址看起来一切正常结果一重启配置全没了。后来才明白考试和真实运维里临时命令只是用来应急调试的正式配置必须写到系统配置层。RHCSA 的题目描述里经常有“永久生效”四个字刚开始觉得是废话后来才发现这四个字才是真正的考点。1.2 作业通常覆盖的六大核心模块第一次作业的内容在设计上不会太偏门基本都是系统管理最常用的几个大类。我整理了一下我这轮作业覆盖的模块大家也可以拿来自测模块常见任务方向对应核心命令用户与组管理创建用户、设置主组和附加组、密码策略、sudo 授权useradd、usermod、passwd、chage、visudo文件系统与权限目录规划、归属调整、ACL 访问控制、文件归档mkdir、chown、chmod、setfacl、tar存储管理分区、创建逻辑卷、格式化、持久挂载fdisk、vgcreate、lvcreate、mkfs、fstab网络配置设置静态 IP、主机名、DNS、连通性验证nmcli、hostnamectl、ping服务与安全安装并启用服务、开机自启、防火墙放行dnf、systemctl、firewall-cmd日志与计划任务查看系统日志、创建周期性任务journalctl、crontab这六个模块之间不是孤立的。比如“文件系统与权限”里的某个目录往往就是给“用户与组管理”里创建的用户当共享工作目录用的“存储管理”新建的逻辑卷最终要挂在某个目录下还要保证防火墙、SELinux 不挡它。所以做作业的时候我习惯把题目从头到尾先看一遍再判断哪个目录、哪个服务是前后关联的做到心中有数。1.3 为什么说第一次作业比刷题重要很多人备考第一反应是找题库背但我个人强烈不建议只用这种方式。RHCSA 的题目场景基本都是贴近日常运维的背题只能让你“见过”不能让你“会做”。真正的考试环境下你面前只有终端和 man 手册没有任何“标准答案提示”唯一能依靠的是肌肉记忆和排错能力。第一次作业做得好的学习效果是建立一套条件反射看到“创建用户并设置密码策略”手指直接敲出useradd和chage的命令看到“重启后依然生效”脑子里第一反应是nmcli或者/etc/fstab。这种条件反射不是刷题刷出来的是实打实一遍遍执行、重启、验证练出来的。后面你会发现这套作业练完再看日常 Linux 运维任务几乎处处都有这些基础场景的影子。2. 开做之前的环境准备与基础校验2.1 练习环境的搭建原则做 RHCSA 作业不推荐直接在物理机上开搞更不建议用自带图形界面的发行版桌面环境练。我的做法是开虚拟机镜像选择 Red Hat 官方订阅的 RHEL或者用与企业版几乎同源的 CentOS Stream、Rocky Linux、AlmaLinux 都行。区别只在于软件仓库地址和订阅方式命令层面完全一致。虚拟机软件方面VMware Workstation、VirtualBox或者 Linux 上的 KVM 都行。我比较推荐练习时把网络模式设为“仅主机模式”或自己可控的 NAT 网络然后手工把网卡指定成一个固定 IP 段比如192.168.10.0/24。这样练网络配置时既不会影响宿主机上网也不会因为公司或校园网环境限制导致操作失败。虚拟机磁盘建议预留至少 20GB因为后续作业里经常要练分区、LVM、逻辑卷扩容空间不够会非常尴尬。还有一个经常被忽略的点练习时尽量少用图形界面里的设置工具多开终端直接在纯命令行环境里操作。RHCSA 考试默认就是纯文本环境你平时靠图形界面点出来的配置到考试时完全使不上劲甚至会因为不熟悉文本工具而手忙脚乱。我见过不少同行平时用桌面版 Linux 很熟练一进考试环境立刻发懵就是被图形界面“惯坏”了。2.2 动手前的“体检三步走”开工之前我习惯先跑几条命令给系统做个体检确保操作对象是一个干净、可预期的环境。这个习惯后来也延续到了真实运维任务里。第一确认当前用户身份和系统信息。用id查看当前用户用hostnamectl查看主机名和系统版本。如果主机名不是作业要求的格式后面配网络时很容易混乱。RHCSA 作业里经常会有“把主机名改成 node1.example.com”这类题hostnamectl set-hostname node1.example.com一条命令就能搞定但做完后用hostnamectl复查一下才稳妥。第二确认 SELinux 状态。考试系统默认是 Enforcing很多第一次做作业的人会图省事直接setenforce 0甚至改配置文件关掉 SELinux这其实是自断一臂。正确做法是保持 Enforcing学会用semanage、restorecon、ls -Z这些命令来解决实际问题。为什么因为生产环境里 SELinux 默认就是开着的你绕开它等于绕开了真实运维里最常见的一类故障。第三确认软件源可用。RHEL 需要订阅注册Rocky、CentOS、Alma 这类发行版一般自带可用源。你可以用dnf repolist快速看一下如果提示没有可用仓库后面装 httpd、装工具都会失败作业就卡在第一步了。还有一个小细节安装软件前先dnf makecache或者直接dnf install -y即可不必每次都去 update 全系统浪费大量时间。2.3 给自己定一个练习节奏第一次作业不建议一次性做完更不建议拖拖拉拉搞一星期。我当时的节奏是分成三个回合第一回合把所有“创建类”题目做一遍比如创建用户、创建目录、创建逻辑卷目标是保证命令不报错。第二回合把所有“配置类”题目做一遍比如设置权限、配网络、挂存储、开服务目标是保证功能验证通过比如能 ping 通、能访问页面。第三回合把系统重启一遍逐条验证每项配置是否还健在这一步是最接近真实考试状态的。这样做的好处是每一回合的失误都能被单独暴露出来不会把“命令敲错”和“持久化失败”混在一起排查起来特别快。3. 作业核心实操从用户权限到存储网络3.1 用户与权限实操不要在细节里翻车作业里最基础也最容易被扣分的往往是用户和权限这一块。常见题目大概是这样的创建用户 alice设置主组 engineering附加组 ops要求密码 90 天后过期再给 alice 配置 sudo 权限允许她不用输入密码就能执行所有命令。我当时的命令是这样写的# 创建用户和组 groupadd engineering groupadd ops useradd -g engineering -G ops alice # 设置密码 echo Alice123 | passwd --stdin alice # 密码策略90 天后过期最小间隔 7 天过期前 7 天提醒 chage -M 90 -m 7 -W 7 alice chage -l alice这里有几个非常容易翻车的细节。第一个是useradd创建用户时主组和附加组别搞混-g是主组-G是附加组。第二个是用passwd --stdin设置密码时有些发行版会提示不推荐使用但目标环境是 RHEL 考试环境时这个参数可用只是注意别把密码留在 shell 历史里泄露出去。第三个是创建完用户后一定要用getent passwd alice或者id alice验证一下看看主组和附加组有没有真的生效。sudo 授权这块我推荐用visudo命令编辑因为它会做语法检查避免你把配置文件写坏。例如给 alice 开放所有命令且不需要密码echo alice ALL(ALL) NOPASSWD: ALL /etc/sudoers.d/alice chmod 440 /etc/sudoers.d/alice这里有个坑直接往/etc/sudoers.d里写文件没错但写完以后一定执行visudo -c验证语法。如果语法写错sudo 可能直接失效连 root 提权都没法用修复起来非常痛苦。很多第一次写 sudo 配置的人就是在这个地方翻车的。我自己的习惯是先写好文件再单独开一个终端去验证sudo -l -U alice确认授权内容符合预期。3.2 文件归档与目录权限ACL 是加分项作业里经常有创建共享目录并设置合适权限的题。一种典型题目是创建/work/share目录归属 engineering 组组内成员可读写其他用户无权限。这里的关键是理解“目录组归属”和“权限位”的配合。mkdir -p /work/share chown :engineering /work/share chmod 2770 /work/share2770这个写法里2表示设置 setgid 位效果是让新建文件自动继承目录的组归属而不是创建者的主组。真实运维里共享目录如果不加 setgid 位用户新建文件时组归属就会变成他自己的主组其他人会因为组权限不对而无法访问。实际生产环境里项目组共享目录经常出现这种问题作业里就提前把这个坑给你埋好了。有时候题目还会加点难度要求某个特定用户对整个目录没有权限但对某个子目录有权限或者反过来这类需求用传统 chmod 搞不定必须用 ACL。比如给用户 bob 在/work/share上有读权限setfacl -m u:bob:r-x /work/share getfacl /work/shareACL 配置的核心结论是传统权限管“属主、属组、其他人”ACL 能细化到“某个用户、某个组”甚至覆盖目录默认权限。第一轮作业把 chmod 和 setfacl 都练一遍后面做真实用户目录隔离时心里就有底了。我后来在一个项目里遇到过“两个团队要共用一台测试服务器但目录权限又不能互相看”的需求思路和这个一模一样直接拿第一次作业里那套 ACL 方案改改就用上了。归档压缩也经常出现比如把/etc目录下所有.conf文件打包到/root/backup下。我习惯用 tarmkdir -p /root/backup find /etc -name *.conf -exec tar czf /root/backup/conf_backup.tar.gz {} \; tar tzf /root/backup/conf_backup.tar.gz | head这里有一个细节tar 在做绝对路径打包时会提示“Removing leading /”意思是归档路径里自动去掉了开头的斜杠。这其实是好事因为将来解压时不会直接覆盖原路径但如果你想保留完整路径结构需要加-P参数慎重使用就是。3.3 存储管理逻辑卷是重头戏存储题目一般分两个层次。第一层次是简单的添加一块新磁盘给它分区、格式化、挂载到某个目录并且重启后依然生效。第二层次就是 RHCSA 的经典题了创建一个卷组和逻辑卷格式化后挂载最后还要演示扩容。先看第一层磁盘通常叫/dev/sdb操作过程fdisk /dev/sdb # n 新建分区一路回车w 保存 mkfs.xfs /dev/sdb1 mkdir -p /mnt/data mount /dev/sdb1 /mnt/data注意真正考试里你面对的可能不是一块“新盘”而是一块已经有过旧分区的盘这时fdisk里看到的分区状态和你预期会不一样需要先d删除旧分区再新建。第一次做的时候我傻乎乎地以为所有盘都是空的结果挂载报错一看才发现盘里还有残留的旧分区信息删掉重新分区就正常了。持久化挂载是必考点核心是编辑/etc/fstab。我推荐不要用设备名/dev/sdb1来写而是用 UUID因为设备名在系统重启后可能因为盘符顺序变化而改变。blkid /dev/sdb1 # 得到 UUIDxxxx-xxxx写入 /etc/fstab echo UUIDxxxx-xxxx /mnt/data xfs defaults 0 0 /etc/fstab mount -a df -hT /mnt/datafstab 一共有 6 个字段设备标识、挂载点、文件系统类型、挂载选项、是否 dump 备份、是否 fsck 检查。最后一个字段如果你不确定就写 0别乱填。首次写完 fstab强烈建议立即执行mount -a如果报错就赶紧改回来千万不要直接重启否则系统可能卡进 emergency 模式这算是无数人踩过的老坑了。逻辑卷这部分我建议把思路从“命令怎么敲”提升到“LVM 逻辑模型”上来理解。整体关系是物理卷PV组成卷组VG卷组再切割出逻辑卷LVLV 格式化后挂载使用。扩容的本质就是给 VG 补 PV再给 LV 加容量然后扩展文件系统。# 假设 /dev/sdb1 已经做成 PV并加入 vg01 vgcreate vg01 /dev/sdb1 # 创建 2G 逻辑卷 lvcreate -L 2G -n data_lv vg01 # 格式化并挂载 mkfs.xfs /dev/vg01/data_lv mkdir -p /mnt/lvdata mount /dev/vg01/data_lv /mnt/lvdata # 扩容到 3G lvextend -L 3G /dev/vg01/data_lv xfs_growfs /mnt/lvdata df -hT /mnt/lvdata这里有一个很多人容易忽略的“致命细节”xfs 文件系统只能扩容不能缩容ext4 可以缩但命令完全不同。我用 xfs 练习时扩容后忘了执行xfs_growfs结果 df 看容量还是 2G还以为命令没生效实际上 LV 已经扩展了只是文件系统没吃到新增空间。这两个动作放一起就是“存储题能否拿满分”的分水岭。3.4 网络与 systemd 服务务必验证持久化网络配置是 RHCSA 作业里又一个重点。推荐直接用nmcli这是 RHEL 系列的标准网络配置工具操作结果会持久化写入配置文件。拿配置静态 IP 举例nmcli con mod ens160 ipv4.addresses 192.168.10.10/24 nmcli con mod ens160 ipv4.gateway 192.168.10.1 nmcli con mod ens160 ipv4.dns 192.168.10.1 nmcli con mod ens160 ipv4.method manual nmcli con up ens160 ip addr show ens160 ping -c 4 192.168.10.1很多人第一次用nmcli容易漏掉ipv4.method manual这一行。默认情况下网卡可能是 dhcp 模式你就算加了静态地址也会因为重启或网络状态重新激活时被 DHCP 覆盖导致配置不稳定。我理解nmcli的工作方式是这样它把网络配置组织成“连接配置connection profile”你在某个连接上修改属性然后重新激活这个连接修改才会生效。这也解释了为什么改完之后一定要nmcli con up来激活一次。服务管理这个模块通常要求安装 httpd 并启动、启用开机自启然后确认能访问到默认页面。命令本身不复杂dnf install -y httpd systemctl enable --now httpd systemctl status httpd但考试和作业里都会埋一个“防火墙放行”的坑。如果 firewalld 开启状态下你启动 httpd 后用curl访问不到多半就是防火墙没有放行 80 端口firewall-cmd --add-servicehttp --permanent firewall-cmd --reload firewall-cmd --list-all--permanent表示永久生效reload是让配置立即加载。这里要注意只加--permanent不reload不生效只reload不加--permanent重启后就丢失。另外如果你改了 SELinux 里 httpd 相关的布尔值比如允许 httpd 访问家目录或网络共享也必须记得加-P参数做持久化。我在后面排错部分会专门讲这个。4. 作业交完后的排错复盘与考前加固4.1 真实踩坑记录这些坑我基本都掉过一遍做 RHCSA 第一次作业不掉坑几乎不可能。我把当时踩得比较惨的几个坑一个个列出来附带现象和修复方法供大家排错时对照。第一个是 sudo 权限写错导致 sudo 彻底失效。现象是执行 sudo 命令直接提示“alice is not in the sudoers file”或者语法错误导致所有 sudo 命令失败。修复方法是重启进入单用户模式或者在虚拟机的 root shell 里直接修改/etc/sudoers.d下的文件重新执行visudo -c。这个教训让我从此以后改 sudo 配置必先备份再验证。第二个是 fstab 写错导致开机进入 emergency mode。现象是重启后系统进不了正常登录界面提示“Give root password for maintenance”。修复思路是输入 root 密码查看/etc/fstab把刚加的那行注释掉或改成正确内容然后执行mount -a验证没问题再重启。我对这个坑印象特别深后来每次改完 fstab都条件反射地敲一遍mount -a。第三个是 LVM 扩容后文件系统大小没变。现象是lvs看到 LV 已经是 3G但 df 还是显示 2G。原因就是漏了xfs_growfs。这个前面已经反复强调了它就是“先扩 LV 层再扩文件系统层”两个动作缺一不可缺哪个题目都拿不到满分。第四个是改完静态 IP 重启后网络失效。现象是重启后 ping 不通网关ip addr发现网卡变成了没配置的状态。原因一般就两个要么没改ipv4.method manual要么 nmcli 配置后忘记重新激活连接。修复思路是重启 NetworkManager 服务或者再执行一遍nmcli con up。练习环境里还可以直接把虚拟机的 NAT 网络重新连一次来恢复控制台。第五个是 SELinux 导致的 web 服务无法访问。现象是服务状态是 active防火墙也放行了但 curl 访问返回 403 或 404。原因通常是 httpd 进程无法读取目标目录的安全上下文。我当时的解决方法是先查 SELinux 状态和目录标签getenforce ls -Zd /var/www/html如果是新建的自定义目录比如/www/html就需要手动标记一下semanage fcontext -a -t httpd_sys_content_t /www/html(/.*)? restorecon -Rv /www/htmlSELinux 这套逻辑本质上就是给文件、进程、端口都打上“标签”程序只能访问标签匹配的资源。第一次作业里如果只调权限和防火墙不管 SELinux就会有“明明权限全开还是不行”的魔幻问题。理解了标签匹配机制下次遇到类似问题就不会瞎猜了。4.2 排错自查清单速查表为了方便复盘我把经常出问题的检查点整理成一张表。每次作业做完我都会拿着这张表逐项核对检查项验证命令常见错误用户主组和附加组id alice创建时 -g 和 -G 写反密码策略chage -l alice忘记执行 chagesudo 配置语法visudo -csudoers.d 文件权限不对目录 setgid 位ls -ld /work/share忘记用 2770ACL 配置getfacl /work/share传统 chmod 权限覆盖fstab 挂载mount -a df -hTUUID 写错或不执行 mount -aLVM 扩容lvs、xfs_growfs忘了扩展文件系统网络静态 IPnmcli con show漏掉 ipv4.method manual防火墙放行firewall-cmd --list-all只加 --permanent 不 reload服务开机自启systemctl is-enabled httpd只 start 没 enableSELinux 标签ls -Zd /www/html不配 httpd_sys_content_t这张表的核心用途不是“背答案”而是帮你建立稳定的事后验证流程。每次完成一批作业就照着表挨个查一遍查完再重启系统复查一遍。到这一步你的作业基本就稳了。4.3 把作业写进肌肉记忆的几个小习惯每次做完作业我还会给自己留几个“后置动作”。第一个后置动作是把作业里的题目标签按“创建、配置、验证、持久化”四个角度重新过一遍创建用户、配置权限、验证访问、重启复查。做多了你会发现大部分 RHCSA 题目都可以拆进这个框架考试时思路不会乱。第二个后置动作是每完成一项大操作就手动重启一次或者至少执行一次systemctl daemon-reload、mount -a、nmcli con up这类的“激活”操作。不要等到所有题目做完了才重启否则你会把“步骤 A 配置失效”和“步骤 B 影响 A”这种复合问题混在一起排查效率极低。第三个后置动作是把作业过程中敲过的所有命令记录一份按模块分类保存。我当时就是把终端历史整理成了一个 Markdown 笔记每类命令旁边备注一句“为什么”。这个笔记后来成了我备考复习的主要资料比任何网上的教程都好用因为它记录的是自己真实的操作链路和容易犯错的点。第四个后置动作是遇到不会的命令优先打开man手册去查再配合命令自带的--help。很多第一次做作业的人一遇到陌生命令就去找搜索引擎放到真实考试环境里完全不现实。RHCSA 考试环境没有外网只有 man 手册。尽早养成“先 man 后动手”的习惯对考试和将来日常工作都有好处。最后说一个我自己比较深刻的体会。第一次交 RHCSA 作业时我还觉得这些题目太基础不过是创建用户、建个目录、配一下网络而已有什么难度但等到真的在项目里处理共享目录权限冲突、排查 web 服务访问失败、手动给一台新服务器做存储扩容时我才发现当时作业里那些不起眼的细节全都在工作里“回来”了。所以如果你现在正在做这套作业别嫌它简单也别只看命令能不能跑通。每一次重启之后的验证每一回排错时的分析过程才是这套作业带给你的真正资产。把这些习惯刻进肌肉记忆里RHCSA 考试对你来说就只剩“把练习再做一遍”了。
返回列表