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

资讯详情

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

RHCSA第一次作业:从KVM环境到用户权限的Linux实操指南

RHCSA第一次作业:从KVM环境到用户权限的Linux实操指南

很多准备考 RHCSA 认证的人,拿到第一次作业的任务清单之后第一反应往往是:不就是装个虚拟机、配个主机名、建几个用户吗?这些我早就会了。然后直接跳过练习,跑去看后面的 SELinux、LVM、Podman,结果真正动手时连最基本的操作用时都压不下来,整套题目做不完。

我第一次带训练营时也踩过同样的坑,所以后来反复强调:RHCSA 第一次作业的价值,不在于作业本身有多难,而在于它逼你在一个真实环境里把最底层的动作练成肌肉记忆。rhcsa 认证的考试模式和传统笔试完全不同,它是服务器实操考试,考官给你一台运行中的虚拟机,你只有正常环境、没有图形界面帮忙,所有配置都要靠命令行完成。这种节奏如果不提前适应,考场上光是调整网络、确认仓库、建用户这种基础题就能耗掉一大半时间。

这篇文章就是按我第一次作业的完整流程来整理的:该练什么、为什么练、每一步怎么操作、容易出现什么问题。适合零基础刚开始接触 RHCSA 的考生,也适合工作多年但没系统梳理过红帽体系命令的运维同事参考。单看命令不会觉得多难,但真到自己从装虚拟机开始一步步做完,你才会发现里面全是细节。

1. RHCSA 第一次作业到底在考什么:从考试大纲倒推必练清单

1.1 第一次作业的三层意义:环境、节奏、习惯

先说环境。RHCSA 考试用的虚拟机是基于红帽企业版 Linux 的,默认是最小化安装,没有桌面,没有多余软件包。很多新手平时用 CentOS 或者 Ubuntu 习惯了,带图形界面、带 apt 源,一到纯命令行环境连vim都忘了怎么退出,更别说用dnf装包了。第一次作业让你把练习环境完全贴近考试环境,这一步省不了。

再说节奏。RHCSA 考试一共大约 15 道实操题,时间三个小时左右。题目量不大,但每道题都有严格的完成状态要求,比如某个用户必须属于某个组、某个目录必须有 ACL 权限、某个服务必须开机自启。你做完题之后考官不会看过程,只看最终状态。这意味着操作节奏非常重要。第一次作业虽然内容简单,但它能让你直观感受一下:做基础题时大概花多少时间,在哪一步容易卡住,怎么安排做题顺序。这些体验不实际动手是完全感受不到的。

最后说习惯。考试环境下没有教程、没有网上搜索、没有提问区,你只能靠自己的记忆和肌肉反应。比如useradd到底要加哪些参数、chown的属主属组格式、nmcli改完配置之后要不要重启服务。这些如果平时练成了条件反射,考试时就从容很多。第一次作业就是用来把这些条件反射建立起来的。

1.2 考试大纲里,第一次作业应该覆盖的考点

从红帽官方 RHCSA 考试目标倒推,第一次作业阶段通常需要覆盖以下方向:

考点方向具体任务在考试中的权重
系统和网络基础配置主机名、时区、日期、语言、静态 IP、网关、DNS几乎必考
用户与组管理创建用户、设置密码、附加组、批量处理用户属性必考
文件权限与 ACLchmod、chown、chgrp、setfacl 和 getfacl必考
软件仓库与软件包配置 dnf 源、安装和卸载软件包高频
systemd 服务管理服务的启动、停止、开机启用高频,但可放后练

第一次作业如果你把这些全部练顺了,后面学 SELinux、LVM、磁盘分区、内核参数调优都会轻松很多,因为这些高级内容全部建立在基础操作之上。比如 LVM 需要你先建好分区,SELinux 需要你正确安装和启动特定服务,网络服务需要你先把 IP 配置正确。基础不牢,后面寸步难行。

1.3 练习环境选什么:为什么我坚持用 KVM

