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

一、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.mfbz.cn/a/559872.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SOLIDWORKS批量改名工具个人版 慧德敏学

每个文件都会有自己的名字,SOLIDWOKRKS模型也不例外。但是如果从资源管理器直接修改模型的文件名,就会导致模型关联的丢失,导致装配体打开之后找不到模型,因此就需要使用SOLIDWORKS的重命名功能。 SOLIDWORKS批量改名插件- Solid…

智能电网线路阻抗模拟器基础认识

智能电网线路阻抗模拟器是专门用于模拟电力系统输电线路阻抗特性的装置,它能够根据设定的参数,精确地模拟出各种不同类型、不同长度和不同截面积的输电线路在正常运行或故障状态下的阻抗特性。这种模拟器在电力系统的规划、设计、运行和维护中起着重要的…

交换机的种类有哪些?主要都具有哪些作用?

在当今数字化时代,网络已经成为我们生活和工作中不可或缺的一部分。无论是家庭网络还是企业网络,都需要有效的网络设备来实现数据通信和资源共享。而网络交换机作为一种重要的网络设备,扮演着连接和管理网络设备的关键角色。本文将探讨交换机…

TXT文本编辑器,高效将文本里特定符号前的内容作为关键词一键复制或移动文件,效管理文件内容

在日常工作和生活中,我们经常需要处理大量的文件,而文件的管理和整理则成为了一个重要的问题。传统的文件管理方式不仅效率低下,而且容易出错。为了解决这一难题,我们推出了一款强大的TXT文本编辑器,它能够帮助你以文件…

岩石变角剪切试验夹具 技术参数

岩石变角试验夹具是根据TB10115-2014铁路工程岩石试验规程等标准利用压力机施加垂直荷载,通过一套特制的夹具使试件沿某一剪切面产生剪切破坏,然后通过静力平衡条件解析剪切面上的法向压应力和剪应力,从而绘制法向压应力(σ)与剪应力(τ&…

flutter release 报错 Error: SocketException: Failed host lookup:

flutter 的 debug 模式没有任何问题 ,打了release 包后一直报下面的错,查了一下是 因为没有网络权限 Error: SocketException: Failed host lookup: yomi-test-aws-sg.yomigame.games (OS Error: No address associated with hostname, errno 7) 按照下…

YOLOv5 / YOLOv7 / YOLOv8 / YOLOv9 / RTDETR -gui界面-交互式图形化界面

往期热门博客项目回顾:点击前往 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 AI健身教练-引体向上…

使用 大模型快速生成-jsToJava 的正则表达式离线版本的简单html页面

注意&#xff1a;需求要描述清楚-提高程序员的工作效率 代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0&quo…

C++相关概念和易错语法(6)(运算符重载)

1.运算符重载注意事项&#xff1a; &#xff08;1&#xff09;多个同一运算符重载可构成函数重载 &#xff08;2&#xff09;在成员函数中由于隐含了this指针&#xff0c;外部调用看上去前置和后置不会有任何区别&#xff0c;所以为了区分这个在后置时强制引入参数int&#x…

医药行业如何巧用AI智能客服机器人?看完你就会了

我们都知道&#xff0c;医药行业信息量庞大&#xff0c;行业规范严格&#xff0c;客户查询和服务需求复杂多变。那么&#xff0c;医药企业该如何高效响应客户&#xff0c;同时保持服务质量并降低成本呢&#xff1f;答案很可能就在AI智能客服机器人。 AI智能客服机器人利用人工智…

【鸿蒙NEXT】web组件debug模式

官方文档 使用Devtools工具调试前端页面 打开web debug模式 webview.WebviewController.setWebDebuggingAccess(true)chrome 访问 chrome://inspect/#devices Discover network targets 中添加 localhost:9222 创建cat.sh name$(hdc shell ps -ef | grep com.cib.qdzg | …

js作业微博发言

微博 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible" content&q…

TVBox的Json配置接口编写指南,模板格式说明(如何打造一个专属于自己的TVBox配置文件)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 配置解析 📒📝 JSON基础📝 配置文件结构/参数说明📝 编写步骤📝 注意事项🎈 接口分享⚓️ 相关链接 ⚓️📖 介绍 📖 TVBox 是一款备受欢迎的电视盒子应用(免费影视必备),它以其高度自定义的特性深受用户喜爱…

【Applied Algebra】隐藏子群问题和Shor算法的新视角

隐藏子群问题和Shor算法的新视角 隐藏子群问题是指给定一个群和一个函数,该函数对于群的一个子群是常数,并且对于子群的任何两个不同的左陪集有不同的值,问题是找到这个子群.HSP是许多量子算法的基础,其中最著名的是Shor的算法,它可以用来分解大整数和计算离散对数,这直接威胁到…

xss跨站脚本(cross-site scripting)

本质上是用户输入 js &#xff0c; html 代码&#xff0c;提交至服务器&#xff08;可不经过&#xff09;&#xff0c;前端和后端均未对用户的输入和输出进 行合理的过滤和限制&#xff0c;导致恶意 js 代码以及 html 代码被注入到网页中 危害&#xff1a;钓鱼欺骗、获取会话…

P1605 迷宫

本题为洛谷&#xff1a; #include<iostream> using namespace std; int maze[6][6]; int n,m,t,sx,sy,fx,fy,obsh,obsl,s; int dir[4][2]{{-1,0},{0,1},{1,0},{0,-1}},vis[6][6]; void dfs(int x,int y){if(xfx-1&&yfy-1){s;return ;}vis[x][y]1;for(int i0;i<…

如何将你的iOS应用成功上架App Store(图文详解)

上架基本需求资料 1、苹果开发者账号&#xff08;如还没账号先申请- 苹果开发者账号申请教程&#xff09; 2、开发好的APP 通过本篇教程&#xff0c;可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestFlight测试然后提交审核的完整流程&#xff01; …

graphviz嵌入latex的方法

效果&#xff1a; graphviz graphviz是一个开源的工具包&#xff0c;用DOT语言编写可以自动转换成图形&#xff0c;因为写法非常简单&#xff0c;只用代码描述好连接关系&#xff0c;就能直接得到最终的图形&#xff0c;所以优势很大。 latex&#xff1a; 就不介绍了 graphvi…

不会搭建帮助中心?别怕,这几款工具来帮你

一个完善的帮助中心是企业提供优质客户服务的重要环节。它不仅能够有效解答客户问题&#xff0c;减轻客服压力&#xff0c;还能提升品牌形象与客户满意度。但很多企业在搭建过程中或多或少会遇到困难&#xff0c;尤其是对于非技术背景的公司来说&#xff0c;这看似复杂的任务可…

ipv4Bypass:一款基于IPv6实现的IPv4安全绕过与渗透测试工具

关于ipv4Bypass ipv4Bypass是一款基于IPv6实现的安全绕过与渗透测试工具&#xff0c;该工具专为红队研究人员设计&#xff0c;可以帮助广大研究人员通过IPv6绕过目标安全策略&#xff0c;以此来检测安全检测机制的健壮性。 20世纪90年代是互联网爆炸性发展时期&#xff0c;随着…