【Linux 实战全解】Vim 编辑器 + 用户/组管理 + 文件权限 + SUID/SGID/ACL 一站式通关

适合人群:Linux 初学者、运维入门、期末考试、CentOS/RHEL 实操

阅读时长:8 分钟

文章风格:干货、命令可直接复制、考试/工作通用


前言

Linux 系统管理最核心的三件事:
会用 Vim、会管用户、会控权限。
这篇文章把 Vim 编辑器、用户/组管理、文件权限、特殊权限、sudo、ACL 精细权限 一次性讲透,全部带真实可运行命令,学完直接上手,不管是应付考试还是日常运维,都能直接套用!


一、Vim 编辑器:Linux 必备文本神器

Vim 是 Linux 系统默认的文本编辑器,也是运维、开发必备工具,熟练使用能让你的操作效率提升 10 倍,尤其是在无图形界面的服务器上,Vim 就是你的“记事本+编辑器”。

1.1 Vim 三大模式(必须掌握)

Vim 的核心是“模式切换”,打开 Vim 后默认进入命令模式,不同模式对应不同操作,切换逻辑一定要记牢:

  • 命令模式:打开 Vim 后默认进入,主要用于控制光标移动、复制、粘贴、删除、查找等操作,不允许直接输入文字。

  • 输入模式:用于正常录入文本,只有进入该模式才能打字。

  • 末行模式:用于保存文件、退出编辑器、查找替换、设置编辑环境等,需从命令模式进入。

模式切换方法
  • 命令模式 → 输入模式:按 i(光标处插入)、a(光标后插入)、o(光标下行插入新行)

  • 输入模式 → 命令模式:按 Esc 键(关键!随时可退回命令模式)

  • 命令模式 → 末行模式:按 :(英文冒号)

1.2 高频操作(直接背,不用记原理)

以下命令可直接复制到终端运行,适配所有 CentOS/RHEL 系统:

# 打开/保存/退出(末行模式/命令模式)
vim 文件名      # 打开或新建文件(如 vim test.txt)
:w              # 保存当前文件(末行模式输入)
:q              # 退出 Vim(末行模式输入,需先保存)
:wq             # 保存并退出(末行模式输入,最常用)
:q!             # 强制退出不保存(末行模式输入,放弃修改)
:r 文件名       # 读取其他文件内容到当前编辑区(如 :r /etc/passwd)

# 命令模式常用操作(无需输入冒号)
yy      # 复制当前行(光标所在行)
5yy     # 复制从当前行开始的 5 行(n yy 复制 n 行)
p       # 粘贴复制的内容(粘贴到光标下一行)
dd      # 删除当前行
5dd     # 删除从当前行开始的 5 行(n dd 删除 n 行)
u       # 撤销上一步操作(可多次撤销)
G       # 快速跳转到文件最后一行
15G     # 快速跳转到文件第 15 行(n G 跳转到第 n 行)
:set nu # 显示行号(末行模式,方便跳转和编辑)
:set nonu # 隐藏行号(末行模式)

1.3 查找与替换(高频需求)

编辑配置文件时,查找关键词、批量替换非常实用,命令如下:

/关键字    # 从光标位置向下查找指定关键字(如 /root)
n           # 跳转到下一个匹配的关键字
N           # 跳转到上一个匹配的关键字
:%s/旧内容/新内容/g      # 全文替换所有匹配内容(如 :%s/old/new/g)
:%s/旧内容/新内容/gc     # 全文替换,每次替换前提示确认(避免误改)

二、Linux 用户管理(核心考点,必掌握)

Linux 是多用户操作系统,每个用户都有独立的权限和身份,管理用户是运维的基础,也是考试高频考点。

2.1 Linux 用户分类(3类,记牢 UID 范围)

  • 超级用户(root):UID = 0,拥有系统最高权限,可执行任何命令,谨慎使用。

  • 系统用户:UID = 1–999,系统自带,用于运行服务(如 bin、daemon),不能登录系统。

  • 普通用户:UID ≥ 1000,由管理员创建,用于日常登录和操作,权限受限制。

2.2 核心配置文件(记住路径,考试常考)

  • /etc/passwd:保存所有用户的基本信息(用户名、UID、GID、家目录等),所有用户可读取。

  • /etc/shadow:保存用户的加密密码和有效期信息,只有 root 可读取(保障安全)。

  • /etc/group:保存所有用户组的信息,所有用户可读取。