很多人会问,练习 RHCSA 用 VirtualBox 行不行?用 VMware 行不行?甚至直接用物理机装一个双系统行不行?我的建议是:如果你是按考试标准来准备,最好用 KVM 虚拟机,而且是宿主机上的 KVM 虚拟机,不是单纯在 VirtualBox 里再套一层。

理由是考试本身就运行在 KVM 环境上。红帽考试的系统管理是在 KVM 虚拟化平台上进行的,题目可能包括虚拟机管理、快照、克隆等操作。虽然第一次作业还没有涉及到这些,但你从第一天就用 KVM,后面看virsh命令、虚拟网络、存储池这些内容时就不会有陌生感。另一个现实原因是 KVM 是 Linux 内核原生虚拟化方案,性能更好,在同一台机器上跑多个虚拟机做实验也不会太卡。VirtualBox 也可以,但它在 Linux 下的硬件兼容和性能调度通常不如 KVM 顺畅。

如果你用的是 Windows 笔记本,没有 Linux 宿主机条件,那 VMware Workstation 也是可以接受的替代方案。操作层面的命令是一样的,差别主要在虚拟化管理工具上。但无论如何,请不要用 Docker 容器来模拟 RHCSA 环境。容器共享内核,很多系统级配置在容器里根本无法模拟,比如 systemd 启动管理、内核参数、SELinux 的完整策略。用容器练 RHCSA,会出现大量明明学过了但考试环境里根本执行不了的命令。

2. 搭一套能反复折腾的 KVM 实验环境

2.1 宿主机准备与 KVM 组件安装

搭建 KVM 实验环境,首先需要一台安装了 Linux 发行版的宿主机。推荐使用 CentOS Stream 或者 RHEL 9,这样既贴近考试环境,命令写法也和 RHCSA 完全一致。硬件方面要求不高,只要 CPU 支持硬件虚拟化就可以,也就是 Intel VT-x 或者 AMD-V,内存建议 16GB 起步,因为要同时跑宿主机加一到两台虚拟机。

安装 KVM 其实很简单,把必要组件一次性装齐:

dnf install -y qemu-kvm libvirt virt-install bridge-utils virt-manager

安装完成后启动 libvirtd 服务,并设置开机自启:

systemctl enable --now libvirtd

确认内核模块加载正常:

lsmod | grep kvm

正常情况下能看到 kvm_intel 或 kvm_amd 输出。如果你的 CPU 支持硬件虚拟化但没有输出,说明 BIOS 中的虚拟化功能未开启,需要重启进 BIOS 打开。这个环节很容易被忽略,但一旦漏掉,后面创建虚拟机时会直接报错,而且报错信息非常隐蔽,新手很难看出是虚拟化未启用的问题。

另外建议把运行虚拟机的用户加入 libvirt 组,否则后面用virsh管理虚拟机时总要走 sudo,操作起来会别扭:

usermod -aG libvirt username

改完权限后重新登录生效。

2.2 用 virt-install 创建第一台虚拟机的完整命令

创建虚拟机我一般推荐直接用virt-install命令行,而不是每次都用 virt-manager 图形界面。因为命令行可复制、可复用,而且在没有图形界面的场景下依然能创建虚拟机。第一次练习时不建议一开始就用virt-install --autostart全自动化,而是手敲一遍参数,这样每个参数的作用你都清楚。下面这条命令是我常用的一套模板:

virt-install \ --name rhel9-lab \ --memory 2048 \ --vcpus 2 \ --disk path=/var/lib/libvirt/images/rhel9-lab.qcow2,size=20,format=qcow2 \ --cdrom /path/to/RHEL-9.iso \ --os-variant rhel9.0 \ --network network=default \ --graphics vnc,listen=127.0.0.1,port=5901 \ --noautoconsole

