当前位置: 首页 > news >正文

Linux 特殊权限详解(SUID / SGID / Sticky Bit)

在 Linux 的权限体系中,基础rwx只能解决“谁能读写执行”,但无法覆盖一些更复杂的场景,例如:

  • 需要“临时以文件所有者身份执行”

  • 需要“目录内文件自动继承组”

  • 需要“共享目录禁止互删”

于是引入了三种特殊权限位:

SUID / SGID / Sticky Bit


一、SUID(Set User ID)

1. 核心定义(一句话)

执行文件时,以文件所有者身份运行进程


2. 权限表现

-rwsr-xr-x root root /usr/bin/passwd

重点:

  • s出现在 user 权限位

  • 表示 SUID 生效


3. 行为机制(非常重要)

当普通用户执行程序:

项目
Real UIDuserA
Effective UIDroot
文件所有者root

👉 关键点:

进程权限由 EUID 决定,而不是实际用户


4. 典型用途

系统级工具:

  • /usr/bin/passwd(修改/etc/shadow

  • mount

  • ping(早期版本)


5. 安全本质(重点)

SUID 本质是:

权限提升通道

风险来源:

  • shell 调用

  • PATH 劫持

  • 环境变量污染

  • 可写配置文件

生产结论:

SUID = 高风险设计(必须极度克制)


6. 设置方式

chmod u+s file chmod 4755 file

二、SGID(Set Group ID)

SGID 分两种语义:文件 & 目录(重点是目录)


2.1 SGID(作用于文件)

行为:

执行文件时,进程 GID = 文件所属组

实际使用较少,主要用于特定共享工具。


2.2 SGID(作用于目录 ⭐生产重点)

1. 核心定义

在该目录下创建的文件,自动继承目录的 group


2. 示例

chmod g+s /data/shared

表现:

drwxrwsr-x

s出现在 group 位


3. 行为机制

假设:

  • 目录 group = www

  • 用户 userA 创建文件

结果:

文件 group = www(自动继承)

4. 典型场景

  • Web 目录(www-data / nginx)

  • 团队共享目录

  • CI/CD 构建目录


5. 关键价值

SGID 解决的是:

“多人协作时 group 不一致问题”

否则需要手动 chgrp,非常容易出错。


三、Sticky Bit(粘滞位)


1. 核心定义

目录中用户只能删除自己创建的文件


2. 典型目录

/tmp

权限:

drwxrwxrwt

t表示 sticky bit


3. 行为规则(非常关键)

在 sticky 目录中:

用户能否删除他人文件
文件所有者
root
其他用户

4. 为什么必须存在?

如果没有 sticky bit:

  • /tmp= 777

  • 任意用户可以删所有人文件

  • 系统直接不可用


5. 设置方式

chmod +t dir chmod 1777 dir

四、三者对比(核心理解表)

特性作用对象行为本质
SUID文件以 owner 身份执行临时提权
SGID文件/目录继承 group / 执行组权限协作控制
Sticky Bit目录限制删除权限防互删

五、权限位在 Linux 中的编码

权限八进制
SUID4000
SGID2000
Sticky1000

示例组合

chmod 2755 dir # SGID chmod 4755 file # SUID chmod 1777 tmp # Sticky

六、真实生产理解模型(非常重要)

可以用一句话理解三者:


SUID:权限“借用”

我执行程序,但借用文件主人的身份


SGID:权限“继承”

我在这个目录创建的东西自动归某个组


Sticky Bit:权限“保护”

这个地方可以共享,但不能互相破坏


七、常见误区(生产踩坑点)

❌ 误区1:SUID = 安全功能

实际上:

SUID 是安全风险入口


❌ 误区2:SGID 只用于执行

实际上:

80% 场景是目录继承


❌ 误区3:Sticky Bit 没用

实际上:

是 /tmp 安全模型核心


总结

Linux 三大特殊权限本质是三种控制模型:

  • SUID →身份切换(提权)

  • SGID →组继承(协作)

  • Sticky →删除约束(保护)

http://www.jsqmd.com/news/1116496/

相关文章:

  • 从零到一构建推理栈,ROCm 七点零全套工具链安装清单
  • 终极指南:使用WorkshopDL免费下载Steam创意工坊模组
  • AI大跃进:当狂热取代理性,我们正在重蹈覆辙?
  • 直流有刷电机高效驱动方案:TC78H653FTG与CEC1302解析
  • 基于KMX63与PIC18F4685的6DOF手势交互系统开发
  • 【毕业设计】SpringBoot+Vue+MySQL 物业管理系统平台源码+数据库+论文+部署文档
  • C++20:Coroutines实践(下):巧用异步文件操作库
  • STM32与KMX63实现高精度运动感知与手势控制
  • WzComparerR2:解密冒险岛游戏资源的终极指南与实用工具
  • ICM-42688-P六轴IMU与TM4C1294微控制器的工业应用解析
  • CBCX外汇服务节奏顺手吗?清楚吗?
  • 基于TB9051FTG和PIC18F96J94的静音直流电机控制方案
  • 如何用Ollama+OpenWebUI本地部署Qwen2大模型
  • 跨越设计与开发鸿沟:HTML转Figma工具的技术实现与应用实践
  • OpenAI token成本预估:用tiktoken精准控制API费用
  • system_server或Zygote进程死亡后,Zygote fork出的app子进程销毁流程
  • 告别论文多工具内耗:okbiye 一体化毕业论文创作工作台,一站式搞定全学段学位文稿
  • Obsidian高效笔记的终极神器:Templater插件完全指南
  • 6DoF运动追踪技术解析与IIM-42652 IMU应用实践
  • 从零部署到实战:深度解析CyberStrikeAI自动化安全测试平台
  • Si5351A时钟发生器与PIC18F25K80的硬件协同设计
  • VMPDump终极指南:如何快速破解VMProtect保护的Windows程序
  • 13DOF传感器与PIC18F26K80实现高性价比定位导航方案
  • 开源商城系统如何选?不同企业场景对应不同商城源码,一篇看懂市面上众多开源商城项目
  • 用过才敢说!盘点2026年当红之选的AI论文网站
  • 6DoF运动跟踪技术:从IMU到姿态解算的工程实践
  • 3分钟掌握WPS-Zotero插件:告别繁琐文献管理,提升学术写作效率80%
  • 华为云WAF实战:精准防御SQL注入与XSS攻击
  • 高效电机驱动系统设计与TC78H660FTG应用
  • Python爬虫经典案例第45篇:电子书网站爬取——Project Gutenberg电子书采集实战