2.3 创建用户(useradd 命令)

# 基础创建(默认家目录 /home/用户名,默认组与用户名同名)
useradd test1

# 进阶创建(指定家目录、注释、过期时间,考试常考)
useradd -d /home/aue -c "my first user" -e 2034-12-01 test1
# 说明:-d 指定家目录,-c 注释信息,-e 账号过期时间(格式 YYYY-MM-DD)

2.4 设置用户密码(passwd 命令)

创建用户后必须设置密码才能登录,两种方式任选:

# 交互设置(按提示输入两次密码,推荐,更安全)
passwd test1

# 免交互设置(适合脚本或批量操作,直接复制运行)
echo "test1" | passwd --stdin test1

2.5 修改用户属性(usermod 命令)

修改已创建用户的信息,考试高频考点,重点记选项:

usermod -c "新注释" 用户名   # 修改用户备注(如 usermod -c "student" test1)
usermod -e 2034-12-01 用户名 # 修改账号过期时间
usermod -l 新用户名 旧用户名 # 修改用户名(如 usermod -l lily test3)
usermod -u 1900 用户名       # 修改用户 UID(如 usermod -u 1900 lily)
usermod -L 用户名            # 锁定用户(禁止登录,如 usermod -L test1)
usermod -U 用户名            # 解锁用户(允许登录)
usermod -f 10 用户名         # 密码过期 10 天后禁用账号

2.6 删除用户(userdel 命令)

userdel 用户名        # 删除用户,保留家目录(不推荐,会残留文件)
userdel -r 用户名     # 删除用户 + 家目录(彻底删除,推荐,如 userdel -r test1)

三、用户组管理(批量权限控制,高效运维)

用户组用于批量管理用户权限,将多个用户加入同一个组,可统一分配权限,避免逐个设置,提升效率。

# 1. 创建用户组
groupadd group1            # 创建普通用户组(默认 GID 自增)
groupadd -g 1006 group1    # 指定 GID 创建组(考试常考,如 -g 1006)
groupadd -r group2         # 创建系统组(GID 1–999,用于服务运行)

# 2. 修改用户组属性
groupmod -n 新组名 旧组名  # 修改组名(如 groupmod -n grouptest group1)
groupmod -g 1866 组名      # 修改组 GID(如 groupmod -g 1866 grouptest)

# 3. 删除用户组(需确保组内无用户,否则无法删除)
groupdel group1

# 4. 将用户加入组(批量授权核心)
gpasswd -a 用户名 组名     # 将用户加入指定组(如 gpasswd -a test1 group1)

四、文件权限与归属(必考,重中之重)

Linux 中所有文件/目录都有权限和归属,权限控制谁能操作,归属控制属于哪个用户/组,是系统安全的核心。

4.1 权限基础(3类权限 + 3类归属)

  • 归属分类:属主(u)→ 文件所有者、属组(g)→ 文件所属组、其他人(o)→ 既不是属主也不是属组成员的用户。

  • 权限符号:读(r=4)、写(w=2)、执行(x=1),权限值可叠加(如 rwx=4+2+1=7)。

4.2 查看权限(ls -l 命令)

ls -l 文件名  # 查看文件权限和归属(如 ls -l /etc/passwd)

示例输出:-rwxr-xr--,拆解如下:

  • 第1位 -:文件类型(- 普通文件、d 目录、l 链接)

  • 第2-4位 rwx:属主权限(可读、可写、可执行)

  • 第5-7位 r-x:属组权限(可读、可执行,不可写)

  • 第8-10位 r--:其他人权限(只读)

4.3 修改权限(chmod 命令,最常用)

两种方式:字符方式(易理解)、数字方式(高效,推荐)

# 1. 字符方式(u=属主、g=属组、o=其他人,+增加、-删除、=赋值)
chmod u+x 文件名      # 给属主增加执行权限
chmod g-w 文件名      # 给属组删除写权限
chmod o=r 文件名      # 给其他人赋值只读权限

# 2. 数字方式(最常用,直接输入权限值)
chmod 755 文件名      # 属主 rwx(7)、属组 r-x(5)、其他人 r-x(5)(目录常用)
chmod 644 文件名      # 属主 rw-(6)、属组 r--(4)、其他人 r--(4)(文件常用)

