拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

RHCSA第一次作业全解析:从环境准备到用户权限与网络配置

RHCSA第一次作业全解析:从环境准备到用户权限与网络配置

RHCSA课程第一次作业,往往是很多人从"听说过Linux"到"真正开始敲命令"的分水岭。我当年带过不少学员,也看过太多人在第一份作业上栽跟头——不是知识点有多难,而是环境没搭好、命令记混了、权限概念绕不过来。这篇就把RHCSA第一次作业的完整拆解写出来,从环境准备到用户管理、权限配置、网络设置,每一步都讲清楚"为什么这么做",顺手把我踩过的坑也一并交代了。

1. 作业前的环境准备:先把实验台搭稳

1.1 虚拟机与镜像选型

第一次作业的核心目标,首先是让你拥有一台可以随时折腾、坏了也不心疼的Linux机器。绝大多数RHCSA课程的第一份作业,会要求你基于红帽系的发行版完成基础配置。这里我用的是Rocky Linux 9.x,它和RHEL 9保持高度一致,对考证的人来说是最经济实惠的选择——毕竟Red Hat官方的订阅不是每个人都方便申请。

镜像我建议下DVD版而非Minimal版。Minimal虽然安装快,但连man手册、常用的排查工具都要手动补,对新手不友好。DVD版大概4到5个G,安装完自带完整的软件仓库,第一次作业里要用的工具基本都齐了。

虚拟机平台我推荐VirtualBox或者VMware Workstation Player,两个都免费。我个人更习惯VMware Player,磁盘性能比VirtualBox略稳,快照功能也好用。如果你用的是Mac,那Parallels或者UTM也行,但记住一点:虚拟机网络模式统一选NAT,不要选桥接。原因后面细说。

装系统时有两个参数要刻意记下来:

  • root密码:这是你之后所有管理操作的钥匙,第一次作业里大量命令都需要root权限
  • 磁盘分区:建议直接让安装器自动分区,新手不要在第一次作业就折腾LVM手工分区,那是后面章节的事

安装完成后,第一件事是执行dnf update更新系统。这一步很重要——很多第一次作业里出现的"命令不存在"问题,根源就是软件包版本太老或者仓库元数据过期。

dnf update -y

更新完顺手装一组基础工具:

dnf install -y vim bash-completion net-tools tar \ lrzsz lsof tree bind-utils

bash-completion这个包特别值得装,它让Tab补全支持命令参数,能明显减少敲错命令的概率。net-tools提供ifconfig等传统命令,虽然系统自带ip命令,但作业里有些检查步骤用ifconfig更直观。

提示:安装完成后先做一个干净快照。后续操作一旦把系统搞崩,直接回滚快照,不用重装。这是我认为新手最该养成的第一个习惯。

1.2 主机名与基础配置文件

RHCSA第一次作业通常有"修改主机名"这一项,别小看它。主机名影响的是shell提示符、日志标识、以及后续服务配置,改好它既能让作业环境清晰,也能避免多台虚拟机之间搞混。

hostnamectl set-hostname rhcsa-lab01

改完执行exec bash刷新当前终端,提示符立刻变成[root@rhcsa-lab01 ~]#,这种即时反馈对建立信心很有帮助。

配套要检查的是/etc/hosts文件。默认内容只有本机映射,但很多同学在后续作业里配DNS、配服务时,各种"奇怪"的解析问题都出在这个文件上。第一次作业阶段,至少确认本机名能解析到127.0.0.1:

cat /etc/hosts

一个常见误解是"改了主机名就要改hosts"。其实在纯内网环境下不是必须的,但如果你用SSH连接这台机器且开启DNS反查,hosts里没有对应条目会拖慢登录速度。所以我建议养成习惯:每次改完主机名,顺手在hosts里加一行。

2. 第一次作业里的核心:用户与组管理

2.1 用户创建的三要素

RHCSA考纲里,用户和组管理是必考内容,第一次作业通常围绕useradd的几个关键参数展开。我见过太多人只记住了useradd username,结果作业要求里的"指定UID、指定家目录、指定shell"全都没做。

一个合规的用户创建命令长这样:

useradd -u 3001 -g devgrp -G wheel -d /home/tom -s /bin/bash -m tom

