文件权限 SUID SGID SBIT 数字转换

2023-12-13 10:58
文章标签 转换 权限 数字 sgid suid sbit

本文主要是介绍文件权限 SUID SGID SBIT 数字转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SUID

SUID是指一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限,仅对拥有执行权限的二进制程序有效。
在这里插入图片描述
查看passwd命令属性时发现所有者的权限由rwx变成了rws,其中x变成了s就意味着该文件被赋予了SUID权限。另外,如果文件原本的权限是rw-,没有可执行权限,则被赋予SIUD权限后就会变成大写S。

,,

SGID

SGID主要实现如下功能:
1.让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
2.在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)

SGID的第一种功能是参考SUID而设计的,不同点是在于执行程序的用户获取的不再是文件所有者的临时权限。例如:ps命令文件的属性信息。它的文件权限为 r-xr-sr-x ,注意,由于ps命令文件被增加了SGID特殊服务权限位,所以当用户执行该命令时,也就临时获取到了该用户组的权限,从而可以顺利的读取设备文件了。
SGID的第二种功能。每个文件都会有自己的所有者和所属组,当创建或传送一个文件后,此文件则会自动归属于执行这个操作的用户,即该用户就是该文件的所有者。

如图:
在这里插入图片描述
我们在root用户下切换到tmp目录下,然后创建一个目录testdir,并且用chmod命令设置SGID权限。然后切换到另一个普通用户dkl,尝试在该目录下创建文件test,并查看新创建的文件是否会继承文件所在的目录的所属组的名称,如图中红色标记,不会的,这变时SGID的第二个功能。

SBIT

SBIT特殊权限可以确保用户只能删除自己的文件,而不能删除其他用户的文件。也就是说,当对某个目录设置了SBIT权限位以后,那么该目录中的文件就只能被其所有者执行删除操作了。
与之前SUID和SGID权限的显示方法不同,当目录被设置了SBIT权限位后,文件的其他人权限部分的x执行权限会被替换成t或T,原本有执行权限x则被替换成t,没有执执行权限-则被替换成T。
如图所示:
在这里插入图片描述

数字转换

文件的读 写 执行权限可以简写为r,w,x(read,write,execute),分别可以用数字4,2,1来表示。

如图:
在这里插入图片描述
图中的文件123.txt权限为 rwxr-xr-x
用数字翻译过来就是755

对于特殊权限下面举俩个例子:

  1. 比如rwsrwSrwT 转换成数字就是7766.
    思路就是先写成 rwxrw-rw- ,对应的766 ,而该文件具有特殊权限位SUID,SGID,SBIT,并且这三个权限位对应的数字分别是4,2,1,所以在766前面写数字和4+2+1=7,即7766 。

  2. 再比如7654 转换成字符就是rwSr-sr-T
    思路就是先看654,即420401400,即rw-r-xr–
    最前面的7则说明三个特殊权限都有4+2+1,所以在rw-r-xr–的基础上改一下,有执行操作的写成s或者t,没有执行操作的写成S或者T,所以最后的结果就是
    rwSr-sr-t

这篇关于文件权限 SUID SGID SBIT 数字转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/488207

相关文章

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

在Java中将XLS转换为XLSX的实现方案

《在Java中将XLS转换为XLSX的实现方案》在本文中,我们将探讨传统ExcelXLS格式与现代XLSX格式的结构差异,并为Java开发者提供转换方案,通过了解底层原理、性能优势及实用工具,您将掌握... 目录为什么升级XLS到XLSX值得投入?实际转换过程解析推荐技术方案对比Apache POI实现编程

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

使用Python实现网页表格转换为markdown

《使用Python实现网页表格转换为markdown》在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,本文将使用Python编写一个网页表格转Markdown工具,需... 在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,以便在文档、邮件或

Python将字符串转换为小写字母的几种常用方法

《Python将字符串转换为小写字母的几种常用方法》:本文主要介绍Python中将字符串大写字母转小写的四种方法:lower()方法简洁高效,手动ASCII转换灵活可控,str.translate... 目录一、使用内置方法 lower()(最简单)二、手动遍历 + ASCII 码转换三、使用 str.tr

Java如何将文件内容转换为MD5哈希值

《Java如何将文件内容转换为MD5哈希值》:本文主要介绍Java如何将文件内容转换为MD5哈希值的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java文件内容转换为MD5哈希值一个完整的Java示例代码代码解释注意事项总结Java文件内容转换为MD5