文件特殊权限

1.SUID(Set UID)

 

a.当s这个标志出现在文件所有者的x权限上时,此时就被称为Set UID,简称SUID的特殊权限。此权限的功能与权限如下:

    *SUID仅对二进制程序有效

    *执行者对于该程序需要具有x的可执行权限

    *本权限仅在执行该程序的过程中有效

    *执行者将具有该程序所有者的权限

b.在linux系统中,所有的帐号密码都记录在/etc/shadow这个文件中,这个文件权限为-r-------- 1 root root,意思是这个文件仅有root可读仅root可以强制写入。但是一般的账户(例我的kiosk是个普通用户)却可以改动自己的密码,这与权限岂不是冲突了?其实,这便是SUID的作用:

    *kiosk对于/usr/bin/passwd这个程序来说是有x权限的,表示kiosk能够执行passwd命令

    *passwd的拥有者时root这个帐号

    *vbird执行passwd的过程中,会暂时获得root权限

    */etc/shadow可以被kiosk所执行的passwd所修改

虽然kiosk可以修改自己的账户密码,但是却无法用cat去读取/etc/shadow

 

c.SUID仅可用在二进制程序上,不能够用在shell script上面,对于目录也是无效的。

 

2.SGID(Set GID)

 

a.当s标志在用户组的x时则称为Set GID,SGID。与SUID不同的是,SGID可以针对文件或目录来设置。如果是对文件来说,SGID有以下功能L

    *SGID对二进制程序有用

    *程序执行者对于该程序来说,需具备x的权限

    *执行者在执行的过程当中会获得该程序用户组的支持

 

b.除了二进制程序外,事实上SGID也能够用在目录上,这也是常见的一种用途。当一个目录设置了SGIDde1权限后,会具有如下功能:

    *用户若对次目录具有r与x权限时,该用户可进入此目录

    *用户在次目录下的有效用户组将会变成该目录的用户组

    *若用户再次目录下有w权限,则用户所创建的新文件的用户组与次目录的用户组相同

 

 

3.Sticky Bit

 

a.这个Sticky Bit(SBIT)目前只针对目录有效,其效果为:

    *当用户对于次目录具有w,x权限,即具有写入的权限时:

    *当用户在该目录下创建文件或目录时,仅自己与root才有权力删除该文件。

即,加入A目录加上了SBIT的权限项目时,则用户甲之能够针对自己创建的文件或目录进行删除,更改,移动等操作,而无法删除他人创建的文件

 

4.SUID/SGID/SBIT权限设置

a.通过数字的方法

    4为SUID

    2为SGID

    1为SBIT

若要将一个文件权限更改为SUID时,就可在原先的权限上加上4.例如,原权限为755,那么更改为SUID就可以用 chmod 4755 文件名即可。其余例上。

b.通过符号方法

    SUID为u+s

    SGID为g+s

    SBIT为o+t

例:原权限为-rws--x--x

添加SGID与SBIT,可通过如下方法进行:

    chmod g+s,o+t 文件名

原文地址:https://www.cnblogs.com/zhengyipengyou/p/10231178.html