逐项解释一下:

  • --name是虚拟机名字,后续所有 virsh 操作都靠它来标识。
  • --memory给虚拟机分配的内存,单位是 MiB。第一次作业阶段 2048 就够了,但如果你要同时跑多个服务,建议至少给 4096。
  • --vcpus是虚拟 CPU 核数,2 核起步,做编译安装类实验时可以临时调高。
  • --disk指定磁盘路径、大小和格式。路径建议统一放在/var/lib/libvirt/images/下,方便后续快照和克隆管理。
  • --cdrom指向安装镜像文件。RHEL 9 的安装镜像可以从红帽官网下载评估版。
  • --os-variant指定操作系统版本,它的作用不是决定系统内容,而是让 QEMU 自动选择最合适的虚拟硬件配置。
  • --network使用默认 NAT 网络。这样虚拟机可以通过宿主机上网,不需要额外配置网桥。
  • --graphics配置 VNC 远程显示用于安装过程。
  • --noautoconsole表示创建完成后不自动阻塞在控制台,方便继续敲命令。

2.3 安装镜像时的最小化与网络开启细节

虚拟机创建后,用 VNC 或 virt-manager 连接到图形安装界面。这里有几个第一次作业阶段必须刻意练习的细节:

第一,软件选择建议选 Minimal 模式,也就是最小化安装。因为考试环境就是最小化的,很多工具不会预装,你需要自己通过 dnf 去安装,这是 RHCSA 的必考能力。如果你在练习时选了带图形界面的 Server with GUI,后面做题目时会发现所有依赖都已经存在,完全没有练习的机会。

第二,安装过程中记得把网络打开。安装界面右下角通常有一个网络和主机名设置区域,在这里直接配置静态 IP。这一步非常关键,因为很多新手安装时偷懒不配网络,等系统装完登录进去发现没有 IP,再回头配网络时容易把网卡配置文件搞乱。安装界面里做静态 IP 配置其实很直观:选到对应网卡,手动填入 IP、网关、DNS 即可。RHEL 9 装完后,这套配置会正常写入系统的 NetworkManager 配置文件中。

第三,设置 root 密码时不要用过于简单的弱口令。虽然考试环境没人盯着你的密码强度,但系统自带的密码策略在某些配置下会有限制,尤其如果你后面练习时会启用密码策略模块,弱口令会导致passwd直接失败,干扰排查思路。

2.4 快照与克隆:练坏一键还原

第一次作业阶段最容易犯的错就是系统越练越乱,想恢复但不知道怎么弄。所以创建好虚拟机并完成最小化安装后,第一个动作应该是立刻做一次干净快照,确保后面无论怎么折腾都能一键还原。

创建快照的命令如下:

virsh snapshot-create-as rhel9-lab \ --name initial-clean \ --description "fresh minimal install after first boot"

查看当前快照列表:

virsh snapshot-list rhel9-lab

需要回滚时,先关机,再执行还原:

virsh shutdown rhel9-lab virsh snapshot-revert rhel9-lab initial-clean virsh start rhel9-lab

注意,如果你的 KVM 虚拟机上开启了 UEFI 引导,可能会遇到快照回滚后固件状态不一致的问题。如果出现这种情况,建议把虚拟机配置改为 BIOS 引导模式。RHCSA 考试不会限制引导方式,但 BIOS 模式在快照和克隆时兼容性更好。

另外还有virt-clone命令可以在现有虚拟机的磁盘基础上快速克隆出多台新虚拟机。比如你后续练习 Podman 或集群操作时需要多台机器,就不必重新安装系统:

virt-clone --original rhel9-lab \ --name rhel9-node2 \ --file /var/lib/libvirt/images/rhel9-node2.qcow2

克隆出来的虚拟机会有完全相同的系统环境,包括网络配置。使用时一定要先登录进去改掉主机名、网卡的 IP 地址,否则几台虚拟机同一 IP,网络全乱套。

3. 第一次作业核心任务实操:系统配置三板斧

3.1 主机名与时间同步的一行命令