每个参数的背后都有讲究:

  • -u 3001:指定UID。为什么要手动指定?因为作业要求后面可能会用id tom验证,而默认UID是从1000开始递增的,不指定就不好核对
  • -g devgrp:指定主组。注意这里的主组必须是已存在的组,否则命令直接报错
  • -G wheel:附加组。把用户加进wheel组,意味着它获得sudo提权能力
  • -d和-m必须成对出现:-d定义家目录路径,-m确保这个目录被立即创建。只写-d不写-m,目录不会自动建,后续用户登录会直接落到根目录——这是一个非常经典的坑

创建完用户后,立即验证能登录是负责任的做法:

passwd tom su - tom whoami

su - tom和su tom的差别很多人没搞明白。带横杠的su -会加载目标用户的完整环境变量(PATH、HOME等),而不带横杠的su只切换身份,环境还是原来那个。第一次作业阶段练习时建议始终用su -,这能避免"明明切换了用户却找不到命令"的疑团。

2.2 组的创建与成员管理

组管理比用户管理简单,但也有容易忽略的细节。groupadd本身不复杂:

groupadd devgrp

麻烦的是"把已有用户加进组"的操作。管理员最常用的命令是usermod -aG,这里的-a(append)尤其关键——如果漏了-a,usermod会用你指定的组替换掉用户原有的附加组列表,结果可能把用户从wheel等关键组里踢出去。

usermod -aG devgrp tom

验证组关系用两个命令:

id tom # 查看UID、GID、所属组列表 groups tom # 简要显示组成员身份

这里有个坑值得单独说:用户已经登录的情况下修改它的组,新组不会立即生效。用户在登录时就已经把组信息缓存了,必须重新登录(或执行newgrp devgrp)才能拿到新组权限。第一次作业的验证环节经常出现"我明明加了组却进不了目录"的困惑,十有八九是忘了重新登录。

2.3 批量创建用户的脚本思路

部分老师布置的第一次作业要求创建多个用户。一个个敲命令当然能完成,但更推荐写一个简单shell脚本,既能练脚本思维,也能在作业报告里展示你的工程化意识。

#!/bin/bash # 批量创建用户脚本 for user in alice bob carol; do useradd -m -s /bin/bash "$user" echo "$user:123456" | chpasswd echo "User $user created" done

echo "$user:123456" | chpasswd这个写法比passwd命令更适合脚本,因为它不需要交互式输入,密码从标准输入读取。当然密码直接写在脚本里有安全风险,但这只是第一次作业的练习环境,无所谓。生产环境里应该用更安全的密钥或密码管理方案。

3. 文件权限与属主:作业里最容易扣分的部分

3.1 权限位的二进制本质

RHCSA第一次作业必然涉及权限配置,比如"让tom对某个目录有读写权限,但其他人只能读"。很多新手死记硬背chmod 755、chmod 777,却不知道这些数字是怎么来的。

权限的本质是三组二进制位:

  • 第一组:属主权限(user)
  • 第二组:属组权限(group)
  • 第三组:其他人权限(other)

每组权限由r(读=4)、w(写=2)、x(执行=1)三个值相加而成。所以755的意思是属主7(rwx)、属组5(r-x)、其他人5(r-x)。

但这个"相加"逻辑有一个盲区:它只能表达"全部权限或没有权限"的组合。比如你想给属主"读+写",但又不想给执行权限,用数字就是6;如果只想给"写+执行"不给读,那就是3。这些组合在数字模式下都能表达,但如果需求是"属主可读可写、组内可读、其他人不可读",那就要用符号模式来看反而更清晰:

chmod u=rw,g=r,o= file.txt

第一次作业里我强烈建议两种方式都练习,因为考试时题目描述通常是用符号表达的,而实际答题时很多人更喜欢用数字。两种表达能自由切换,才算真正理解了权限。

3.2 目录权限的特殊性

文件和目录的权限含义完全不同。目录的r权限决定你能不能列出目录内容,w权限决定你能不能在里面新建/删除文件,x权限决定你能不能进入目录。这就带来一个经典问题:为什么新建的目录明明是755,别人还是不能进去读写?——因为x权限没给,进都进不去,谈什么读写。

还有一个更隐蔽的坑是"粘滞位"(sticky bit)。RHCSA第一次作业中通常会要求你创建一个共享目录,让同组用户可以互相读写文件,但不能随意删除别人的文件。这就要用到粘滞位:

