以前对于文件管理的认识只限于UGO的管理,对于特殊权限的学习还是一知半解。重新学习了一遍,我自己理解的东东记录一下。

首先,列一下SUID、SGID、Sticy Bit所代表的权限数值。就好像rwx分别对应4,2,1一样,SUID、SGID、Sticy Bit分别对应的数值也是4、2、1。

权限对应的数值
SUID 4
SGID 2
Sticky Bit 1
r 4
w 2
x 1
   

为了下面的例子做准备,现在假设有一个文件a,权限为 -rw-rw-r--,对应的数值为664

一、SUID

全称:Set UID

对象:仅用于设置二进制文件的特殊权限

用途:用于开放二进制文件的执行权限。当用户执行文件a的时候,执行过程中暂时获得了文件a所属用户的权限。简单说,假如文件a的所有者是root,但是文件设置了SUID,那么其它用户也可以执行这个文件。

例子:/usr/bin/passwd

设置方法:chmod 4664 a

设置完成后文件a权限为:-rwSrw-r--

(现在我也知道为什么每个用户的umask值为四位数了,如果你不知道umask是什么赶紧google一下吧^_^)

二、SGID

全称:Set GID

对象:用于设置文件和目录的特殊权限

用途:

文件:如果该文件是二进制文件的话,其他用户执行该文件的时候会以文件所属用户组的神

目录:在该目录下建立的文件或目录都会自动继承该目录的用户组

设置方式:chmod 2664 a

设置完成后文件a权限为:-rw-rwSr--

三、Sticky Bit

全称:Set UID

对象:只用于设置目录的特殊权限

用途:在设置了Sticky Bit权限的目录下建立的文件只有文件的拥有者和root能删除。

设置方式:chmod 1664 a

设置完成后文件a权限为:-rw-rw-r-t

----------------------------------------------------------------华丽的分割线------------------------------------------------------------------------------

在测试上面个属性的时候发现一个问题总结一下。

同属一个用户组的两个用户A和用户B,给予用户A的家目录rwx权限以便用户B能够进入。

使用用户B在用户A的家目录下创建文件test,并将文件的属性设置为----rwx---,也就是只有用户组有所有权限。

这样就会出现:用户B不能修改文件test,但是用户A却能够修改。

以上实验的出两个结论:

1.如果一个文件属于一个用户组,并对用户组开放所有权限,那么该用户组下的所有用户都可以借助用户组的权限访问该文件。

2.如果一个文件的所属用户将自身的权限全部清楚,但是组的权限全部开放,那么文件的所属用户仍不能访问该文件。因为在操作文件是系统参考了当前用户对目标文件的执行权。

再次学习linux文件特殊权限:SUID、SGID、Sticy Bit的更多相关文章

  1. Linux 文件特殊权限 SUID SGID SBIT

    文件除了常规的权限r, w, x 还有一些特殊的权限,s与t权限,具体的用处如下 1 SetUID 当s 这个标志出现在文件所有者的x权限上时, 例如/usr/bin/passwd, [root@or ...

  2. chmod 4777? 文件特殊权限 SUID SGID StickyBit

    故事引入 今天碰到了一条指令, test 怎么在777前还有一位,颠覆了我的认知啊,这时候必须翻鸟哥神书了,找到一个链接<7.4.3 文件特殊权限:SUID/SGID/Sticky Bit> ...

  3. 【Linux】文件特殊权限 SUID/SGID/Sticky Bit

    linux中除了常见的读(r).写(w).执行(x)权限以外,还有3个特殊的权限,分别是setuid.setgid和stick bit 1.setuid.setgid 先看个实例,查看你的/usr/b ...

  4. CentOS 文件特殊权限SUID,SGID,SBIT

    1.SUID ,是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有所有者的权限(仅对拥有执行权限的二进制程序有效). (1)SUID权限仅对二进制程序有效: (2)本权限仅在执行该 ...

  5. Linux 特殊用户权限 suid,sgid, sticky

    每个进程会维护有如下6个ID: 真实身份 : real UID, readl GID --> 登录 shell 使用的身份 有效身份 : effective UID, effective GID ...

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

    Linux学习之文件特殊权限详解(SetUID.SetGID.Sticky BIT) 目录 SetUID SetGID Sticky BIT SetUID SetUID简介 只有可以执行的二进制程序和 ...

  7. Linux学习之十五-Linux文件特殊权限和附加权限

    Linux文件特殊权限和附加权限 1.特殊权限suid 范围:只能针对二进制命令文件 作用:让普通用户拥有二进制命令文件所有者的权限 举例1:普通用户使用passwd命令修改密码 cat /etc/s ...

  8. Linux文件的权限与属性

    由于以前学习Linux的时候没有做比较全面的总结笔记,而且平时大部分工作都在windows上进行,所以关于Linux的一些知识点有所遗忘.近期难得空闲,翻阅书籍,学习<鸟哥的Linux私房菜&g ...

  9. Linux 文件特殊权限详解[suid/sgid/t]

    setuid(suid): 针对命令和二进制程序的,当普通用户执行某个(passwd)命令的时候,可以拥有这个命令对应用户的权限, 即让普通用户可以以root用户的角色执行程序或命令. setgid( ...

随机推荐

  1. canvas绘制路径

    canvas绘制路径 方法 beginPath() 创建一个新的路径 lineTo() 描绘路径 closePath() 沿着路径画直线,并且画点移动到路径开头 stroke() 绘制形状 fill( ...

  2. C# 如何将窗体写到Dll中

    步骤: 1.解决方案资源管理器窗口->右击项目属性 2.属性窗口->应用程序->输出类型(U)->类库

  3. Vue使用echarts

    Vue使用echarts 该示例使用 vue-cli 脚手架搭建 安装echarts依赖 npm install echarts -S 创建图表 全局引入 main.js // 引入echarts i ...

  4. __slots__

    __slots__ 由于Python是动态语言,任何实例在运行期都可以动态地添加属性. 如果要限制添加的属性,例如,Student类只允许添加 name.gender和score 这3个属性,就可以利 ...

  5. 汉字转拼音开源工具包Jpinyin介绍

    最近要实现一个根据词语得到词语对应拼音的功能,找到了Jpinyin这个开源工具包,使用下来发现它非常强大,完全满足我的需求,下面对它做一个简单的介绍,希望能够帮助到有需要的朋友. https://gi ...

  6. Yum -y update 报错

    问题描述: 操作系统:CentOS 6.5 今天服务器上执行 yum -y update 命令时,提示: Running rpm_check_debug ERROR with rpm_check_de ...

  7. 用django框架开发一个B2C购物网站用户注册知识点总结2

    一:用户部分: 用户注册: 用户注册序列化器: import re from django_redis import get_redis_connection from rest_framework ...

  8. MySQL数据库篇之表的增删改查

    主要内容: 一.表介绍 二.创建表 三.查看表结构 四.修改表结构 五.复制表 六.删除表 1️⃣ 表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称 ...

  9. Application.LoadLevel & Object.DontDestroyOnLoad

    [Application.LoadLevel] 只有在File->Build Setting中设置了的按钮才能被加载. 当level加载完成后,MonoBehaviour.OnLevelWasL ...

  10. vue 项目搭建

    vue init webpack-simple 工程名字<工程名字不能用中文> 简单部署 vue init webpack 工程名字<工程名字不能用中文> 完整部署