4.4 修改归属(chown 命令)

chown 用户名 文件名        # 修改文件属主(如 chown test1 test.txt)
chown 用户名:组名 文件名  # 同时修改属主和属组(如 chown test1:group1 test.txt)

五、特殊权限:SUID / SGID / SBIT(进阶考点)

普通权限之外的特殊权限,用于解决特定场景下的权限问题,考试常考,记清作用和命令即可。

5.1 SUID(4xxx)

  • 作用:执行者临时拥有文件所有者的权限(仅对二进制程序生效,如 passwd 命令)。

  • 命令:

chmod u+s 文件名      # 给文件添加 SUID 权限
chmod 4755 文件名     # 数字方式(4 代表 SUID,叠加普通权限 755)

5.2 SGID(2xxx)

  • 作用:目录内新建的文件/目录,自动继承该目录的属组(用于团队协作,批量共享权限)。

  • 命令:

chmod g+s 目录        # 给目录添加 SGID 权限
chmod 2755 目录       # 数字方式(2 代表 SGID,叠加普通权限 755)

5.3 SBIT(1xxx)

  • 作用:目录内的用户,只能删除自己创建的文件,不能删除他人文件(如 /tmp 目录默认有此权限)。

  • 命令:

chmod o+t 目录        # 给目录添加 SBIT 权限
chmod 1777 目录       # 数字方式(1 代表 SBIT,叠加普通权限 777)

六、文件隐藏权限(防误删,实用技巧)

隐藏权限无法通过 ls -l 查看,用于保护重要文件(如配置文件),避免误删除或修改。

chattr +a 文件名  # 给文件添加“只能追加”权限(不能删除、不能修改,仅能追加内容)
chattr +i 文件名  # 给文件添加“不可修改”权限(完全锁定,不能删、改、追加,root 也需先取消)
lsattr 文件名     # 查看文件的隐藏权限(必须用此命令,否则看不到)

七、su 切换用户与 sudo 提权(日常运维必备)

日常工作中,不建议直接用 root 登录(风险高),常用 su 切换用户或 sudo 提权,既安全又高效。

7.1 su 切换用户

su - 用户名  # 完全切换到目标用户(加载该用户的环境变量,推荐,如 su - root)
su 用户名    # 不完全切换(仅切换身份,不加载环境变量,不推荐)

7.2 sudo 提权(推荐,更安全)

普通用户通过 sudo 可临时执行 root 权限的命令,无需知道 root 密码,且操作可审计。

visudo  # 编辑 sudo 配置文件(必须用此命令,自动语法检查,避免出错)

# 配置格式(添加到文件末尾,替换“用户名”为实际用户名)
用户名  ALL=(ALL)  ALL                # 该用户可执行所有 root 命令(需输入自身密码)
用户名  ALL=(ALL)  NOPASSWD:ALL       # 免密执行所有 root 命令(方便,但略不安全)

八、ACL 精细权限控制(进阶,灵活授权)

chmod 只能给属主、属组、其他人授权,ACL 可给单个用户/单个组单独授权,更灵活(适合多用户协作场景)。

# 1. 给单个用户授权
setfacl -m u:用户名:权限  文件   # 如 setfacl -m u:test1:rwx test.txt

# 2. 给单个组授权
setfacl -m g:组名:权限    文件   # 如 setfacl -m g:group1:rw- test.txt

# 3. 查看文件的 ACL 权限
getfacl 文件                      # 如 getfacl test.txt

# 4. 递归授权(给目录及目录下所有文件/子目录授权)
setfacl -m u:用户:权限 -R 目录    # 如 setfacl -m u:test1:rwx -R /home/test

# 5. 默认 ACL(目录内新建的文件/目录,自动继承 ACL 权限)
setfacl -m d:u:用户:权限 目录     # 如 setfacl -m d:u:test1:rwx /home/test

九、实战实训任务(可直接复制运行,考试/实操必练)

结合以上知识点,做3个实战任务,巩固所有命令,直接复制到终端运行即可。

任务 1:创建 test1、test2 用户(基础实操)

# 创建 test1,指定注释、家目录、过期时间
useradd -c "my first user" -d /home/aue -e 2034-12-01 test1
# 创建 test2,加入 test1 组(扩展组)
useradd -c "my another user" -G test1 test2
# 给两个用户设置密码
passwd test1
passwd test2
# 锁定 test1 用户(禁止登录)
usermod -L test1

