【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/用户名,默认组与用户名同名)useraddtest1# 进阶创建(指定家目录、注释、过期时间,考试常考)useradd-d/home/aue-c"my first user"-e2034-12-01 test1# 说明:-d 指定家目录,-c 注释信息,-e 账号过期时间(格式 YYYY-MM-DD)2.4 设置用户密码(passwd 命令)
创建用户后必须设置密码才能登录,两种方式任选:
# 交互设置(按提示输入两次密码,推荐,更安全)passwdtest1# 免交互设置(适合脚本或批量操作,直接复制运行)echo"test1"|passwd--stdintest12.5 修改用户属性(usermod 命令)
修改已创建用户的信息,考试高频考点,重点记选项:
usermod-c"新注释"用户名# 修改用户备注(如 usermod -c "student" test1)usermod-e2034-12-01 用户名# 修改账号过期时间usermod-l新用户名 旧用户名# 修改用户名(如 usermod -l lily test3)usermod-u1900用户名# 修改用户 UID(如 usermod -u 1900 lily)usermod-L用户名# 锁定用户(禁止登录,如 usermod -L test1)usermod-U用户名# 解锁用户(允许登录)usermod-f10用户名# 密码过期 10 天后禁用账号2.6 删除用户(userdel 命令)
userdel用户名# 删除用户,保留家目录(不推荐,会残留文件)userdel-r用户名# 删除用户 + 家目录(彻底删除,推荐,如 userdel -r test1)三、用户组管理(批量权限控制,高效运维)
用户组用于批量管理用户权限,将多个用户加入同一个组,可统一分配权限,避免逐个设置,提升效率。
# 1. 创建用户组groupaddgroup1# 创建普通用户组(默认 GID 自增)groupadd-g1006group1# 指定 GID 创建组(考试常考,如 -g 1006)groupadd-rgroup2# 创建系统组(GID 1–999,用于服务运行)# 2. 修改用户组属性groupmod-n新组名 旧组名# 修改组名(如 groupmod -n grouptest group1)groupmod-g1866组名# 修改组 GID(如 groupmod -g 1866 grouptest)# 3. 删除用户组(需确保组内无用户,否则无法删除)groupdelgroup1# 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=其他人,+增加、-删除、=赋值)chmodu+x 文件名# 给属主增加执行权限chmodg-w 文件名# 给属组删除写权限chmodo=r 文件名# 给其他人赋值只读权限# 2. 数字方式(最常用,直接输入权限值)chmod755文件名# 属主 rwx(7)、属组 r-x(5)、其他人 r-x(5)(目录常用)chmod644文件名# 属主 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 命令)。
命令:
chmodu+s 文件名# 给文件添加 SUID 权限chmod4755文件名# 数字方式(4 代表 SUID,叠加普通权限 755)5.2 SGID(2xxx)
作用:目录内新建的文件/目录,自动继承该目录的属组(用于团队协作,批量共享权限)。
命令:
chmodg+s 目录# 给目录添加 SGID 权限chmod2755目录# 数字方式(2 代表 SGID,叠加普通权限 755)5.3 SBIT(1xxx)
作用:目录内的用户,只能删除自己创建的文件,不能删除他人文件(如 /tmp 目录默认有此权限)。
命令:
chmodo+t 目录# 给目录添加 SBIT 权限chmod1777目录# 数字方式(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-mu:用户名:权限 文件# 如 setfacl -m u:test1:rwx test.txt# 2. 给单个组授权setfacl-mg:组名:权限 文件# 如 setfacl -m g:group1:rw- test.txt# 3. 查看文件的 ACL 权限getfacl 文件# 如 getfacl test.txt# 4. 递归授权(给目录及目录下所有文件/子目录授权)setfacl-mu:用户:权限-R目录# 如 setfacl -m u:test1:rwx -R /home/test# 5. 默认 ACL(目录内新建的文件/目录,自动继承 ACL 权限)setfacl-md:u:用户:权限 目录# 如 setfacl -m d:u:test1:rwx /home/test九、实战实训任务(可直接复制运行,考试/实操必练)
结合以上知识点,做3个实战任务,巩固所有命令,直接复制到终端运行即可。
任务 1:创建 test1、test2 用户(基础实操)
# 创建 test1,指定注释、家目录、过期时间useradd-c"my first user"-d/home/aue-e2034-12-01 test1# 创建 test2,加入 test1 组(扩展组)useradd-c"my another user"-Gtest1 test2# 给两个用户设置密码passwdtest1passwdtest2# 锁定 test1 用户(禁止登录)usermod-Ltest1任务 2:创建 test3 并修改属性(高频考点)
# 创建 test3,指定家目录 /home/youuseradd-d/home/you test3# 创建 test4(默认配置)useraddtest4# 给两个用户设置密码(免交互)echotest3|passwd--stdintest3echotest4|passwd--stdintest4# 修改 test3 属性:注释、过期时间、密码策略、改名、改 UIDusermod-c"computer1"-e2034-01-01-f10-llily-u1900test3# 设置密码 60 天后必须修改(usermod 无此选项,用 chage 命令)chage-M60lily# 禁用 test4 用户(锁定)usermod-Ltest4# 彻底删除两个用户及家目录userdel-rlilyuserdel-rtest4任务 3:用户组创建与管理(实操练习)
# 创建 group1,指定 GID 1006groupadd-g1006group1# 创建系统组 group2groupadd-rgroup2# 查看创建结果(查看 /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 |