XYCOVO CONSOLE KURISU · WEB 渗透 / AI 辅助攻防 ONLINE
#004 · 2025-07-25✓ PASS

RHCSA 学习笔记

RHEL9 环境下的 RHCSA 红帽认证系统管理员完整学习笔记,涵盖系统基础、文件管理、用户权限、网络存储、进程服务等核心考点。
linuxrhcsa系统管理rhelAUTHOR: KURISU

RHCSA(Red Hat Certified System Administrator)是红帽认证体系中的基础认证,也是企业 Linux 运维岗位的核心证书之一。本文整理自课程复习资料,覆盖全部核心考点。


一、Linux 基础与环境搭建

1.1 学习环境搭建

  1. 安装 VMware 虚拟机软件
  2. 创建虚拟机并安装 RHEL9 系统
  3. 配置基础环境

关闭防火墙:

systemctl disable firewalld --now

关闭 SELinux:

vim /etc/selinux/config
# 将 enforcing 修改为 disabled

1.2 重置 root 密码

# 1. 重启系统,在启动项选择界面按 e 键
# 2. 在 linux 行末尾添加 rd.break,按 ctrl+x
# 3. 依次执行:
mount -o remount,rw /sysroot/
chroot /sysroot/
echo "新密码" | passwd --stdin root
touch /.autorelabel
exit
exit

1.3 基础命令

命令功能
date查看/设置系统日期时间
timedatectl设置时区
pwd显示当前工作目录路径
cd切换目录
ls列出目录内容
cat /etc/redhat-release查看系统发行版信息
uname -r查看内核版本信息
ip aifconfig查看 IP 地址

1.4 关机与重启

poweroff           # 关机(推荐)
shutdown --now     # 关机(推荐)
init 0             # 关机(旧式)

reboot             # 重启(推荐)
init 6             # 重启(旧式)

二、文件管理

2.1 文件类型

Linux 中共有七种文件类型:

符号类型
-普通文件
d目录文件
l链接文件(软链接)
c字符设备文件
b块设备文件
p管道文件
s套接字文件

2.2 查看文件

命令说明
cat一次性显示全部内容(适合小文件)
more向下翻页查看
less可向上/向下翻页查看
head查看文件前 10 行(默认)
tail查看文件后 10 行(默认),tail -f 动态追踪
grep过滤文件内容
cut切割文件内容
sort对文件内容排序
uniq去掉文件中重复内容
tr替换文件中的字符
wc统计文件行数/词数/字节数

2.3 创建文件

# 创建空文件
touch filename

# 创建大文件(测试用)
dd if=/dev/zero of=testfile bs=1M count=100

# 数据流方式创建
echo "content" > file.txt
echo "append" >> file.txt

# cat 配合 EOF 创建
cat > file1 <<EOF
hello
world
EOF

# tee 创建
tee f1.txt
# 输入内容后按 ctrl+d 结束

2.4 文件操作命令

# 复制文件
cp source target
cp -r source_dir/ target_dir/

# 远程复制
scp file user@host:/path/

# 移动/重命名
mv old_name new_name
mv file /target/path/

# 删除文件
rm file
rm -rf directory  # 递归强制删除

# 查找文件
whereis command    # 查找二进制文件路径和文档
which command      # 查找二进制文件路径
find /path -name "pattern" -type f  # 按名称/类型/大小/权限查找

2.5 链接文件

# 硬链接(同一个 inode,不能跨文件系统,不能链接目录)
ln source target

# 软链接(符号链接,类似快捷方式)
ln -s source target
区别硬链接软链接
inode相同不同
跨文件系统不支持支持
链接目录不支持支持
删除源文件仍可访问失效

2.6 压缩与解压

# zip / unzip
zip archive.zip file1 file2
unzip archive.zip

# gzip / gunzip
gzip file
gunzip file.gz

# tar(最常用)
tar -czf archive.tar.gz directory/   # 压缩(gzip)
tar -xzf archive.tar.gz              # 解压(gzip)
tar -cjf archive.tar.bz2 directory/  # 压缩(bzip2)
tar -xjf archive.tar.bz2             # 解压(bzip2)
tar -cf archive.tar directory/       # 仅打包
tar -xf archive.tar                  # 解包

2.7 数据流与重定向

数字名称说明
0stdin标准输入(键盘)
1stdout标准输出(终端)
2stderr标准错误输出(终端)
command > file        # 覆盖输出重定向
command >> file       # 追加输出重定向
command 2> err.txt    # 错误输出重定向
command &> all.txt    # 正确和错误都重定向到同一文件
command > all.txt 2>&1   # 等价写法

三、用户与组管理

3.1 用户分类

类型UID/GID 范围说明
超级用户 (root)0拥有所有权限,不受权限限制
系统用户1-999用于运行系统进程或服务,不用于登录
普通用户1000+日常使用,权限受限

3.2 用户组分类

  • 基本组(主组/私有组):每个用户只有一个基本组
  • 附加组(公有组):每个用户可以有零到多个附加组

3.3 相关配置文件

