一、 前言
在上一章我们探索了 Kali 的文件系统。虽然文中没有提到过,但是你可能发现,有些文件你能直接打开,有些则提示“权限不足”。
比如查看密码文件/etc/shadow,普通用户kali没有权限查看(Permission denied)

在 Linux 的世界里,权限决定了你是系统的主人还是过客。
作为渗透测试者,权限管理是你必须要打通的“任督二脉”:
二、 权限的 UGO 模型
在 Linux 中,每一个文件或目录都关联着三种身份:
U (User/Owner):文件的所有者(通常是创建者)。
G (Group):文件所属的用户组。
O (Others):除了上面两类之外的其他人。
为了复现功能我们需要先执行如下命令,至于什么意思,将会在2. 权限的数值化(八进制法)讲解
echo "执行了test.sh这个文件" > test.sh
chmod 754 test.sh

当你输入 ls -l 时,你会看到类似下方的输出:
– rwx r-x r– 1 root root 1234 Feb 3 20:00 test.sh

1. 权限位的详细拆解
这 10 个字符是理解 Linux 权限的钥匙:
| 第 1 位 | – / d / l | 文件类型(- 普通文件,d 目录,l 软链接) |
| 第 2-4 位 | rwx | 所有者 (User) 的权限:可读、可写、可执行 |
| 第 5-7 位 | r-x | 所属组 (Group) 的权限:可读、不可写、可执行 |
| 第 8-10 位 | r– | 其他人 (Others) 的权限:只读 |
上表的可读代表着,当前用户可以读取此文件,查看文件中包含什么内容;
可写表示当前用户可以编辑/修改此文件,在渗透测试中,如果你获取了目标系统的一台计算机的系统漏洞,但是关键文件你修改不了,你就不能通过这个漏洞获取目标系统的操作权限。
可执行,说明文件能执行,那么什么情况不能执行呢?
比如普通用户kali就不能执行所属主为root用户的文件,就会提示(permission denied),没有权限执行

但是我们能使用 cat 命令查看这个文件的内容,因为其他人 (Others),只能读取文件r–
cat test.sh

那么编辑呢?
vi test.sh

如上图,这个时候,就会提示我们这个文件是只读文件,我们没有办法编辑文件,随便输入两个1,并按Esc,输入:x保存文件,就会出现如下图提示,不允许我们编辑文件

我们需要提权到root权限,使用如下命令(需要输入kali用户的密码)
sudo -i

或者su root命令切换为 root 用户,此时输入的密码是 root 用户的密码,root 密码我这里为123456
su root

温馨提示:在输入密码的时候,是不会显示任何东西的,输入完密码后,直接回车就行
2. 权限的数值化(八进制法)
为了方便操作,Linux 使用数字来代表权限,这是每个渗透测试者必须背下来的“口诀”:
r (Read) = 4
w (Write) = 2
x (Execute) = 1
无权限 = 0
案例计算:
7 (4+2+1):读+写+执行
5 (4+0+1):读+执行
6 (4+2+0):读+写
权限 755 意味着:所有者全开 (7),组和其他人只能读和运行 (5)。
所以前面我们提到的

这个命令,就是所有者 (User) 的权限是7,对应着rwx,可读写执行;所属组 (Group) 的权限是5,相当于r-x,可读+执行;其他人 (Others) 的权限是4,那就是只能对应着r–读取的权限
记忆法则:
读取权限r的英文单词为read,翻译为阅读,主要记住阅读这个单词的第一个字母
写入权限w的英文单词为write,翻译为写入,也是记住第一个单词
执行权限x的英文为单词为execute,就这个特俗一点,需要记住第二个字母,也就是x
三、 权限操控三剑客:chmod, chown, chgrp
1. chmod
有两种修改方式:
数字模式:chmod 777 test.sh (风险操作:赋予所有人最高权限,可以读取r/写入w/执行x)。

