Linux 文件特殊权限位(SUID、SGID、Sticky Bit)的应用
Linux 文件特殊权限位(SUID、SGID、Sticky Bit)是对基础 rwx 权限的扩展,用于解决特定场景的权限控制需求。以下是详细解析及典型应用场景举例:
⚙️ 一、特殊权限详解
1. SUID(Set User ID)
作用对象:可执行文件(二进制程序或脚本)。
关键行为:用户执行文件时,临时获得文件所有者的权限(而非执行者自身权限)。
设置方法:
- 符号模式:
chmod u+s file - 数字模式:
chmod 4xxx file(如4755)。
- 符号模式:
显示规则:
- 所有者的执行位显示为
s(若原无x权限则显示大写S)。
- 所有者的执行位显示为
2. SGID(Set Group ID)
作用对象:
- 文件:执行时临时获得文件所属组权限。
- 目录:新创建的文件/目录自动继承目录的所属组。
设置方法:
- 符号模式:
chmod g+s dir - 数字模式:
chmod 2xxx dir(如2770)。
- 符号模式:
显示规则:
- 所属组的执行位显示为
s(若原无x权限则显示大写S)。
- 所属组的执行位显示为
3. Sticky Bit(粘滞位)
作用对象:目录。
关键行为:目录内的文件仅所有者、root 或目录所有者可删除/重命名(即使其他用户有写权限)。
设置方法:
- 符号模式:
chmod +t dir - 数字模式:
chmod 1xxx dir(如1777)。
- 符号模式:
显示规则:
- 其他人的执行位显示为
t(若原无x权限则显示大写T)。
- 其他人的执行位显示为
️ 二、应用场景举例
1. SUID 场景:提权执行特权操作
- 典型案例:
/usr/bin/passwd- 普通用户需修改
/etc/shadow(仅 root 可写),通过 SUID 让passwd命令以 root 权限运行:chmod u+s /usr/bin/passwd # 权限显示为 -rwsr-xr-x 。
- 安全风险:避免对 Shell 脚本或高危命令(如
chmod、bash)设置 SUID。
- 普通用户需修改
2. SGID 场景:协作目录的组权限继承
- 典型案例:团队共享目录
/project- 设置 SGID 确保新文件自动归属项目组,方便成员协作:
mkdir /project
chgrp developers /project # 目录属组设为开发组
chmod g+s /project # 权限显示为 drwxrwsr-x 。
- 效果:用户
Alice在/project创建文件时,文件属组自动为developers,而非Alice的主组。
- 设置 SGID 确保新文件自动归属项目组,方便成员协作:
3. Sticky Bit 场景:安全公共目录
- 典型案例:系统临时目录
/tmp- 所有用户可创建文件,但仅能删除自己的文件:
chmod +t /tmp # 权限显示为 drwxrwxrwt 。
- 适用场景:
- 上传目录(如
/var/www/uploads),防止用户误删他人文件。 - 共享日志目录,确保进程仅管理自身日志。
- 上传目录(如
- 所有用户可创建文件,但仅能删除自己的文件:
三、安全实践与注意事项
最小权限原则:
- 避免滥用 SUID/SGID,仅限必要程序(如
passwd、sudo)。 - 禁用危险命令的 SUID(如
chmod u-s /bin/bash)。
- 避免滥用 SUID/SGID,仅限必要程序(如
定期审计:
# 查找 SUID/SGID 文件
find / -perm -4000 -type f 2>/dev/null # SUID
find / -perm -2000 -type f 2>/dev/null # SGID
# 查找 Sticky Bit 目录
find / -perm -1000 -type d 2>/dev/null 。
结合 ACL 增强控制:
- 若需为多用户/组精细授权,使用 ACL 替代 SGID:
setfacl -d -m g:developers:rwx /project # 目录中新文件继承组权限。
- 若需为多用户/组精细授权,使用 ACL 替代 SGID:
四、总结对比表
| 权限 | 作用对象 | 数字值 | 符号表示 | 关键行为 | 典型应用 |
|---|---|---|---|---|---|
| SUID | 可执行文件 | 4xxx |
u+s |
以文件所有者权限运行 | passwd 命令 |
| SGID | 文件/目录 | 2xxx |
g+s |
文件:以所属组运行 目录:新文件继承组 |
共享开发目录 |
| Sticky Bit | 目录 | 1xxx |
+t |
仅所有者/root 可删除文件 | /tmp 目录 |
注:
xxx为基础权限的八进制值(如755)。
合理运用特殊权限能在保障安全的前提下提升系统灵活性,但需严格遵循最小权限原则并定期审计 。
Linux 文件特殊权限位(SUID、SGID、Sticky Bit)的应用的更多相关文章
- linux文件权限位SUID,SGID,sticky的设置理解
SUID含义:文件的该位被设置为1,在该文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来 执行这个文件,他都有文件所有者的特权,如果所有者是root的话,那么执行人就有超 ...
- linux系统特殊权限位 suid、sgid、sticky
linux系统特殊权限位 suid.sgid.stickysuid 使任意用户获得用文件属主相同的权限,sgid使用户获得与文件属组相同的权限(通过sgid获得的权限等同于同一用户组的权限) 表示方法 ...
- 再次学习linux文件特殊权限:SUID、SGID、Sticy Bit
以前对于文件管理的认识只限于UGO的管理,对于特殊权限的学习还是一知半解.重新学习了一遍,我自己理解的东东记录一下. 首先,列一下SUID.SGID.Sticy Bit所代表的权限数值.就好像rwx分 ...
- Linux之特殊权限(SUID/SGID/SBIT)
特殊权限的介绍 Set UID 当s这个标志出现在文件所有者的x权限上时,如/usr/bin/passwd这个文件的权限状态:“-rwsr-xr-x.”,此时就被称为Set UID,简称为SUID.那 ...
- Linux特殊权限位suid、sgid深度详细及实践
特殊权限位基本说明: Linux系统基本权限位为9位权限,但还有额外3位权限位,共12位权限: suid s(有x) S 4 用户对应的权限位(用户对应的3位上) sgid ...
- Linux 文件特殊权限详解[suid/sgid/t]
setuid(suid): 针对命令和二进制程序的,当普通用户执行某个(passwd)命令的时候,可以拥有这个命令对应用户的权限, 即让普通用户可以以root用户的角色执行程序或命令. setgid( ...
- linux特殊权限位suid
特殊权限位基本说明(了解): linux系统基本权限位为9位权限,但还有额外3位权限位,共12位权限: suid s(x) S 4 用户对应的权限位(用户对应的3位 ...
- 文件的特殊权限(SUID,SGID,SBIT)
文件的一般权限:r w x 对应 421 文件的特殊权限:SUID SGID SBIT对应 421 文件的隐藏权限:chattr设置隐藏权限,lsattr查看文件的隐藏权限. 文件访问控制列表: ...
- linux基础2-cd、mkdir、touch、umask、chattr、lsattr、SUID/SGID/Sticky Bit
一 cd : . 代表当前目录 .. 代表上一层目录 - 代表前一个工作目录 ~ 代表[目前用户身份]所在的自家目录 与cd效果相同 ~account 代表 account 这个用户的自家家目录 二m ...
- SUID,SGID,Sticky Bit详解(转)
SUID属性 passwd命令可以用于更改用户的密码,一般用户可以使用这个命令修改自己的密码.但是保存用户密码的/etc/shadow文件的权限是400,也就是说只有文件的所有者root用户可以写入, ...
随机推荐
- WPF placeHolder效果的样式设定
<UserControl x:Class="wpfTestStudio.textPlaceHolderDemo" xmlns="http://schemas.mic ...
- Plotting and visualization through matplotlib and pandas
Plotting and visualization through matplotlib and pandas %matplotlib notebook import matplotlib.pypl ...
- codeup之字符串比较
Description 比较两个字符串s1和s2的大小,如果s1>s2,则输出一个正数:若s1=s2,则输出0:若s1<s2,则输出一个负数. 要求:不用strcpy函数:两个字符串用ge ...
- IDEA主题下载仓库地址
拿去,不多BB https://plugins.jetbrains.com/search?tags=Theme
- 企业AI应用模式解析:从本地部署到混合架构
在人工智能快速发展的今天,企业如何选择合适的大模型应用方式成为了一个关键问题.本文将详细介绍六种主流的企业AI应用模式,帮助您根据自身需求做出最优选择. 1. 本地部署(On-Premise Depl ...
- 实战干货|Spark 在袋鼠云数栈的深度探索与实践
Spark 是一个快速.通用.可扩展的大数据计算引擎,具有高性能.易用.容错.可以与 Hadoop 生态无缝集成.社区活跃度高等优点.在实际使用中,具有广泛的应用场景: · 数据清洗和预处理:在大数据 ...
- 基于 C# 编写的轻量级工控网关和 SCADA 组态软件
前言 今天大姚给大家分享一个基于 C# 编写.开源(LGPL-3.0 license)的轻量级工控网关和 SCADA 组态软件:SharpSCADA. 项目介绍 SharpSCADA是一个基于 C# ...
- CentOS云服务器WordPress搭建(BT.CN)
该随笔为大学时期的建站记录,图片等等,由于域名到期,七牛云回收资源,图床失效等等,已无法考究,语雀也没法恢复文档,仅作为参考用. 此教程适用于国内的建站,英文外贸建站请移步购买位于国外的服务器[外贸建 ...
- C# 关于MD5CryptoServiceProvider 过期问题解决
MD5 x = new System.Security.Cryptography.MD5CryptoServiceProvider();使用 MD5 md5 = MD5.Create()
- MySQL 09 普通索引和唯一索引,应该怎么选择?
唯一索引:字段值不能重复. 普通索引:字段值可以重复. 假设数据如下图,且字段k上的值都不重复: 接下来,从两种索引对查询语句和更新语句的性能影响来分析. 查询过程 假设查询语句为select id ...