文件的特殊权限:SUID,SGID,Sticky Bit

文件特殊权限 SUID/SGID/Sticky Bit

    SUID 只能用在binary file中,以设置SUID属性的owner用户身份来执行
    SGID 用在目录中,那么在目录中所建立的文件或者目录的group属性会变成设置SGID的目录的group属性;
    若是用在binary file上,则会以设置SGID属性的group来呈现
    Sticky Bit 只对目录有效,在Sticky Bit设置的目录下新建的文件或目录只能由root或者建立的own来进行操作(增删改)

    表现为 -rwsrwsrwt
    在owner(u)属性下s是SUID
    在group(g)属性下s是SGID
    在other(o)属性下t是Sticky Bit
    大写的S,T表示无效(比如chmod 666 均无执行权限)

    权限设置使用 chmod sxxx filename 中的第一个s 其中:

        * 4为SUID
        * 2为SGID
        * 1为Sticky Bit

 

我们来看一下下面这个例子:

不是只有rwx吗?  那个s和t是什么东东?

原来,在文件中,有这么一种权限,他可以赋予你和创建者一样的身份,当然这是临时的。

并且,只能是创建者可执行的权限,且当其他用户执行这个文件的时候,他也有创建者的权限了。

这就是SUID(SET UID),如passwd文件,正常,除了root是不可以有别人来更改这个passwd文件的。

当用户更改自己密码的时候还是可以实施的。这时候就是s权限起了作用。

同理,那个SGID 我们就很好理解了。就是赋予其用户组的权限,G不也就是GROUP嘛。

而且SUID,SGID只能作用于二进制文件。

##########################################################################

##########################################################################

那么,Sticky Bit是什么东东?

举个例子吧,一个目录,有这么一个权限。即 drwxrw-rw-

那么,当我是这个用户组的成员,你也是。

那就会出现这种情况,你嫉妒我,把我建立的目录啊,文件啊。都给我删了,或者重命名。这就会有很大的问题。

为了限制这种情况的发生,有一种特殊的文件权限叫Sticky Bit 。

它的作用是,当一个目录有Sticky Bit权限时,则只有root和自己能有权限对自己设的目录进行删除或更改。

别人,哪怕是同组的人都不行。但是别人依旧可以看到。。

那么这几个权限要怎么设置呢?
就是4个数字的权限设定就OK了。。也就是说chmod的时候为4个数字,例如:chmod 4755 filename

这个第一个数字就是表示设置的特殊权限。

对应如下:

4为SUID,2为SGID,1为Sticky Bit

但是要注意这样一种情况,会出现大写的S和T

那就是当自己还没有可执行权限的时候,却设置了SUID,

那么大S和大T表示就是空。也就是说其实我都不行,你还想要这权限?别逗了。

哈哈。。。

 

附上比较专业的一篇文章:

http://www.opsers.org/base/learning-linux-the-day-that-the-special-privileges-suid-sgid-sbit.html

你可能感兴趣的:(SGID,SUID,SBIT,学习Linux特殊权限)