符号模式:
chmod +x test.sh (给所有身份增加执行权)。为了查看效果,我们先将这个权限设置为最低权限000
chmod 000 test.sh

然后再执行这条命令
chmod +x test.sh

如上图,可以看到每个组中(所属主,所属组,其他用户)都赋予了执行的权限。也就是所有用户都能执行这个文件

chmod u-w test.sh (取消所有者的写入权)。

2. chown
在渗透中,如果你上传了一个后门文件,它默认属于你当前的用户。

有时你需要把它转交给 root 用户来隐藏踪迹:
命令格式:chown 用户名:组名 文件名
示例:
chown root:root test.sh

四、 核心实战
这是本章最值钱的知识点,当然在此我们只提一嘴,具体操作过程将会在后续的教程中写出,如果感兴趣的同学们可以通过此知识点,自行搜索相关的资料进行复现学习。
当普通权限无法满足系统运行的所有需求,于是有了特殊权限。
1. SUID (Set User ID)
特征:所有者的 x 位变成了小写的 s。
作用:普通用户运行该程序时,会临时以程序所有者(通常是 root)的身份运行。
渗透意义:如果你发现 find 或 vim 被设置了 SUID,你可以通过这些工具直接读取 /etc/shadow 或执行 root 命令。
2. Sticky Bit (粘滞位)
特征:其他人的 x 位变成了 t。
作用:典型例子是 /tmp。所有人都能创建文件,但你只能删除属于你自己的文件。
五、 专家视角
1. 目录权限
读 (r):决定你能不能 ls 看到里面的文件列表。
执行 (x):决定你能不能 cd 进入这个目录。
写 (w):决定你能不能在目录下删除或创建文件。
- 注意:即便你对某个文件有 777 权限,但如果你对它所在的目录没有 w 权限,你依然无法删除这个文件。
2. 寻找提权机会
当你拿到一个低权限 Shell 后,第一件事就是运行以下命令寻找 SUID 文件:
find / -perm -u=s -type f 2>/dev/null

这会列出系统中所有带有 SUID 权限的文件。作为专家,我会挨个检查里面有没有可以被利用的工具。
六、 案例补遗
在第四章中,我们提到 useradd 不会自动创建 /home 目录。如果你手动创建了目录,但新用户依然无法登录或报错,通常是因为权限不匹配:
# 错误示范:root创建的目录,普通用户没法写
mkdir /home/xiaozhi
# 正确补救:将目录的主人还给用户
chown -R xiaozhi:xiaozhi /home/xiaozhi
-R 参数表示递归修改,即把文件夹里的所有子文件也一并改过来。
七、 本章小结
权限管理不是死记硬背命令,而是理解“谁在什么情况下能做什么”。
UGO 是基础围栏。
数字 (755/644) 是配置语言。
SUID 是我们寻找提权突破口的“金钥匙”。
下一章我们将学习“Kali Linux 系统服务与进程监控”。有了权限,我们就有了查看系统后台的资格。我们将学习如何监控那些正在运行的秘密,以及如何管理 Kali 的各类服务。
五、🎯 网络安全学习资源推荐
觉得文章对你有帮助?想获取更多实战干货?
我们为你准备了一套 「从零到一的网络安全学习资料包」,包括:
- 🔥 红队攻防实战手册 – 内网渗透、漏洞利用、权限提升
- 📚 网络安全学习路线图 – 零基础入门到就业完整路径
- 💼 最新网络安全面试题 – 大厂真题+面试技巧
- 🛠️ 渗透测试工具包 – 常用工具+使用教程
- 🎯 靶场搭建全套方案 – DVWA、SQLi-Labs等实战环境
如何获取?
- 微信搜索公众号:[智榜样网络安全学习中心]
- 关注后添加老师微信
- 即可免费领取全套学习资料
💡 适合人群:网络安全初学者、转行人员、在校学生、想要提升实战能力的从业者
我们在网络安全培训领域深耕多年,专注红蓝对抗实战与就业指导,帮助数百名学员成功入行!




