• 再次学习linux文件特殊权限:SUID、SGID、Sticy Bit


    以前对于文件管理的认识只限于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.如果一个文件的所属用户将自身的权限全部清楚,但是组的权限全部开放,那么文件的所属用户仍不能访问该文件。因为在操作文件是系统参考了当前用户对目标文件的执行权。

  • 相关阅读:
    测试计划
    团队项目需求分析
    团队成员分工及绩效评估
    结对项目之五子棋游戏
    .net web service 参数类型
    ipad webapp 左右分栏 webview的问题
    研究生阶段开始认真写Blog
    [小明学Shader]15.基于Grid的地形混合shader
    [Unity]浅谈AssetBundle的依赖关系打包与加载
    [小明学Shader]光栅化渲染器
  • 原文地址:https://www.cnblogs.com/riskyer/p/3221621.html
Copyright © 2020-2023  润新知