chmod 1777 /shared

/tmp目录就是典型的1777。没有粘滞位的话,同组用户之间可以互相删除文件,这在多人协作环境下是不可接受的。第一次作业里如果题目说"大家可以往共享目录里丢文件,但不能删别人的文件",答案一定是粘滞位,而不是chmod 777。

3.3 属主与属组的修改

chown命令负责改属主,chgrp负责改属组。但一个细节是:同时修改两者可以用一条命令搞定:

chown tom:devgrp /project/docs

tom:devgrp的顺序是"用户:组",不能写反。很多人在第一次作业里写成了chown :devgrp tom,报错后一脸茫然。另外,如果只想改组,用chgrp单独操作更直观,不用纠结冒号语法。

递归修改是另一个高频需求。chown -R tom:devgrp /project/docs里的-R表示递归,把目录下所有子文件和子目录的属主都改了。这里要特别提示:递归改属主在生产环境是高风险操作,有可能把系统文件的属主改乱。但第一次作业的练习环境里,你可以在自己的家目录和作业指定目录内随便用。

注意:chown需要有root权限。普通用户只能改自己拥有的文件的组,而且只能改成自己所属的组。这个限制很多人到考试前才意识到,平时练习应该多留意。

4. 网络基础配置与连通性验证

4.1 用nmcli完成静态IP配置

RHCSA考试对网络配置的考点集中在nmcli工具上。第一次作业通常要求你把虚拟机设置成固定IP或至少验证网络连通性。NAT模式下的虚拟机默认DHCP获取IP,但作业有时候要求你改成静态配置。

查看当前网络状态:

nmcli device status

这个命令会列出所有网卡设备及其状态。然后查看连接配置:

nmcli connection show

注意"设备"和"连接"是两个概念。设备是物理网卡(如ens160),连接是网络配置方案(如Wired Connection)。一个网卡上可以存在多个连接配置,但同一时间只能激活一个。这个抽象概念很多初学者要绕一会儿。

修改为静态IP的完整流程:

nmcli connection modify "ens160" \ ipv4.method manual \ ipv4.addresses 192.168.50.10/24 \ ipv4.gateway 192.168.50.2 \ ipv4.dns 192.168.50.2 nmcli connection up "ens160"

ipv4.method manual是必须写的,否则上面配的IP不会被应用。/24是子网掩码的简写,代表255.255.255.0。网关地址要看你虚拟机的NAT网段,不同虚拟化平台的网关不一样,需要先用ip route查一下当前的默认网关再填。

4.2 连通性排查三板斧

作业里常常让你"验证所有目标机器之间的连通性",这个验证过程本身就是考点。排查命令按优先级排列:

ip addr show # 先看IP是否配置正确 ip route show # 再看路由是否正常 ping -c 3 目标IP # 然后测连通性

ping命令要加-c 3指定发包数量,否则它会一直ping下去,Ctrl+C才能停。这个细节在考试环境里很致命——你不知道考官什么时候不耐烦。

如果ping不通,先别慌,按顺序排查:

  • 目标机器防火墙是否开启:systemctl status firewalld
  • 目标机器的IP地址是否写错:ip addr
  • 自己机器的网关是否正确:ip route
  • 是否在同一网段:确认掩码

第一次作业阶段的网络问题90%出在"IP配错了"或者"网卡没重启"。改了配置后务必执行nmcli connection up或者systemctl restart NetworkManager让配置生效。

4.3 防火墙的基础操作

RHEL系默认开启firewalld,第一次作业如果涉及跨机器访问,那"无法连接"的头号原因就是防火墙。理解firewalld只需要抓住两个概念:zone(区域)和service(服务)。

查看当前区域:

firewall-cmd --get-default-zone firewall-cmd --list-all

如果你要开放SSH服务(默认已开放),不需要动。如果你要允许HTTP访问:

firewall-cmd --permanent --add-service=http firewall-cmd --reload

--permanent表示持久化,不加的话重启后就没了。--reload让配置立即生效。这个"临时生效vs永久生效"的双轨机制是新手常踩的坑,作业里很容易出现"我当时明明开了端口,重启机器又没了"的情况。

5. 作业验收:如何自查与写报告

5.1 自查清单的建立

