博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux-文件特殊权限(SUID, SGID, SBIT)
阅读量:2222 次
发布时间:2019-05-08

本文共 1446 字,大约阅读时间需要 4 分钟。

1:SetUID的功能

只有可以执行的二进制程序才能设定SUID权限。(给其他文件设置没有意义),命令执行者要对该程序拥有x(执行)权限,命令执行者在执行该程序时获得该程序文件所有着的身份(在执行程序的过程中灵魂附体为文件的属主,相当于变身命令),SetUID权限指在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效。

passwd命令拥有SetUID权限,所以普通用户可以修改自己的密码

在所有者的权限里面有s就是SUID权限,在所属组里面有s就是SGID权限,在其他人里面有s就是SBID

cat命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件内容

2:设定SetUID的方法

     4代表SUID,2表示SGID,1表示SBID    7表示SUID,SGID,SBID都有,chmod 4755 文件名; chmod u+s 文件名

如果使用chmod u+s test

s是大写的这是因为它出错了,因为SetUID的功能说明中强调命令执行者要对该程序有执行权限,所以会报错。

3:取消SetUID的方法

   使用chmod命令把文件的权限修为以前的。或着使用 chmod u-s 文件名来修改。

4:危险的SetUID

   最好不要随便修改。

5:SetGID针对文件的作用:

      只有可以执行的二进制程序才能设定SGID权限;命令执行者要对该程序拥有x(执行)权限;命令执行在执行程序的时候,组身份升级为该程序文件的属组,SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效。

使用locate命令来搜索文件所在位置(在tmp目录下创建的文件找不到),因为这个命令是在数据库下查找,所以速度快,但是使用之前要先使用updatedb来更新数据库。

/usr/bin/locate是可执行二进制程序,可以赋予SGID,执行用户yanglinux对/usr/bin/locate命令拥有执行权限,执行locate命令时,组身份会升级为slocate组,而slocate组队/var/lib/mlocate/mlocate.db数据库拥有r权限,所以普通用户可以使用locate命令查询mlocate.db数据库。命令结束yanglinux用户的组身份返回yanglinux组。

6:SetGID针对目录的作用(特殊之处SUID没有这个特征)

普通用户必须对此目录拥有r和x权限,才能进入此目录;普通用户在此目录中的有效组会变成此目录的属组;若普通用户对此目录拥有w权限,新建的文件的默认属组是这个目录的属组。

设置:chmod g+s 文件/目录 或着 chmod 2755 目录/文件名

删除:chmod g-s 文件/目录 或着 chmod 755 目录/文件名

7:SBIT(Sticky BIT)粘着位作用

粘着位目前只对目录有效;普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入有权限;如果没有粘着位,因为普通用户拥有w权限,所有可以删除此目录下所有文件,包括其特用户建立的文件。一旦赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限也可以删除自己建立的文件,但是不能删除其他用户建立的文件。主要作用就是对于777权限的目录防止自己再该目录下创立的文件被其他用户删除。

设置:chmod 1755 目录名或着chmod o+t 目录名

删除:chmod 777 目录名或着 chmod o-t 目录名 

转载地址:http://nxpfb.baihongyu.com/

你可能感兴趣的文章
Intellij IDEA使用(六)—— 使用Intellij IDEA创建Java项目并配置jar包
查看>>
Eclipse使用(十)—— 使用Eclipse创建简单的Maven Java项目
查看>>
Eclipse使用(十一)—— 使用Eclipse创建简单的Maven JavaWeb项目
查看>>
Intellij IDEA使用(十三)—— 在Intellij IDEA中配置Maven
查看>>
面试题 —— 关于main方法的十个面试题
查看>>
集成测试(一)—— 使用PHP页面请求Spring项目的Java接口数据
查看>>
使用Maven构建的简单的单模块SSM项目
查看>>
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>
TP5.1事务操作和TP5事务回滚操作多表
查看>>