RHCSA 考试中有一类看似简单但特别容易扣分的题目,就是设置系统的主机名和时区。如果题目要求把主机名改成 server1.example.com,你应该直接使用hostnamectl命令:

hostnamectl set-hostname server1.example.com

执行后再用hostnamectl查看,确认输出里 Static hostname 已经是期望值。这里有一个容易被忽略的点:考试环境中的提示符可能不会立刻显示新主机名,你只要确认配置已写入即可,不用重新登录。如果你非要让提示符立刻变化,可以执行exec bash --login重新加载 shell。

时区设置同样简单:

timedatectl set-timezone Asia/Shanghai

查看当前系统时间和时区状态:

timedatectl

注意题目如果明确要求使用 NTP 时间同步,那么需要确认timedatectl输出中NTP service是 active 状态。RHEL 9 默认集成了chrony,一般只需要确保防火墙放行 UDP 123 端口,或者直接关闭防火墙进行练习即可。

3.2 用 nmcli 完成网络配置,告别重启失效

网络配置是 RHCSA 考试里的经典考点,几乎每次都会出现。常见的题目要求是:将当前系统的网卡配置为静态 IP,指定网关和 DNS。RHEL 9 默认的网络管理工具是 NetworkManager,大多数情况下你只需要用nmcli操作,不需要直接编辑配置文件。

先查看当前网络接口状态:

nmcli device status nmcli connection show

假设你的连接名是ens160,要把它改成静态 IP 192.168.122.100,网关 192.168.122.1,DNS 192.168.122.1,命令如下:

nmcli connection modify ens160 \ ipv4.method manual \ ipv4.addresses 192.168.122.100/24 \ ipv4.gateway 192.168.122.1 \ ipv4.dns 192.168.122.1

然后激活连接:

nmcli connection up ens160

验证配置是否生效:

ip addr show ens160 cat /etc/resolv.conf

考试中常见的坑有两个。第一,连接名和网卡设备名不一样,比如设备名是 ens160,但连接名是 System ens160,你用nmcli connection modify ens160会提示找不到连接。正确做法是先用nmcli connection show查看准确的连接名。第二,用ip addr add临时添加的 IP 在重启后会消失,考试要求的是持久化配置,必须用nmcli connection modify或编辑 ifcfg 文件。

如果你更喜欢直接编辑配置文件,路径是/etc/NetworkManager/system-connections/,RHEL 9 使用的是 keyfile 格式,不是老的 ifcfg 格式。不建议新手在这个阶段手动编辑 keyfile,因为格式一旦写错,NetworkManager 会拒绝读取,网络直接失联。

3.3 配置可用软件源,让 dnf 正常干活

RHCSA 考试中安装软件包是高频操作,而安装软件包的前提是 dnf 软件源可用。第一次作业阶段建议练习两种方式:配置本地 ISO 源和配置网络源。

如果考试环境提供了本地 ISO 镜像文件,最简单的做法是把它挂载到某个目录,然后配置dnf使用这个目录作为仓库。假设镜像挂载在/mnt/iso:

mount -o loop /path/to/RHEL-9.iso /mnt/iso

然后新建仓库文件:

vim /etc/yum.repos.d/local.repo

内容如下:

[local-base] name=Local Base Repository baseurl=file:///mnt/iso/BaseOS enabled=1 gpgcheck=0 [local-appstream] name=Local AppStream Repository baseurl=file:///mnt/iso/AppStream enabled=1 gpgcheck=0

重点在于BaseOS和AppStream这两个目录必须对应 RHEL 9 的软件仓库结构,否则 dnf 什么包都搜不到。配置完成后需要清理缓存再验证:

dnf clean all dnf repolist dnf install -y vim-enhanced bash-completion

当你的环境可以访问互联网时,配置网络源更简单,只需要指定一个可用的镜像站地址。但要注意,考试环境中通常不允许外网访问,所以本地 ISO 源的能力是必须练熟的。

3.4 交作业前的自检命令清单