任务 2:创建 test3 并修改属性(高频考点)

# 创建 test3,指定家目录 /home/you
useradd -d /home/you test3
# 创建 test4(默认配置)
useradd test4
# 给两个用户设置密码(免交互)
echo test3 | passwd --stdin test3
echo test4 | passwd --stdin test4

# 修改 test3 属性:注释、过期时间、密码策略、改名、改 UID
usermod -c "computer1" -e 2034-01-01 -f 10 -l lily -u 1900 test3
# 设置密码 60 天后必须修改(usermod 无此选项,用 chage 命令)
chage -M 60 lily

# 禁用 test4 用户(锁定)
usermod -L test4

# 彻底删除两个用户及家目录
userdel -r lily
userdel -r test4

任务 3:用户组创建与管理(实操练习)

# 创建 group1,指定 GID 1006
groupadd -g 1006 group1
# 创建系统组 group2
groupadd -r group2
# 查看创建结果(查看 /etc/group 末尾)
tail /etc/group

十、总结(一张图记住所有重点,考试/实操不丢分)

核心知识点浓缩,记牢以下4点,Linux 基础管理直接通关:

  • Vim:三大模式 + 复制删除 + 保存退出 + 查找替换(核心是模式切换)

  • 用户:创建(useradd)→ 设密码(passwd)→ 修改(usermod)→ 删除(userdel)

  • :创建(groupadd)→ 修改(groupmod)→ 删除(groupdel)→ 加用户(gpasswd -a)

  • 权限:查看(ls -l)→ 修改权限(chmod)→ 修改归属(chown)→ 特殊权限 + ACL

本文所有命令均在 CentOS 7/8/9、RedHat 9 中测试通过,可直接复制运行,建议收藏备用,后续运维、考试直接套用!


文末福利

需要 Linux 命令速查表(PDF 高清版) 的同学,评论区扣 1,我发你完整版,包含本文所有命令+更多运维高频命令,打印出来随时看!


速查表核心内容预览(PDF完整版含全部细节)

命令分类 核心命令 作用说明 常用示例
Vim 编辑器 vim 文件名 打开/新建文件 vim test.txt
:w / :q / :wq 保存 / 退出 / 保存退出 :wq 保存并退出编辑
yy / dd / p 复制 / 删除 / 粘贴 5yy 复制5行,p粘贴
/关键字 向下查找关键字 /root 查找root关键字
:%s/旧/新/g 全文替换 :%s/old/new/g 替换所有old为new
:set nu 显示行号 :set nu 开启行号显示
用户管理 useradd 用户名 创建用户 useradd -d /home/test test1
passwd 用户名 设置用户密码 echo “123”
usermod 选项 用户名 修改用户属性 usermod -l lily test3(改名)
userdel -r 用户名 彻底删除用户 userdel -r test1
用户组管理 groupadd 组名 创建用户组 groupadd -g 1006 group1
groupmod -n 新组名 旧组名 修改组名 groupmod -n grouptest group1
gpasswd -a 用户名 组名 将用户加入组 gpasswd -a test1 group1
文件权限 ls -l 文件名 查看权限与归属 ls -l /etc/passwd
chmod 数字/字符 文件名 修改权限 chmod 755 test.txt
chown 用户名:组名 文件名 修改归属 chown test1:group1 test.txt
chattr +i 文件名 设置隐藏权限 chattr +i test.txt(不可修改)
进阶权限 chmod 4755 文件名 添加SUID权限 chmod 4755 /usr/bin/passwd
chmod 2755 目录 添加SGID权限 chmod 2755 /home/groupdir
setfacl -m u:用户名:权限 文件 ACL授权 setfacl -m u:test1:rwx test.txt
visudo 编辑sudo配置 visudo 配置用户sudo权限
基础运维命令 ls 列出目录内容 ls -la /home(显示隐藏文件)
cd 目录 切换目录 cd /var/www
cp 源文件 目标文件 复制文件 cp test1.txt test2.txt
mv 源文件 目标文件 移动/重命名 mv old.txt new.txt
tar -czvf 压缩包 目录 打包解压 tar -czvf test.tar.gz /home/test
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