首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux文件的特殊权限[SUID&SGID&SBIT]

Linux文件的特殊权限[SUID&SGID&SBIT]

作者头像
张旭博客
发布于 2022-12-29 07:19:08
发布于 2022-12-29 07:19:08
2.3K00
代码可运行
举报
文章被收录于专栏:zxbkzxbk
运行总次数:0
代码可运行

在复杂多变的生产环境中,单纯设置文件的 rwx 权限无法满足我们对安全和灵活性的需求,因此便有了 SUID、SGID 与 SBIT 的特殊权限位。这是一种对文件权限进行设置的特殊功能,可以与一般权限同时使用,以弥补一般权限不能实现的功能。

其实,SUID、SGID 与 SBIT 也有对应的数字表示法,分别为 4、2、1。也就是说 777 还不是最大权限,最大权限应该是 7777,其中第 1 个数字代表的是特殊权限位。rwxr-xr-x 即 755,而 SBIT 特殊权限位是 1,则合并后的结果为 1755。 如果权限是“rwsrwSr--”呢?大写 S 表示原先没有执行权限,因此一般权限为 rwxrw-r--,将其转换为数字表示法后结果是 764。带有的 SUID 和 SGID特殊权限的数字法表示是 4 和 2,心算得出结果是 6,合并后的结果为 6764。

权限

数字表示

SBIT

1

SGID

2

SUID

4

SUID

SUID 是一种对二进制程序进行设置的特殊权限,能够让二进制程序的执行者临时拥有所有者的权限(仅对拥有执行权限的二进制程序有效)。

例如,所有用户都可以执行 passwd 命令来修改自己的用户密码,而用户密码保存在/etc/shadow 文件中。仔细查看这个文件就会发现它的默认权限是 000,也就是说除了 root 管理员以外,所有用户都没有查看或编辑该文件的权限。但是,在使用 passwd 命令时如果加上 SUID 特殊权限位,就可让普通用户临时获得程序所有者的身份,把变更的密码信息写入到 shadow 文件中。

查看 passwd 命令属性时发现所有者的权限由 rwx 变成了 rws,其中 x 改变成 s 就意味着该文件被赋予了 SUID 权限。如果原先权限位上没有 x 执行权限,那么被赋予特殊权限后将变成大写的 S。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# ls -l /etc/shadow
    ----------. 1 root root 1309 Sep 19 15:04 /etc/shadow
[root@servera ~]# ls -l /bin/passwd 
    -rwsr-xr-x. 1 root root 34512 Aug 12  2018 /bin/passwd

一定要小心这个权限,因为一旦某个命令文件被设置了 SUID 权限,就意味着凡是执行该文件的人都可以临时获取到文件所有者所对应的更高权限。因此,千万不要将 SUID 权限设置到 vim、cat、rm 等命令上面!!!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# chmod -R u+s /usr/sbin/reboot    #添加SUID权限
[root@servera ~]# chmod -R u-s /usr/sbin/reboot    #删除SUID权限

SGID

SGID 特殊权限有两种应用场景:

  • 当对二进制程序进行设置时,能够让执行者临时获取文件所属组的权限;
  • 当对目录进行设置时,则是让目录内新创建的文件自动继承该目录原有用户组的名称。

即在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# mkdir /test
[root@servera ~]# ls -l / | grep test
    drwxr-xr-x.   2 root root    6 Sep 24 22:08 test
[root@servera ~]# chmod -R 777 /test    #给所有者,所属组和其他人全部权限
[root@servera ~]# chmod -R g+s /test    #给属组添加继承属组权限
[root@servera ~]# ls -l / | grep test
    drwxrwsrwx.   2 root root    6 Sep 24 22:08 test

切换至普通用户在该目录中创建文件,并查看新创建文件是否会继承新创建的文件所在的目录的所属组名称:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[zhangxu@servera /]$ cd /test/
[zhangxu@servera test]$ touch zhangxumk
[zhangxu@servera test]$ ls -l
    -rw-rw-r--. 1 zhangxu root 0 Sep 24 22:13 zhangxumk