/etc/passwd:用户信息,7 列(冒号分隔)

含义
1用户名
2密码占位符(x)
3UID
4GID
5用户描述信息
6家目录
7登录 Shell

/etc/shadow:密码信息,9 列(冒号分隔)

含义
1用户名
2加密后的密码($算法$盐$密文
3最后一次修改时间(1970-01-01 起的天数)
4密码最小使用天数
5密码最大使用天数
6密码过期警告天数
7密码过期宽限天数
8账号过期时间
9保留字段

/etc/group:组信息,4 列

含义
1组名称
2组密码占位符
3GID
4组成员列表

/etc/login.defs:记录了系统相关默认值,如 umask 默认值、家目录位置等。

3.4 用户管理命令

# 创建用户
useradd username
useradd -u 1500 -g groupname -d /home/custom -s /bin/bash username

# 修改用户
usermod -l newname oldname    # 修改用户名
usermod -u 700 username        # 修改 UID
usermod -aG groupname username # 添加附加组

# 设置密码
passwd username
echo "password" | passwd --stdin username

# 删除用户(务必带 -r 删除家目录和邮件)
userdel -r username

# 切换用户
su - username

3.5 组管理命令

# 创建组
groupadd groupname
groupadd -g 5000 groupname

# 修改组
groupmod -n newname oldname

# 管理组成员
gpasswd -a username groupname   # 添加用户到组
gpasswd -d username groupname   # 从组中移除用户

# 删除组
groupdel groupname

3.6 查看登录信息

命令说明
users查看当前所有登录用户
last显示当前与过去登录用户信息
lastlog查看用户最后登录日志
w显示当前登录用户及其操作
who查看当前登录用户名

四、权限管理

4.1 基本权限

权限格式:

 rwx       rwx       rwx
 所属者(u)  所属组(g)  其他用户(o)    a = u+g+o
权限字母数字说明
r4查看文件内容 / 列出目录
w2修改文件内容 / 在目录中创建删除
执行x1执行文件 / 进入目录
-0无权限
# 修改权限
chmod 755 file          # 数字方式:rwxr-xr-x
chmod u+x file          # 符号方式:所属者加执行权限
chmod g-w,o-rwx file   # 符号方式:组去写,其他全部去权

# 修改所属者和所属组
chown user file              # 只改所属者
chown user:group file        # 同时改所属者和所属组
chown :group file            # 只改所属组
chown -R user:group dir/     # 递归修改

4.2 特殊权限

权限字母数字说明
SUIDs(属主位)4临时以文件所有者权限执行(仅对二进制文件有效)
SGIDs(属组位)2临时以文件所有组权限执行
SBIT (Sticky)t1目录中文件只有创建者和 root 可删除
chmod 4755 file   # 设置 SUID
chmod 2755 file   # 设置 SGID
chmod 1777 dir    # 设置 SBIT

4.3 ACL 权限

在不修改原有权限的基础上,为特定用户或组临时增加权限。

# 设置 ACL
setfacl -m u:username:rwx file
setfacl -m g:groupname:r-x file

# 查看 ACL
getfacl file

# 删除 ACL
setfacl -x u:username file
setfacl -b file  # 删除全部 ACL

4.4 umask 掩码

管理文件和目录创建时的默认权限:

  • 文件默认权限 = 666 - umask
  • 目录默认权限 = 777 - umask
# 查看当前 umask
umask

# 临时设置
umask 022

# 永久设置:编辑 /etc/login.defs 中的 UMASK 值

五、网络管理

# 查看 IP 地址
ip addr show
ip a

# 查看路由表
ip route show

# 使用 nmcli 管理网络(RHEL9 推荐)
nmcli device status
nmcli connection show
nmcli connection add type ethernet con-name eth0 ifname eth0
nmcli connection modify eth0 ipv4.addresses 192.168.1.100/24
nmcli connection modify eth0 ipv4.gateway 192.168.1.1
nmcli connection modify eth0 ipv4.dns 8.8.8.8
nmcli connection modify eth0 ipv4.method manual
nmcli connection up eth0

# 修改主机名
hostnamectl set-hostname new-hostname

# 测试网络连通性
ping -c 4 8.8.8.8

六、软件管理

6.1 DNF/YUM(推荐方式)

# 安装软件
dnf install package-name
dnf install -y package-name   # 自动确认

# 搜索软件
dnf search keyword

# 查看软件信息
dnf info package-name

# 更新软件
dnf update package-name
dnf update                    # 更新所有

# 卸载软件
dnf remove package-name

# 查看已安装
dnf list installed

# 清理缓存
dnf clean all

6.2 RPM

rpm -ivh package.rpm     # 安装(不自动解决依赖)
rpm -qa                  # 查询所有已安装
rpm -qa | grep keyword   # 按关键字过滤
rpm -qi package-name     # 查看包详细信息
rpm -ql package-name     # 查看包安装的文件列表
rpm -e package-name      # 卸载

6.3 配置本地 YUM 仓库

/etc/yum.repos.d/ 目录下创建 .repo 结尾的文件:

[local-repo]
name=Local Repository
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0

6.4 源码安装

# 1. 安装编译环境
dnf groupinstall "Development Tools"

# 2. 配置
./configure --prefix=/usr/local/app

# 3. 编译
make

# 4. 安装
make install

七、进程管理

7.1 基本概念

  • 程序:存储在磁盘上的可执行文件(静态)
  • 进程:程序在内存中运行的实例(动态)
  • 线程:进程内的执行单元

7.2 进程查看

# 查看当前 shell 进程
ps

# 查看系统所有进程(BSD 风格)
ps aux

# 查看系统所有进程(标准风格)
ps -ef

# 实时监控进程
top
# 交互命令:P-按CPU排序 M-按内存排序 k-终止进程 q-退出

# 查看进程树
pstree

# 查看网络连接
ss -tunlp
netstat -tunlp

7.3 进程控制

# 按 PID 终止进程
kill PID            # 发送 TERM 信号(优雅终止)
kill -9 PID         # 发送 KILL 信号(强制终止)
kill -15 PID        # 默认终止信号

# 按名称终止
killall process_name
pkill process_name

# 后台运行
command &           # 后台运行
nohup command &     # 终端关闭后继续运行

# 查看后台任务
jobs

# 将后台任务调回前台
fg %job_id

# 暂停进程
ctrl+z
# 恢复运行
bg %job_id

八、服务管理(systemd)

# 启动/停止/重启服务
systemctl start service_name
systemctl stop service_name
systemctl restart service_name

# 重新加载配置(不中断服务)
systemctl reload service_name

# 开机自启
systemctl enable service_name
systemctl disable service_name

# 查看服务状态
systemctl status service_name

# 查看服务是否运行
systemctl is-active service_name

# 查看服务是否开机自启
systemctl is-enabled service_name

# 列出所有服务
systemctl list-units --type=service

# 屏蔽服务(完全禁止启动)
systemctl mask service_name
systemctl unmask service_name

九、存储管理

9.1 磁盘分区

# 查看磁盘信息
lsblk
fdisk -l

# MBR 分区(使用 fdisk)
fdisk /dev/sdb
# n-新建分区 d-删除分区 w-保存退出 q-不保存退出

# GPT 分区(使用 gdisk)
gdisk /dev/sdb

# 使内核重新读取分区表
partprobe

9.2 格式化与挂载

# 格式化文件系统
mkfs.xfs /dev/sdb1
mkfs.ext4 /dev/sdb1

# 查看块设备信息
lsblk
blkid

# 挂载
mount /dev/sdb1 /mnt/data
mount -t xfs /dev/sdb1 /mnt/data

# 卸载
umount /mnt/data

# 永久挂载(编辑 /etc/fstab)
# /dev/sdb1  /mnt/data  xfs  defaults  0  0

# 查看磁盘使用情况
df -h
du -sh /path/

9.3 LVM 逻辑卷管理

LVM 三层架构:PV(物理卷)→ VG(卷组)→ LV(逻辑卷)

# 创建物理卷
pvcreate /dev/sdb1 /dev/sdc1
pvdisplay
pvscan

# 创建卷组
vgcreate vg_data /dev/sdb1 /dev/sdc1
vgdisplay
vgextend vg_data /dev/sdd1   # 扩展卷组

# 创建逻辑卷
lvcreate -n lv_data -L 10G vg_data
lvdisplay
lvextend -L +5G /dev/vg_data/lv_data   # 扩展逻辑卷

# 扩展文件系统(XFS)
xfs_growfs /mnt/data

# 扩展文件系统(ext4)
resize2fs /dev/vg_data/lv_data

# 删除
lvremove /dev/vg_data/lv_data
vgremove vg_data
pvremove /dev/sdb1

9.4 RAID 磁盘阵列

# 创建 RAID(使用 mdadm)
mdadm -C /dev/md0 -l 5 -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1

# 查看 RAID 状态
cat /proc/mdstat
mdadm -D /dev/md0

# 停止 RAID
mdadm -S /dev/md0

十、Vim 编辑器

Vim 三种模式:命令模式编辑模式末行模式

操作说明
i进入编辑模式(光标前插入)
a进入编辑模式(光标后插入)
o下方新建一行进入编辑模式
Esc返回命令模式
:w保存
:q退出
:wqZZ保存并退出
:q!强制退出不保存
/keyword搜索关键字
dd删除当前行
yy复制当前行
p粘贴
u撤销
ctrl+r重做
:set nu显示行号
gg跳到文件开头
G跳到文件末尾

十一、综合最佳实践

  1. 最小权限原则:使用普通用户操作,必要时通过 sudo 提权
  2. 定期备份:关键配置文件定期备份到安全位置
  3. 日志监控:使用 journalctl 查看系统日志,tail -f /var/log/messages 实时监控
  4. 防火墙配置:使用 firewalld 管理防火墙规则
  5. SELinux 配合:防火墙与 SELinux 双重防护
  6. 软件更新:定期 dnf update 保持系统安全更新

← #003 企业网络综合实验…#005 Ansible 自动化运维… →