很多新手做完配置后自信满满,结果一检验发现全没生效。为了避免这种情况,我在第一次作业阶段会给学生发一份自检清单,完成后逐个跑一遍:

hostnamectl timedatectl nmcli connection show ip addr show ping -c 3 192.168.122.1 dnf repolist dnf install -y tree

每一项都有明确目的。hostnamectl确认主机名,timedatectl确认时区,nmcli connection show确认连接状态,ip addr show确认 IP 地址,ping确认网关连通,dnf repolist确认源可用,最后一条实际安装一个包来验证整个软件源链路没有断裂。这套流程走一遍,基本能覆盖系统配置类题目的大部分检查点。

4. 用户、组与权限:RHCSA 必考也必丢分的大头

4.1 从 useradd 到批量管理:创建用户的正确姿势

用户和组管理是 RHCSA 考试中出现频率最高的题目类型,而且往往不是单独出现,你好不容易建完用户,下一题就要求改密码、加组、改目录权限,一环扣一环。第一次作业阶段要把以下命令练到闭眼能敲。

创建用户时,最简单的命令是:

useradd alice

但实际考试通常会要求附加属性,比如设置用户的 UID、指定主组、指定家目录路径。一个完整的需求可能是这样的:

创建用户 alice,UID 为 2200,主组为 staff,家目录为 /home/alice,默认 shell 为 /bin/bash。

对应命令:

groupadd staff useradd -u 2200 -g staff -d /home/alice -m -s /bin/bash alice

-g指定主组,-G指定附加组,这两个参数容易混。如果需要把用户同时加入多个附加组,用逗号分隔:

useradd -G wheel,devops alice

设置或修改密码:

passwd alice

批量修改用户信息时,usermod和useradd的参数格式非常相似。把 alice 的主组改为 devops,并把登录 shell 改为 nologin:

usermod -g devops -s /sbin/nologin alice

这里要特别提醒:/sbin/nologin的后果是该用户无法正常交互登录,这是考试中常见的陷阱。有些题目的确要求创建这样一个不可登录的系统用户,有些则只是让你暂时禁用。做题时一定要看清题目原文,别把一个普通用户误改成 nologin,那样后续关于该用户的其他测试全部会失败。

删除用户和组:

userdel -r alice groupdel staff

-r会同时删除该用户的家目录和 mail spool。如果只写userdel alice,用户删除后家目录残留,这在某些检查脚本里是会扣分的。

4.2 文件权限的读写执行,ACL 才是真正的坑

权限管理本身并不复杂:chmod修改读写执行权限,chown修改属主属组,chgrp修改属组。复杂的是当题目要求某个用户在某个目录只能有读权限、某个用户只能有执行权限,而该用户又要能处理特定子目录时,传统的三组权限位就完全不够用了。这时必须使用 ACL。

先用基本权限举个例子。把/data目录的属主改为 alice,属组改为 staff:

chown alice:staff /data

给目录设置 750 权限,表示属主全权限、属组读和执行、其他人无权限:

chmod 750 /data

但实际考试题目一般不会这么简单。更常见的是类似这样的要求:

在 /data 目录下创建文件 report.txt,要求 alice 具有读写权限,同时属于 accounting 组的成员具有只读权限,其他所有人没有权限。

这种题目用传统权限其实也能做,只要让文件属主是 alice,属组是 accounting,并设置 640 权限。但如果题目要求一个文件同时让多个不同组的用户拥有不同权限,就必须用 ACL:

setfacl -m u:alice:rw /data/report.txt setfacl -m g:accounting:r /data/report.txt setfacl -m o::- /data/report.txt

查看当前 ACL 的完整设置:

getfacl /data/report.txt

ACL 最常见的坑是木棍权限位根本看不出来。ls -l看到的+号只是提示该文件有额外 ACL,具体权限一定要getfacl查看。考试时如果你只记住ls -l的输出就判断文件权限是否正确,很容易漏掉 ACL 内容。

