Linux文件的特殊权限(SUID|SGID|SBIT)

news/2024/10/24 2:30:27/

一、SUID

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

(一)语法格式

chmod u+s 文件名(设置SUID权限)

chmod u-s 文件名(取消SUID权限)

#文件属主的x权限,用s代替.表示被设置了SUID

#如果属主位没有x权限,会显示为大写S,表示有故障(权限无效) 

(二)普通用户quintin对vim是有执行权限的,而对/etc/passwd则没有编辑权限.

(三)通常情况下quintin启动vim后,系统会创建一个以当前用户quintin为属主属组的vim进程,此时vim进程的属主属组为quintin:quintin,由于无论是属主还是属组都不具有对/etc/passwd的编辑权限,所以这个vim进程无权编辑/etc/passwd.

(四)而给/usr/bin/vim设置了SUID之后,quintin或任何用户启动vim程序时,系统创建的vim进程的属主则是取了/usr/bin/vim这个程序文件自身的属主root,所以此时vim进程的属主属组为root:quintin. 系统检查发现正好匹配了/etc/passwd的属主,于是放行vim进程

(五)案例

1、使用SUID修改root用户的文件

(1)复制/etc/passwd 为passwd1,切换到普通用户进行编辑,可以发现无法保存,没有写入权限

(2)修改vim二进制文件,使普通用户在在编辑时拥有所属人的权限

(3)切换到普通用户,并编辑passwd1文件,并保存(提示只读不用管,强制保存即可。)

(4)取消对vim的SUID,在次尝试能否修改。

2、练习:使用SUID实现touch命令创建文件,所属人为root。(自己练习)

二、SGID

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

(一)语法格式

1、chmod g+s 目录或文件(设置SGID权限)

2、chmod g-s 目录或文件(取消SGID权限)

3、#文件属组的x权限,用s代替.表示被设置了SGID

4、#如果属组位没有x权限,会显示为大写S,表示有故障(权限无效)

(二)当对二进制程序进行设置时,能够让执行者临时获取文件所属组的权限

1、使用SUID创建文件的效果,使用普通用户runoob创建文件asd时,所属人成为了root。

2、使用SGID创建文件的效果,使用普通用户runoob创建文件asd时,所属组成为了root。

(三)当对目录进行设置时,则是让目录内新创建的文件自动继承该目录原有用户组的名称

1、新建两个目录,分别分配给两个不同的用户组,用于测试。

2、对这两个目录赋予777、SGID权限

3、新建test01用户,并使用test01用户登录,进入两个目录创建文件,查看文件所属组是否与目录相同

(效果1)

(效果2)

三、SBIT

介绍:SBIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了SBIT粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。

(一)语法格式

1、chmod o+t 目录(设置SBIT权限)

2、chmod o-t 目录(取消SBIT权限)

3、#文件其他人的x权限,用t代替.表示被设置了SBIT

4、#如果其他人位没有x权限,会显示为大写T,表示有故障(权限无效) 

(二)SBIT通常设置在目录中,对于一个多人可写的目录,如果设置了SBIT,则每个用户仅能删除和改名自己的文件或目录;只能作用在目录上.普通文件设置无意义,且会被linux内核忽略

(三)案例:各个用户只能删除自己的文件

1、先赋予/tmp目录777权限,即所属人、所属组、其他人可读可写可执行。

2、测试普通用户能否删除root用户的文件,结论,可以删除。

3、配置SBIT权限,请使用root用户进行配置

4、切换到普通用户,再次尝试删除root用户文件,提示权限不足

5、切换到其他用户,尝试删除test01用户的文件,可以看到也无法删除

6、使用test01进行删除,可以删除。


http://www.ppmy.cn/news/1426201.html

相关文章

常见的linux命令

rm -rf ~/Desktop/my_folder rm 是删除命令。 -r 表示递归删除,以便删除文件夹及其所有内容。 -f 表示强制删除,不会提示确认 这个命令会立即删除指定的文件夹及其所有内容,无需确认。 2.删除空文件夹: 如果你想删除一个空的文件…

wujie微前端接入笔记

由于项目目前采用 wujie 方案,所以本文重点介绍 wujie !!! 如果图片打不开,请在本机访问,图片在外网图床 主应用 wujie src\components\Layout\WujieLayout : 无界子应用渲染的容器src\components\Layout\hooks: 无界相关的 hook子应用类似 1.什么是微前端 微前端是一种软…

Java集合面试题2024年4月20记录

一、集合的作用? 集合是可以存储一批类型不同的对象,针对集合的实现类有很多,作用都是一样的,即存储传输数据,但存储的数据结构不一样,其速度、安全性也不一样。 二、集合框架的组成? 1、接口…

套接字基础

套接字基础 套接字一、socket二、setsockopt三、bind四、listen五、select六、poll七、epoll一、水平模式(Level-Triggered,LT)二、边沿模式(Edge-Triggered,ET) 套接字 最近学习网络编程的时候&#xff0c…

C++入门之类和对象(中)

C入门之类和对象(中) 文章目录 C入门之类和对象(中)1. 类的6个默认对象2. 构造函数2.1 概念2.2 特性2.3 补丁 3. 析构函数3.1 概念3.2 特性3.3 总结 4. 拷贝构造函数4.1 概念4.2 特性4.3 总结 1. 类的6个默认对象 如果一个类中什么都没有,那么这个类就是一个空类。…

在单片机中什么是FLASH

2024年4月16日,周二晚上 在单片机中,"FLASH" 通常指的是闪存(Flash Memory),它是一种非易失性存储器,在断电后仍能保持数据的存储状态。在嵌入式系统和单片机中,闪存被广泛用于存储程…

C# 面向对象编程(一)——类 第三篇

总目录 C# 语法总目录 系列链接 C# 面向对象编程(一) 类 第一篇 C# 面向对象编程(一) 类 第二篇 C# 面向对象编程(一) 类 第三篇 C# 面向对象编程 一 ——类 第三篇 简介面向对象编程类 第三篇9. 重载运算符10. 分部方法** nameof方法 **** GetType 方法和 typeof方…

发作性睡病患者应该注意哪些生活调整?

发作性睡病是一种慢性睡眠障碍,患者常常在白天出现不可控制的睡意,甚至突然入睡。这种病症不仅影响患者的日常生活和工作,还可能带来安全隐患。因此,发作性睡病患者需要注意以下生活调整,以改善生活质量并减少潜在风险…