博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux学习之文件特殊权限详解(SetUID、SetGID、Sticky BIT)(十一)
阅读量:6840 次
发布时间:2019-06-26

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

Linux学习之文件特殊权限详解(SetUID、SetGID、Sticky BIT)

 

 

目录

SetUIDSetGIDSticky BIT

 

 

SetUID

 

SetUID简介

只有可以执行的二进制程序和可执行的代码才能设定SUID权限。命令执行者要对该程序拥有x(执行)权限。命令执行者在执行该程序时获得该程序文件所属主的身份(在执行程序的过程中灵魂附体为文件的所属主)。SetUID权限只在该程序执行过程中有效,也就是说身份改变只在执行过程中有效。

  

这样大家肯定不怎么理解,现在我们来举一个例子,普通用户a在执行某个二进制程序时候,这个二进制程序的所有者是root,如果这个二进制程序拥有SUID权限,

那么普通用户a就会拥有root用户的权限,这样看来,好像一个变身命令。

 

 

设定SetUID的方法

4代表SUID,2代表GID,1代表Sticky BIT,7代表全部设置
chmod 4xxx 文件名

  

取消SetUID的方法

chmod xxx 文件名

  

 

SetUID权限的危险性

 

 

演示

这里应该用一个可执行的程序或文件来演示的,但理解这个权限的作用是什么就好,一般工作也用不上。

创建一个文件夹test

查看test文件夹的默认权限

重新赋予test文件夹权限

再次查看test文件夹的权限,我们可以看到,在所有者的权限后面多了个s,文件名高亮显示,这种文件,在linux中代表危险文件或者错误的文件

如果你想取消这个文件夹的权限

chmod 755 test即可

 

 

 

 

SetGID

 

 

SetGID简介

SetGID对文件和目录有不同的意义,我们只看对文件的作用

SetGID对文件的作用: 只有可以执行的二进制程序和可执行的代码才能设定SUID权限。命令执行者要对该程序拥有x(执行)权限。命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)。SetUID权限只在该程序执行过程中有效,也就是说身份改变只在执行过程中有效。

  

 

 

由locate命令带来的思考

我们知道locate命令比find命令更快,这是由于locate命令是在一个数据库中查询,需要定期更新数据库,要不然查询会不准确,但是find命令会扫描整个文件系统,但是更准确。

我们可以看到/usr/bin/locate文件的组的权限是有SGID权限。

我们也可以看到普通用户对数据库没有权限的。

那么为什么普通用户也可以访问这个数据库呢?

我们来看一下使用locate命令查询时候的过程。

 

假设普通用户lamp现在正在使用locate命令

现在我们明白了,lamp在使用locate命令时,从普通用户变为slocate组身份,这个组对数据库是有r权限的。

 

 

 

 

设置SetGID和取消SetGID权限

chmod 2xxx 文件名chmod xxx 文件名

  

 

 

 

 

Sticky BIT

 

 

Sticky BIT的简介

这个是用来防止如果我们给了一个目录777的权限,那么一个用户创建的目录,另一个目录如果不小心就会删除目录,如果你给这个目录设置Sticky BIT权限,这个用户就删除不了一个用户创建的文件。

  

 

 

 

设置粘着位和取消粘着位

chmod 1xxx 文件名chmod xxx 文件名

  

 

转载于:https://www.cnblogs.com/-wenli/p/10357497.html

你可能感兴趣的文章
在Linux服务器上添加ip白名单允许ssh登录访问
查看>>
JAVA入门到精通-第71讲-学生管理系统3-增删改查
查看>>
如何设置putty远程登录linux
查看>>
Mysql聚合函数
查看>>
React组件继承的由来
查看>>
当当网首页——JS代码
查看>>
java实现遍历树形菜单方法——service层
查看>>
ios appIcon配置
查看>>
首款移动社交购物平台“商宝”上线发布
查看>>
Solr配置与简单Demo[转]
查看>>
Go语言转义字符
查看>>
spring boot的热加载(hotswap)
查看>>
iis重启的几种方法
查看>>
HDU 2196 Computer 树形DP经典题
查看>>
HDU 3466 01背包变形
查看>>
用鼠标滚轮做事件
查看>>
python - paramiko模块 修改logging提示为静默
查看>>
浅谈Linux的内存管理机制
查看>>
Linux中断概述
查看>>
ubuntu 安装RPM软件包
查看>>