还有默认 ACL 的概念。如果想让某个目录下新建的所有文件自动继承 ACL 规则,需要用d:前缀设置默认 ACL:

setfacl -m d:u:alice:rwx /data

这个默认 ACL 只会对目录生效,设置之后该目录下新建的文件会自动带上 alice 的权限。

4.3 用 sudo 做权限委派,别忘了 wheel 组的意义

RHCSA 考试涉及 sudo 的题目主要分两类:一类是把用户加入 wheel 组,使其拥有全部管理权限;另一类是自定义 sudo 规则,允许某个用户只执行特定命令。

第一类最简单:

usermod -aG wheel alice

验证方式是用 alice 登录后运行:

sudo whoami

如果输出是 root,说明 sudo 配置生效。这里有个细节:不要用usermod -g wheel alice,那会把 alice 的主组改成 wheel,而考试通常只需要附加组即可,主组往往另有要求。

第二类需要编辑/etc/sudoers文件。不要直接vim编辑,因为语法错误可能导致整个 sudo 不可用。正确方式是用visudo打开编辑器,它会检查语法错误。也可以在/etc/sudoers.d/目录下新建配置文件:

visudo -f /etc/sudoers.d/devops

内容示例:

%devops ALL=(ALL) /usr/bin/systemctl

这一行表示 devops 组的所有成员可以以 root 身份执行systemctl命令。注意,RHCSA 考试常考的就是这种"限定命令范围"的 sudo 配置。如果你把配置写成了%devops ALL=(ALL) ALL,虽然功能上更开放,但如果题目明确限制只能执行哪些命令,这种写法就不符合预期,很可能被判定为错误。做题时一定要看清题目到底要求"完全 sudo 权限"还是"部分命令 sudo 权限"。

4.4 一次完整的用户权限实验演示

把前面这些知识点串起来做一套完整实验,比单独记命令有用得多。我建议第一次作业阶段做这样一个练习:

  1. 创建用户 ethan 和 olivia。
  2. 创建组 ops,把 ethan 加入附件组 ops,把 olivia 设为主组 ops。
  3. 创建目录/srv/shared,设置属主为 ethan、属组为 ops。
  4. 要求 ops 组的成员对该目录有读写执行权限,其他用户只有读和执行的权限,也就是权限位 770。
  5. 使用 ACL 设置:olivia 对 /srv/shared 下所有现有文件有读写权限。
  6. 创建一个/etc/sudoers.d/ops-admin文件,要求与 ops 组相关的管理用户可以无需密码执行systemctl restart sshd。

做完后用id ethan、id olivia、getfacl /srv/shared、sudo -l逐项验证。整套实验做完大约需要 15 分钟,但涵盖的知识密度非常高,基本覆盖了 RHCSA 用户和权限模块 70% 的题目类型。

5. 我和学生们第一次作业踩过的坑(实操记录)

5.1 虚拟机内存给太小,安装阶段直接黑屏

第一次带训练营时,有位同学的笔记本内存只有 8GB,他为了省资源把虚拟机内存设置成了 1024MiB。结果 RHEL 9 的图形安装界面加载到一半就黑屏,当时他还以为是镜像文件损坏,反复重新下载浪费了快两个小时。

其实 RHEL 9 的安装程序本身对内存有一定要求,图形安装模式建议至少 2GB 内存。如果你的宿主机资源紧张,可以采用文本模式安装,在virt-install命令行中追加--extra-args "console=ttyS0"并配合--graphics none,这样安装过程就完全跑在串口控制台里,对内存的要求低得多。但第一次作业阶段,我建议老老实实给 2GB 以上内存,直接用图形安装界面,因为这样你能观察到更多系统默认配置的细节。

5.2 网卡配置文件写错后网络起不来:恢复流程

另一个高频坑是手改网卡配置导致 NetworkManager 无法激活连接。我见过太多学员在配置静态 IP 时偏好手动修改/etc/sysconfig/network-scripts/ifcfg-*文件,结果 RHEL 9 根本不识别这种旧格式,网络直接失联。