第一次作业交之前,一定要按清单逐一验证。这是我从业以来带人的固定套路,提前列一张自查表,比出问题后再翻书高效十倍:

检查项目验证命令预期结果
主机名设置hostnamectl status显示rhcsa-lab01
用户存在id tomUID为3001,组为devgrp
家目录存在ls -ld /home/tom目录存在且属主为tom
组关系正确groups tom包含devgrp、wheel
权限设置ls -ld /project/docs权限为770,属主tom:devgrp
粘滞位ls -ld /shared权限为1777
网络连通ping -c 3 网关0%丢包
防火墙状态firewall-cmd --list-all服务清单符合预期

每一条命令的执行结果截图保存,这是写作业报告最重要的素材。很多老师批作业不光看结果,还看你的验证过程是否严谨。截图里应该包含命令和输出,不要只截输出不截命令,那样说服力大打折扣。

5.2 作业报告的撰写技巧

第一次作业的报告不用写太长,但结构要有。我的建议是四个部分:

  • 环境说明:虚拟机平台、镜像版本、配置参数
  • 操作过程:用命令+输出的形式记录,关键步骤附一句"为什么这么做"
  • 验证结果:上面自查清单里的表格直接搬进去
  • 问题记录:把作业过程中你踩的坑写进去,包括报错信息、排查思路、最终解决方式

问题记录这一部分尤其加分。老师最怕看到"一次通过"的报告,因为那是假的——真实操作没有一次通过的。主动暴露问题并展示排查过程,反而说明你在真正动手。

5.3 提交前10分钟的最后检查

交作业之前,最后10分钟做这三件事:

  • 用一个新开的终端重新登录虚拟机,确认所有配置在重启后依然生效
  • 执行reboot,再登录一次。有些配置(比如临时加的防火墙规则)重启后会消失,这一步能暴露所有"临时生效"的问题
  • 检查/var/log/messages里有没有异常的报错信息

重启验证是最容易被忽略的环节。我见过太多同学"作业验收现场重启后丢配置",当场懵掉。记住一句话:系统重启后依然生效的配置,才是真正的配置。

6. 实操心得:第一次作业踩过的坑汇总

6.1 安装阶段的两个经典失误

第一次作业里最浪费时间的事,是虚拟机安装完了发现网卡没起来。这个问题的根源通常是安装时没开网络,或者虚拟机的网络类型选错了。解决方法是安装时在"网络与主机名"配置界面把以太网开关打开,确保它显示"已连接"。如果装完才发现网卡没配,也可以用nmcli补救,但终究多花时间。

第二个经典失误是分区空间给太小。很多人默认20G,装完系统加几个软件包就没空间了。第一次作业虽然不涉及大文件操作,但后面课程要装数据库、容器之类的,磁盘很容易爆。建议直接给40G以上,快照也会更从容。

6.2 命令记忆的误区

"命令记不住"是初学者最大的焦虑,但我的经验是:不要死记选项,要记逻辑。useradd、usermod、groupadd这些命令的选项高度一致——-u是UID,-g是主组,-G是附加组,-m是创建家目录。一旦你发现"同一个选项在多个命令里语义相同",记忆负担就小很多了。

还有一个技巧是善用man和--help。作业过程中遇到不会的命令,第一反应该是查文档而不是问同学。man useradd能看到所有选项的详细说明,这既是能力的锻炼,也是RHCSA考试中实际会用到的重要技能。

6.3 心态上的建议

第一次作业本质上不是技术考核,而是学习方法的检验。它要求你学会三件事:怎么查文档、怎么排查问题、怎么验证结果。这三件事背后的能力,才是RHCSA课程真正想训练的。

我在指导学员时反复强调一点:作业做不出来不要紧,跳过、查资料、再试,这些过程本身就在积累经验。最怕的是卡在一个报错上不动了,既不思考也不搜索。学会"遇到问题→拆解问题→搜索方案→验证修复"这个循环,你的Linux之路就走顺了。

RHCSA第一次作业看起来内容多,但拆开就是"装环境、加用户、配权限、调网络"这几件事。每一项都有明确的操作步骤和验证方法,你只需要按照上面这些流程一步步来,配以练习和排查,完成它一点都不难。真正拉开差距的,是你在踩坑之后能不能总结出属于自己的经验——这也是我写这篇东西的初衷。

返回列表