ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

RHCSA备考指南:从用户权限到SELinux的Linux核心运维技能

RHCSA备考指南:从用户权限到SELinux的Linux核心运维技能 RHCSA这三个字母对搞Linux的人来说既是入行的敲门砖也是一面照妖镜。它考的不是你会多少花哨的自动化框架也不是你写过多少行Ansible剧本而是你最基础、最底层的系统管理功夫。我见过不少简历上写着“精通Linux”的人真到了机房里连个逻辑卷都扩不明白SELinux一拦就彻底抓瞎。RHCSA就像是一杆标尺把你到底有几斤几两量得明明白白。这篇博文我就以一份典型的“RHCSA作业一”为蓝本从环境准备到核心操作再到排错思路把整个流程掰开揉碎了讲清楚。内容会尽量贴合真实考场和实际工作场景你要是正在备考或者刚入行想夯实基础这篇文章应该能给你省下不少瞎琢磨的时间。1. 作业一的核心目标与考场思维开始动手前咱们得先弄明白这份作业到底在考什么而不是急着去敲命令。很多新手备考容易陷入一个误区把命令背得滚瓜烂熟但到了考场上一看题就懵。RHCSA的题目全部是实操题你面对的是一个黑乎乎的终端和一堆离散的需求描述你需要自己分析出系统当前是什么状态、要达成的最终效果是什么、中间要经过哪些步骤。1.1 整体设计从需求到落地的解构思路“RHCSA作业一”这类题目通常覆盖了系统安装后的常规配置、用户与权限管理、文件操作、存储管理与网络配置这几个大块。它模拟的是一个很现实的场景你拿到了一台刚装好系统、只有最小化安装的服务器需要按照公司规范把它配置成一台可以投入使用的机器。处理这类综合性强的题目我个人的习惯是遵循“文件系统-权限-服务-网络”这样的排查顺序。先说文件系统因为它是一切操作的基础磁盘没挂载好后面什么都别说。其次是权限因为RHCSA的考点里本地用户和组的管理、文件的ACL和SELinux上下文这些是失分重灾区。再次是服务配置完了你得知道怎么让它开机自启并且正常工作。最后才是网络因为你配置完所有东西最终要验证的是整个系统能不能被外部正常访问。按照这个顺序去逐项核查考点你就能做到条理清晰不会东一榔头西一棒子。1.2 适用人群与准备策略这份作业复盘适合正在备考RHCSA的学员也适合那些已经工作了一段时间、但是对Linux底层操作不够自信的运维新人。哪怕你已经在用云服务器做线上业务这些基本功依然会直接影响你排查问题的速度。准备策略上我强烈建议你抛弃“只看不练”的习惯。RHCSA考试是纯机试没有笔试。这意味着你的肌肉记忆比你的记忆力更重要。只有在终端下一次次敲错命令、看到报错、再想办法解决这个流程走完你对这个知识点的掌握才算是真正到位了。2. 考试环境与虚拟机配置实战考试和练习环境是你备考的基石。如果你连环境都搭不好后面的所有操作都是空中楼阁。RHCSA的考试环境是Red Hat提供的一套封闭虚拟机环境但我们平时练习通常用VMware Workstation或者KVM搭建一主一从的虚拟机就够了。2.1 环境选型与参数分配内存方面建议给练习的虚拟机至少分配2GB内存。别小看这个数字如果你在练习时同时开着图形化界面又跑着好几个系统服务2GB是底线低于这个数系统会频繁使用交换分区卡到你怀疑人生。硬盘方面40GB是起步如果你要练习逻辑卷管理LVM、磁盘配额这些内容建议给它分60~80GB给后续的卷操作留出足够的余量。网络模式的选择上我推荐使用仅主机模式Host-Only加NAT模式的组合。NAT模式用于让虚拟机访问外网下载软件包仅主机模式用于模拟考试环境中的内网通信。考试时系统会自动帮你配好网络但平时练习自己动手配一遍才能深刻理解IP、子网掩码、网关和DNS这几个概念之间的关系。这里补充一个基于常见实践的细节很多学员在配置静态IP时总是把网关和DNS搞混。记住网关是你离开当前网段时经过的那个“大门”DNS则是负责把域名翻译成IP的通讯录两者根本不是一回事。2.2 安装阶段关键点安装系统的时候软件选择这一步一定要选“带GUI的服务器”或者“最小安装”。考试时你需要用到图形化工具比如firewall-config也需要能够在命令行界面和你自己安装的桌面环境之间切换。安装过程中还有一个小细节极易被忽略——root密码设置。RHCSA考试要求你root密码必须符合复杂度要求否则你后续的所有账号相关操作都可能不达标。建议直接设置成包含大小写字母、数字和特殊字符的组合长度至少8位。这样既满足考试要求也符合真实生产环境的密码策略规范。我自己的习惯是装完系统第一件事先把快照拍好。一个干净的、刚装完系统的快照是你所有练习的“后悔药”。一旦你把系统搞坏了不用慌直接还原快照几分钟后又是一条好汉。这一点对于系统学习真的是太重要了。3. 核心操作任务深度拆解当我们把环境准备好真正进入“作业一”的核心操作环节。我把这些操作按照考点出现频率和难度做一个排序带你别遗漏任何一个拿分点。3.1 用户、组与权限管理用户和组的管理是RHCSA出题人的最爱没有之一。它会考你如何创建用户、设置密码、把用户加入附加组、修改用户属性以及如何配置和管理文件权限。举个例子题目可能会这么出创建用户harry并设置密码为flectrag。将harry用户的登录shell修改为/bin/zsh并确保该用户的用户ID为3456。这题不难但覆盖了三个考点useradd、chsh、usermod。# 创建用户并指定UID和初始组 useradd -u 3456 -s /bin/zsh harry # 如果用户已经存在使用usermod修改属性效果等价 usermod -u 3456 -s /bin/zsh harry # 设置密码 echo flectrag | passwd --stdin harry这段命令看很简单但有杠精会问如果系统里已经存在一个用户叫harry那usermod命令刚好用得上如果这个用户还没创建你直接useradd即可。这里想说明的是RHCSA考题不会只考一个命令它往往会把一组相关命令组合到一起考察你的综合判断能力。另外很多中国考生不太熟悉的是passwd --stdin这个参数它允许你从标准输入读取密码这在脚本化操作里非常实用。但在不支持的发行版上你需要使用chpasswd命令来达到同样效果。文件权限这块需要重点掌握的是基本权限rwx和ACL访问控制列表的区别。RGDA考试中有一道非常经典的ACL题创建一个文件要求对某个指定用户开放读写权限但对其他所有人不开放任何权限。很多学员第一反应是直接chmod 600但这样做就变成了仅属主可读写无法实现“指定用户可读写”这一需求。此时正确的姿势是用setfacl# 给指定用户单独设置权限其他权限保持不变 setfacl -m u:harry:rw /data/share/file.txt # 查看ACL配置 getfacl /data/share/file.txt要用ACL的场景往往是系统的属主和属组权限已经不能满足需求需要对某个特定用户或组单独授权时。这是RHCSA考试的难点之一也是实际工作中常用的排障手段因为ACL权限会影响你后续服务间文件访问的排障判断。需要特别注意的是ACL的优先级高于传统权限。如果一个文件设置了ACL你用ls -l看到的那一串rwx权限可能只是ACL的“面具权限”真正的生效权限要以getfacl显示的结果为准。这个点不弄清楚我在工作中排查线上文件读取失败时真的是会被绕得晕头转向。3.2 文件系统与存储管理存储管理尤其是LVM是RHCSA考试中工程量最大、最容易失分的一题。考题通常会要求你完成如下操作创建一个名为myvg的卷组在该卷组上创建一个名为mylv的逻辑卷大小为50个物理扩展单元PE并将其格式化、挂载到指定目录。LVM的核心理念我打个比方就比较清楚了物理卷PV是一块块独立的大积木卷组VG是一个能把好多块积木拼在一起的大箱子逻辑卷LV则是从箱子里切出来给你的那一部分你想切多大切多大想切多少切多少不受单块积木大小的限制。这就是为什么LVM能在不改动分区表的情况下轻松实现磁盘空间扩容的原因。这里我把操作步骤完整写出来这里建议你先在虚拟机里手敲一遍不要复制命令# 第一步创建物理卷将空白磁盘整块初始化 pvcreate /dev/sdb # 第二步基于物理卷创建卷组 vgcreate myvg /dev/sdb # 第三步计算逻辑卷大小。一个PE默认是4MiB50个PE就是200MiB # 这里也可以直接用指定大小的方式 lvcreate -L 200M -n mylv myvg # 第四步格式化并挂载 mkfs.xfs /dev/myvg/mylv mkdir -p /mnt/mydata mount /dev/myvg/mylv /mnt/mydata # 第五步让挂载在重启后依然生效 echo /dev/myvg/mylv /mnt/mydata xfs defaults 0 0 /etc/fstab这里要强调一个极其关键的细节一定要设置开机自动挂载即写入/etc/fstab。RHCSA考试时系统会在交卷后自动重启如果你的挂载没有写进fstab分区在重启后会丢失这题等于没做。同时要注意fstab文件那六个字段的写法尤其是挂载选项那几个地方不要写错。我教你一个验证fstab是否正确的方法跑一下mount -a这条命令会重新加载fstab里的所有挂载点。如果执行后系统没有报错也没有卡在输入密码的界面说明你的fstab大概率是对的。如果真的写错了系统重启时会进入紧急模式那时候再补救就非常被动了。另外swap分区也是必考重点。在考试题目中它通常要求你创建一个大小为512MiB的swap分区并实现开机自动激活。swap分区没有挂载点它只有UUID。在fstab里用UUID来引用swap分区是最稳妥的方式避免因为设备名变动导致开机失败。# 创建swap分区假设设备为/dev/sdc1 mkswap /dev/sdc1 # 查看swap分区的UUID blkid /dev/sdc1 # 将UUID写入fstab UUID你看到的uuid swap swap defaults 0 0 # 激活swap swapon -a这类操作的第二大坑点在于分区表的操作方式。如果是传统MBR分区表用fdisk就好但如果你碰到了GPT分区表部分对GPT支持不好的旧工具版本会提示错误此时可以考虑使用parted。好在Red Hat工程师考试用的是较新的发行版对GPT的支持已经比较完善但你还是要有这个意识。3.3 系统服务与SELinux配置SELinux这玩意儿是RHCSA考生的一座大山。很多第一次接触的人会想搞这么个安全模块干嘛我直接把它disabled不就行了你要是真这么干考试直接不及格。因为SELinux是Red Hat系系统的强制访问控制机制它跟系统的安全性能深度绑定禁用它等于直接放弃了一大半的考试考点。SELinux的背景可以理解为系统里的每一个文件、每一个进程都贴了一个标签这个标签描述了它的安全上下文。当进程尝试访问文件时SELinux会检查两者的安全上下文是否匹配不匹配就拒绝而且在/var/log/audit/audit.log里记下一条denied记录。考题里的经典套路是这样的你配置了一个Apache服务把网页文件放到了/var/www/html/目录下此时发现浏览器死活访问不到。你防火墙关了吗关了。权限改了吗改了。还是不行。为什么因为SELinux上下文不对。你需要看看网页文件的上下文是不是具备httpd_sys_content_t这个标签# 查看文件当前的SELinux标签 ls -Z /var/www/html/index.html # 如果标签不正确手动调整并使之持久化 semanage fcontext -a -t httpd_sys_content_t /var/www/html(/.*)? restorecon -Rv /var/www/html/这里有另一个易错点是如果你仅仅使用chcon临时修改SELinux上下文系统重启后上下文会被重新打回默认值导致服务崩溃。因此日常工作、考试中请养成用semanage fcontext加restorecon的习惯这也是官方推荐的持久化修改方式。理解了这个逻辑你再去看防火墙、再看端口监听整个排障链条就通透了。3.4 网络配置与定时任务网络配置这块现在的新版Red Hat默认使用NetworkManager作为网络管理服务。虽然你可以直接改/etc/sysconfig/network-scripts/ifcfg-eth0这个配置文件但最稳妥、不容易出错的方式是用nmcli命令行工具。举个例子考试让你配置eth0网卡的IP地址为192.168.10.10/24网关为192.168.10.1DNS为8.8.8.8。用nmcli操作如下# 修改网卡连接配置 nmcli con mod eth0 ipv4.addresses 192.168.10.10/24 nmcli con mod eth0 ipv4.gateway 192.168.10.1 nmcli con mod eth0 ipv4.dns 8.8.8.8 nmcli con mod eth0 ipv4.method manual # 重新激活连接让配置生效 nmcli con up eth0考这个点的时候特别容易踩坑的是用nmcli配置完网络以后很多人发现外部访问还是不通。原因通常是连接没有重新激活。网络配置修改后必须执行nmcli con up eth0把配置重新加载一遍。这个动作相当于你手动去插拔了一次网线。有几次我在虚拟机里配完网络忘记激活连接结果怎么ping都不通排查了半天才发现是连接处于休眠状态真的非常耽误时间。定时任务也就是crontab也是必考项。最常见的考法是添加一个计划任务让某个用户每天14:23执行某个脚本。这里要注意的是在RHCE语境下考试已经把用户的cron权限控制纳入了考点。也就是说你要会用/etc/cron.allow和/etc/cron.deny这两个文件来限制谁可以创建定时任务。# 在harry用户下创建定时任务 crontab -u harry -e # 在打开的文件中写入下面这行 23 14 * * * /usr/bin/wall hello这里有一个大多数人都会忽略的细节你所写的脚本或者命令在crontab环境中可能根本找不到。因为cron服务运行时它的PATH环境变量和我们登录终端里的PATH是不一样的。所以你在crontab里写的命令最好用绝对路径比如/usr/bin/find而不是直接写find。否则定时任务会一直运行失败而你检查cron服务本身却发现一切正常这时候排查的难度就上来了。我推荐的做法是所有在crontab里引用的脚本命令全都用which查一下具体位置然后把绝对路径填进去。也就是这一手帮我节省了大量验证定时任务是否真的执行的时间。4. 系统故障排查与规避踩坑实录演习阶段永远顺风顺水一上考场就状况百出。下面这些故障是我备考期间和带新人时遇到的反复高频问题整理出来供你按图索骥。4.1 系统启动异常进入紧急模式故障现象配置完fstab重启后系统没有正常进入登录界面而是卡在了类似Welcome to emergency mode的提示。原因分析这个有九成把握是fstab写错了导致系统在启动时挂载文件系统失败无法完成正常的引导流程。处理方法输入root密码进入紧急模式然后使用只读方式重新挂载根文件系统# 重新以读写方式挂载根分区 mount -o remount,rw / # 查看哪一行有问题的具体路径 vim /etc/fstab # 修改错误行通常是把设备名/文件系统类型/挂载选项写错了 # 保存退出后执行 mount -a # 验证没问题后重启 reboot排查效率最高的做法是在fstab里尽量避免使用设备名如/dev/sdb1而改用UUID或者LABEL。因为设备名可能因为内核加载顺序变化而变动而UUID在格式化时就已经固定下来。这个原则不仅适用于swap对普通数据分区一样适用。4.2 网络不通排查链路的正确顺序故障现象在虚拟机里配好IPv4地址后发现ping不同外网。很多新人遇到网络不通第一反应是去看防火墙这其实是个惯性误区。网络不通的排查是有标准顺序的。先确认网卡是否已经正确配置用ip addr查看一下IP地址是否生效。其次ping网关网关能通说明二层和三层的路是通的。然后ping外网IP比如8.8.8.8这个能通则说明出网链路没问题。最后ping域名比如www.redhat.com如果IP通但域名不通那就是DNS解析的问题了。考试的时候遇到这类问题稳住节奏是最重要的。一道网络配置题不会要求你排除特别复杂的硬件故障绝大多数情况都是因为这个顺序里的某一步没有做对。按照这个链路一层层查下去总能找到症结所在。4.3 服务启动失败SELinux与日志的配合诊断故障现象配置完httpd服务服务始终启动不了查看状态显示failed。此时不要慌先去查看服务本身的日志信息试试journalctl -u httpd。如果日志里提示跟权限相关的字眼再去看SELinux的审计日志。这里给大家安利一个排查SELinux问题的绝佳工具sealert。它会自动分析/var/log/audit/audit.log然后给出具体建议包括你需要执行的命令。哪怕你完全不懂SELinux的策略细节通过工具给出的提示也能一步步把问题解决。# 安装setroubleshoot工具 yum install -y setroubleshoot # 分析审计日志 sealert -a /var/log/audit/audit.log用工具只是入门你最终还是要懂原理。SELinux的故障一般就三类文件标签不对端口标签不对进程域放行规则不对。你把这三类排查完90%的SELinux问题都解决了。4.4 命令找不到的求救信号这个问题最基础但也最容易让人头大。不少人会在练习时用yum install安装一些命令包等到考试时发现有些命令不存在比如vim、wget、tcpdump然后就开始慌了。切记考试环境中大部分命令都需要你自己通过软件包管理安装。这本身就是个考点。# 安装必要工具的命令示例 yum install -y vim wget lsof net-tools如果你不知道某个文件由哪个包提供可以这样查# 搜索提供该文件的软件包 yum provides */ifconfig这种搜索技能比直接背几个包名要实用的多它能彻底解决“不知道装什么包”的困惑。5. 经验总结与提效技巧接下来分享几个我实际操作中觉得非常香的技巧和细节心得。这些东西看起来不起眼但每一条都是能节省大量时间的利器。5.1 善用tab键自动补全这一点看似是入门常识但真的有很多人做不到位。考试时你面对的虚拟机配置普遍不高终端输入延迟可能会很明显。如果你再把命令一个字一个字敲错时间真的会哗哗地流走。敲命令时能Tab补全就Tab补全。比如切换到某个目录只敲开头几个字母然后按Tab键遇到不确定的选项双击Tab键系统会列出所有可能的提示。这个习惯一旦养成不仅考试效率倍增日常工作效率也能提升很多。我见过太多新人明明Linux已经用了一段时间结果敲命令还是有大量的拼写错误这完全可以通过Tab补全这个动作来规避掉。5.2 准备一份考前速查清单这里说的清单不是让你打小抄而是你自己梳理的一份命令速查卡。每个人的薄弱点不一样清单内容也因人而异。我的习惯是把经常忘记的、容易混淆的命令参数比如tar的打包参数、grep的正则写法、sed的编辑语法总结成一页纸在考前连续几天默写几遍。这样做的目的不是背题目答案而是确保考试时大脑不会因为紧张而空白。5.3 用快照功能做“时间机器”前文提过快照但这里还是要再强调一次。在学习过程中每做完一个章节的练习比如刚搞完LVM或者刚配完SELinux都对当前状态打个快照。万一后面操作把系统弄坏了你就不用从头再来一遍了直接回到上一个干净的状态接着学下一块内容就行。工作上也一样在生产环境操作前快照是底线。它给运维人员吃了一颗定心丸即使操作失误也能快速回滚。这套思路在学生时代就该有意识地培养起来。5.4 多看报错信息别慌遇到看不懂的报错第一件事绝不是重启或者重装而是把报错信息复制下来去理解它。初学Linux的时候我也是一看到英文报错就慌后来强迫自己一行行读下来发现很多报错其实已经把解决办法说得明明白白了。比如提示No such file or directory那就去确认路径是不是拼错了提示Permission denied那就顺着权限和SELinux的方向去查。报错信息是你排查问题最亲密的战友永远不要去无视它。RHCSA的学习过程本质上是一个从混乱到有序的过程。你拿到一份作业题不再是无头苍蝇一样乱试而是内心有一个清晰的地图这是什么问题、属于哪个范畴、该看哪些日志、该用哪些工具去验证。这个地图才是考这个认证真正沉淀下来的财富。考试证书只是一张纸但这种系统化的排查能力和对底层机制的敬畏之心会跟着你走很远。
返回列表