如果你也遇到这种状况,别慌。先回到宿主机,通过virsh console进入虚拟机控制台。如果虚拟机网络依赖 SSH,而此时 SSH 已断开,控制台就是你唯一的救命通道。进入系统后执行:

nmcli connection show

确认连接是否存在。如果连接还在但处于 deactivated 状态,直接重新激活:

nmcli connection up ens160

如果连接已经被删除了,就新建一个:

nmcli connection add type ethernet con-name ens160 ifname ens160 ipv4.method auto

然后再次激活并确认。记住一个原则:RHEL 9 上永远优先用 NetworkManager 的nmcli管理网络,手动编辑配置文件是最后手段。考试环境里你不会有太多时间去试错,使用标准工具才是最快路径。

5.3 手贱把 root 权限改掉后的恢复:单用户模式

练习用户管理时,最经典的事故是:给某个普通用户设置了错误的 sudo 权限,或者把/etc/sudoers文件改坏了,然后所有管理员命令都执行不了。更严重的是如果把/etc/passwd中 root 的 shell 改成了不存在的路径,root 直接无法登录。

这种情况下,只能进入单用户模式修复。KVM 虚拟机在启动时,通过图形控制台快速按键盘的e键进入 GRUB 编辑界面,在内核命令行末尾加上rd.break或single,然后使用Ctrl+X启动。进入紧急模式或单用户环境后,可以将根文件系统重新挂载为可写:

mount -o remount,rw /sysroot chroot /sysroot

然后修改/etc/passwd或/etc/sudoers。修复后执行:

touch /.autorelabel exit exit

/.autorelabel这一步非常重要,尤其在 RHEL 9 启用了 SELinux 的情况下。如果不触发文件系统重新打标,修复后的文件很可能会因为 SELinux 上下文不正确而被拒绝读取,导致问题复发。很多新手修复后仍然反复失败,就是漏了这一步。

5.4 做完用户实验发现用户无法登录?检查 shadow 锁定状态

还有一个看起来非常诡异的问题:用户明明创建成功,密码也设置了,但登录时始终提示认证失败。排查到最后发现是/etc/shadow中该用户的密码字段前面多了一个感叹号。这个感叹号表示账户被锁定。

什么情况下会触发?常见原因是你在练习时执行过:

usermod -L alice

或者passwd -l alice。某些同学做考前模拟时为了测试"禁用用户"这个知识点,把用户锁了,却忘了在下一个场景中解锁。解锁命令:

usermod -U alice

然后检查密码状态:

passwd -S alice

输出中PS表示密码已设置且未锁定,LK表示锁定。这个状态是考试检查脚本经常看的,务必养成做完实验后立即用状态命令复盘的习惯。

5.5 我对第一次作业的三条实际建议

结合我带过的多次训练营和实际考试反馈,针对 RHCSA 第一次作业最后说三条个人体会。

第一,不要贪多。第一次作业练的就是环境搭建、基础配置、用户权限这些底层能力。很多同学第一天就想去啃 SELinux 和 Podman,结果被复杂问题打击到怀疑人生。把这些基础课题练到几乎不用思考就能执行,比提前接触高级知识点要划算得多。

第二,一定要训练"不看笔记敲命令"。考试时没有文档可查,平时练习时可以随便查,但每做完一个小的实验,比如配完一个静态 IP、建完一个用户、设完一个 ACL,就试着关掉笔记重新做一遍。如果做不到,说明还没形成肌肉记忆,下次还要继续练。

第三,养成做快照的习惯。每次完成一个完整实验,比如装完系统、配好网络、做完用户体系,分别打一个快照。这样你可以放心大胆地在系统里做各种破坏性实验,练坏了直接回滚,反复练习的成本几乎为零。RHCSA 考试的高分往往不是靠天赋,而是靠把同一个实验反复做很多遍,做到烂熟于心。第一次作业就是你给自己建立这套练习方法的最好起点。

返回列表