【Linux 实战全解】Vim 编辑器 + 用户_组管理 + 文件权限 + SUID_SGID_ACL 一站式通关
【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 |
更多推荐




所有评论(0)