学习黑客5 分钟读懂Linux Permissions 101

5 分钟读懂Linux Permissions 101是啥 🔐

大家好!今天我们来聊聊Linux权限系统,这是理解Linux安全的基础知识,特别是在网络安全学习中尤为重要。无论你是在TryHackMe上挑战各种CTF,还是想掌握系统管理基础,了解Linux权限都是必不可少的一步。让我们开始吧!😊

1. 为什么需要了解Linux权限?🤔

在Linux系统中,权限控制着:

  • 谁可以访问文件或目录
  • 他们可以对这些文件或目录做什么
  • 如何保护系统和用户数据安全

"了解权限是掌握Linux安全的第一步,也是在CTF挑战中提权的关键知识点。"

2. Linux权限基础概念 📚

Linux将文件访问权限分为三类用户:

  • 所有者(Owner) - 创建文件的用户
  • 用户组(Group) - 与文件关联的用户组
  • 其他人(Others) - 系统上的其他所有用户

对于每类用户,Linux定义了三种基本权限:

权限 符号 数字 对文件的影响 对目录的影响
读(Read) r 4 可以查看文件内容 可以列出目录内容
写(Write) w 2 可以修改文件内容 可以在目录中创建、删除文件
执行(Execute) x 1 可以执行文件 可以进入目录

3. 如何查看文件权限 👀

使用ls -l命令查看文件的详细信息,包括权限:

bash 复制代码
$ ls -l
-rwxr-xr-- 1 john developers 2048 May 9 14:23 script.sh

让我们解析上面的权限字符串:

复制代码
-rwxr-xr--
│││││││││
││││││││└─ 其他用户无权限
│││││││└── 其他用户无权限
││││││└─── 其他用户可读
│││││└──── 用户组可执行
││││└───── 用户组可读
│││└────── 用户组无写权限
││└─────── 所有者可执行
│└──────── 所有者可写
└───────── 所有者可读(如果是'd'则表示目录)

4. 权限表示方法 🔢

Linux权限有两种表示方法:符号法数字法

符号法:

用户类别 符号
所有者 u
用户组 g
其他人 o
所有用户 a
操作 符号
添加权限 +
移除权限 -
设置确切权限 =

例如:u+x表示给所有者添加执行权限

数字法(八进制):

每种权限都有对应的数字:

  • 读® = 4
  • 写(w) = 2
  • 执行(x) = 1

将每类用户的权限数字相加得到一个数字,如:

  • rwx = 4+2+1 = 7
  • r-x = 4+0+1 = 5
  • r-- = 4+0+0 = 4

5. 常见权限组合 🧩

权限 数字 符号表示 常见用途
7 rwx 完全控制 脚本、程序
6 rw- 读写权限 文本文件
5 r-x 读和执行 程序和目录
4 r-- 只读 配置文件
0 --- 无权限 敏感文件

最常见的组合:

  • 755 (rwxr-xr-x): 常用于目录和脚本
  • 644 (rw-r--r--): 常用于普通文件
  • 600 (rw-------): 私人文件
  • 777 (rwxrwxrwx): 所有人完全访问(不安全!⚠️)

6. 如何修改权限 🛠️

chmod命令

修改文件/目录权限的命令是chmod,有两种使用方式:

符号法

bash 复制代码
chmod u+x script.sh        # 给所有者添加执行权限
chmod g-w,o-r file.txt     # 从组移除写权限,从其他人移除读权限
chmod a+x program          # 给所有人添加执行权限

数字法

bash 复制代码
chmod 755 script.sh        # 设置所有者rwx,组和其他人r-x
chmod 600 private.key      # 设置所有者rw-,其他人无权限
chmod 644 document.txt     # 设置所有者rw-,其他人r--

chown和chgrp命令

修改文件所有者和组:

bash 复制代码
chown john file.txt        # 更改文件所有者为john
chown john:developers file.txt  # 同时更改所有者和组
chgrp developers file.txt  # 只更改文件的组

7. 特殊权限位 🌟

除了基本rwx权限外,Linux还有三种特殊权限:

特殊权限 符号 数字 作用
SUID s (在用户x位置) 4000 以文件所有者权限执行
SGID s (在组x位置) 2000 以文件所属组权限执行
Sticky t (在其他x位置) 1000 只有所有者能删除文件

例如:

bash 复制代码
chmod u+s /usr/bin/passwd  # 设置SUID位
chmod g+s /shared          # 设置SGID位
chmod +t /tmp              # 设置Sticky位
chmod 4755 program         # 数字法设置SUID

8. 在CTF中的应用 🏆

在TryHackMe和其他CTF平台上,理解权限对于提权至关重要:

  • 查找SUID文件:find / -perm -u=s -type f 2>/dev/null
  • 查找权限配置错误的文件:find / -type f -perm -o=w 2>/dev/null
  • 检查组权限:groupsid

9. 常见问题和解决方案 💡

问题 可能原因 解决方案
"Permission denied" 缺少执行或读权限 使用chmod +xchmod +r
无法删除文件 没有目录的写权限 检查目录权限,使用chmod +w
无法修改文件 缺少写权限 使用chmod +w
脚本不执行 缺少执行权限 使用chmod +x

10. 权限最佳实践 ✅

  • ✅ 遵循最小权限原则
  • ✅ 避免使用777权限
  • ✅ 定期审核关键文件权限
  • ✅ 使用用户组管理批量权限
  • ✅ 注意SUID程序的安全隐患
  • ✅ 设置合理的umask默认权限
  • ❌ 不要让敏感文件对其他用户可读
  • ❌ 不要过度使用sudo

11. 总结 📝

Linux权限系统是一个简单而强大的安全机制,理解它对于系统管理和安全渗透测试都至关重要。通过掌握:

  1. 三类用户:所有者、组、其他人
  2. 三种基本权限:读、写、执行
  3. 权限修改命令:chmod、chown、chgrp
  4. 特殊权限:SUID、SGID、Sticky bit

你已经掌握了Linux权限的基础知识!在TryHackMe的学习中,这些知识将帮助你解决许多挑战,特别是权限提升类的题目。

继续学习,不断尝试,你会在网络安全的道路上越走越远!🚀


希望这篇文章对你有所帮助!如果有任何问题,欢迎在评论区留言!💬

相关推荐
不知几秋1 小时前
数字取证-内存取证(volatility)
java·linux·前端
令狐前生2 小时前
设计模式学习整理
学习·设计模式
湘-枫叶情缘3 小时前
解构认知边界:论万能方法的本体论批判与方法论重构——基于跨学科视阈的哲学-科学辩证
科技·学习·重构·生活·学习方法
欧先生^_^4 小时前
Linux内核可配置的参数
linux·服务器·数据库
inputA4 小时前
【LwIP源码学习6】UDP部分源码分析
c语言·stm32·单片机·嵌入式硬件·网络协议·学习·udp
zizisuo5 小时前
面试篇:Spring Security
网络·数据库·安全
玉笥寻珍5 小时前
Web安全渗透测试基础知识之HTTP参数污染篇
网络·网络协议·安全·web安全·http
王RuaRua5 小时前
[数据结构]5. 栈-Stack
linux·数据结构·数据库·链表
曼岛_6 小时前
[架构之美]linux常见故障问题解决方案(十九)
linux·运维·架构