学习黑客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的学习中,这些知识将帮助你解决许多挑战,特别是权限提升类的题目。

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


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

相关推荐
coder_lorraine3 分钟前
【Linux系列】Linux用户大揭秘:从“公寓住户”到“社区管理员”的奇幻之旅
linux
程序猿tu26 分钟前
Axios学习笔记
笔记·学习
藥瓿锻35 分钟前
2024 CKA题库+详尽解析| 15、备份还原Etcd
linux·运维·数据库·docker·容器·kubernetes·cka
bbsh209944 分钟前
WebFuture:Ubuntu 系统上在线安装.NET Core 8 的步骤
linux·ubuntu·.netcore·webfuture
ZZZKKKRTSAE1 小时前
快速上手Linux全局搜索正则表达式(grep)
linux·服务器·正则表达式
有谁看见我的剑了?1 小时前
stress 服务器压力测试的工具学习
服务器·学习·压力测试
有谁看见我的剑了?1 小时前
stress-ng 服务器压力测试的工具学习
服务器·学习·压力测试
珹洺1 小时前
数据库系统概论(十七)超详细讲解数据库规范化与五大范式(从函数依赖到多值依赖,再到五大范式,附带例题,表格,知识图谱对比带你一步步掌握)
java·数据库·sql·安全·oracle
牛奶咖啡132 小时前
学习设计模式《十二》——命令模式
学习·设计模式·命令模式·队列请求·宏命令·可撤销恢复操作·参数化配置
余厌厌厌2 小时前
go语言学习 第9章:映射(Map)
服务器·学习·golang