SBIT

SBIT 特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。

简单说当对某个目录设置了 SBIT 粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。

与前面所学的 SUID 和 SGID 权限显示方法不同,当目录被设置 SBIT 特殊权限位后,文件的其他用户权限部分的 x 执行权限就会被替换成 t 或者 T—原本有 x 执行权限则会写成 t,原本没有 x 执行权限则会被写成 T。

RHEL 8 系统中的/tmp 作为一个共享文件的目录,默认已经设置了 SBIT 特殊权限位,因此除非是该目录的所有者,否则无法删除这里面的文件。由下可知,/tmp 目录上的 SBIT 权限默认已经存在,这体现为“其他用户”权限字段的权限变为 rwt:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# ls -ld /tmp/
    drwxrwxrwt. 20 root root 4096 Sep 24 22:28 /tmp/

在以下情况下任何用户都可创建,删除,修改文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera ~]# mkdir /net
[root@servera ~]# chmod -R 777 /net
[root@servera ~]# ls -ld /net/
    drwxrwxrwx. 2 root root 6 Sep 24 22:34 /net/

添加 o+s 后,切换到普通用户下,删除这个由其他人创建的文件,这时就会发现,即便读、写、执行权限全开,但是由于 SBIT 特殊权限位的缘故,依然无法删除该文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@servera /]# chmod o+t /net
[root@servera /]# ls -ld /net/
drwxrwxrwt. 2 root root 19 Sep 24 22:40 /net/
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux 文件目录特殊权限设定(SUID,SGID,SBIT)
Linux文件及目录的权限设定,除了我们孰知的读写执行(rwx)之外,还有一些特殊的权限设定用来满足特定的目录。这些特殊权限的设定主要是SUID,SGID以及SBIT。这几个值并非一个单独的rwx,而是在文件或目录上的x权限上做动作,来达到实现文件或目录特殊权限的目的。本文主要描述这3个特殊权限的用法以及umask。
Leshami
2018/08/13
2.7K0
Linux 文件目录特殊权限设定(SUID,SGID,SBIT)
Linux 特殊权限 SUID,SGID,SBIT
setuid 和 setgid 分别是 set uid ID upon execution 和 set group ID upon execution 的缩写。我们一般会再次把它们缩写为 suid 和 sgid。它们是控制文件访问的权限标志(flag),它们分别允许用户以可执行文件的 owner 或 owner group 的权限运行可执行文件。
知忆
2021/06/19
9040
linux-文件权限与归属(包括 SUID、SIGD、SBIT)-隐藏属性-文件访问控制列表 ACL-(chown-chmod)在SIGD目录下
本文由刘遄老师的《Linux就该这么学》摘抄整理而成,写成博客方便自己后期查阅 该书非常棒,语言简练,通俗易懂,非常推荐,你可以点连接去学习~
suwanbin
2019/12/19
1.1K0
Linux文件特殊权限SUID、SGID与SBIT
Linux使用9个权限位来标识文件权限,三大权限分别是r、w、x(读、写、执行)。除此之外,还有特殊权限SUID,SGID,SBIT。
恋喵大鲤鱼
2019/03/04
4.4K0
Linux文件特殊权限SUID、SGID与SBIT
Linux文件权限与归属、文件的特殊权限、文件的隐藏属性
SUID是一种对二进制程序进行设置的特殊权限,可以让二进制的执行者临时拥有属主权限。
心跳包
2020/08/31
2.2K0
Linux的3种特殊权限场景实战:SUID、SGID、SBIT
在Linux系统中,有3种特殊权限,它们分别是Setuid(SUID)、Setgid(SGID) 和 Sticky Bit。
不背锅运维
2023/04/10
3.1K0
Linux的3种特殊权限场景实战:SUID、SGID、SBIT
Linux 权限管理
介绍一下 Linux 的权限管理。Linux 是多用户的操作系统,允许多个用户同时登录和工作,Linux 权限是操作系统用来限制不同用户对资源的访问机制。这里暂且将 Linux 中的权限分为三类:
OwenZhang
2021/12/08
3.7K0
关于SUID、SGID、SBIT,我们必须了解的几个关键点
版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢
耕耘实录
2018/12/20
9300
Linux文件权限与归属
在 Linux 系统中,每个文件都有归属的所有者和所属组,并且规定了文件的所有者、所属组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。
张旭博客
2022/12/29
8870
Linux文件权限与归属
Linux基础知识点
文件(包括目录)权限分为三类别,从左至右依次是:文件所属主的权限、文件所属所在用户组的权限和其他用户的权限。
恋喵大鲤鱼
2018/08/03
1.9K0
Linux基础知识点
第九章·Linux权限管理-特殊权限
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
6500
第九章·Linux权限管理-特殊权限
掌握Linux文件权限,看这篇就够了
#前言 我们知道,无论什么东西,涉及到安全性的,比如文件、文件夹、磁盘(就如window系统的磁盘,我们就可以通过bitlocker技术将磁盘给加密锁起来)、服务器,等都需要设置权限管理,以保证安全性,接下来让我们来探讨以下Linux的文件权限。
老油条IT记
2020/09/04
2.6K0
掌握Linux文件权限,看这篇就够了
四.linux文件权限
一个文件对应三种权限对象,分别文件的所有者user、所属组group和其他人other 每个权限对象对应三种权限,分别是读r、写w和执行x 权限数字对应关系
对弈
2019/09/04
4K0
100个linux命令(3)-权限管理
文件权限附属在文件所有者 u,文件所属组 g 和其他用户o 上。使用字符修改权限需要指明操作谁的权限,另外还要使用"+"或"-"指定增加权限还是删除权限,也可以使用"="。
懒人的小脑
2019/01/09
9930
100个linux命令(3)-权限管理
默认权限umask、文件系统权限、特殊权限
该文章介绍了如何通过执行top命令来查看Linux系统的实时性能,包括CPU、内存、I/O等各方面的信息。此外,还介绍了如何使用top命令来查看Linux系统中各个进程的性能,并给出了常见进程的PID和命令名称。同时,还讲解了如何通过kill命令结束进程,以及如何使用top命令查看Linux系统中各个进程的实时性能。
惨绿少年
2017/12/28
4.1K0
CentOS6.5菜鸟之旅:文件权限详解
一、前言                                   Linux下所有资源、设备均被视作文件来操作,而文件权限则是决定用户可各文件操作的范围,无论是平时使用Linux,还是写程序均涉及这方面。以下为个人学习的整理,供以后查阅。 二、 三种权限                              1. 普通权限 权限 文件 目录 r,读权限 查看文件内容 列出其子目录结构信息(就是可执行 ls 目录 ) w,写权限 配合r权限,则可对文件进行修改和删除 配合x权限就
^_^肥仔John
2018/01/18
1.4K0
CentOS6.5菜鸟之旅:文件权限详解
文件基本权限与特殊权限
默认权限需要换算成字母再相减,所有建立文件之后的默认权限,为666减去umask的值
全栈工程师修炼指南
2022/09/28
5.1K0
文件基本权限与特殊权限
Linux文件权限详解
#前言:我们知道,无论什么东西,涉及到安全性的,比如文件、文件夹、磁盘(就如window系统的磁盘,我们就可以通过bitlocker技术将磁盘给加密锁起来)、服务器,等都需要设置权限管理,以保证安全性,接下来让我们来探讨以下Linux的文件权限
老油条IT记
2020/03/20
5.3K0
Linux 命令(81)—— chmod 命令
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
恋喵大鲤鱼
2019/11/03
3.1K0
Linux系统安全 | Linux下的用户、组和权限
注:一般来说,只有 root 用户的 uid 是为0的。如果黑客把一个普通用户的 uid 修改为0的话,那么他只要以普通用户的用户名和密码登录,系统就会自动切换到root用户。所以,系统加固的时候一定要过滤出有哪些用户的UID为0
谢公子
2022/01/19
3.2K0
Linux系统安全 | Linux下的用户、组和权限
相关推荐
Linux 文件目录特殊权限设定(SUID,SGID,SBIT)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验