且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

suid/sgid/sticky

更新时间:2022-09-20 15:15:21

 文件本身已经有属主、属组和其它用户三种能够操作此文件的用户,每种用户又有读、写、执行三类权限,而在一些特殊的情况下仅使用这三类用户的三种权限是不能满足我们的需求,这时就需要给文件添加suid 、sgid、sticky权限,下面简单介绍这三种权限的用途及添加方法。

    suid:

        suid 一般设置在可执行文件上,设置的目的是让其他用户 使用 此可执行文件访问那些   与此可执行文件具有相同属主或属组的文件。

        suid的设置方法:

            chmod  u+s  file1....  或者使用另一种方法(在最后面说明) 进行设置

        当文件设置过suid后,在文件属主可执行权限位上表现为s或S

                若设置suid前,文件属主有可执行权限(即属主可执行权限位为x),设置后变为s

                ............................文件属主没有可执行权限(..................................为-),设置后变为S

    sgid:

        sgid一般设置在目录上,当一个目录设置过 sgid 权限后,凡是在此目录下创建的文件,无论文件的创建者是谁,文件的属组都和此目录的属组保持一致,相当于继承父目录的属组。

        如果在具有sgid权限的目录中 创建目录a,进入新建目录a,在a目录中再创建的文件仍然继承父目录的属组权限,如果更改了新建目录a的权限(即使更改过后再改回原样),那么在目录a中创建的文件则不再继承父目录的权限。

        sgid的设置方法:

            chmod  g+s  file1....  或使用另一种方法(在最后面说明)进行设置

        当目录设置过sgid后,在目录文件属组可执行权限位上表现为s或S

                若设置sgid前,目录文件属组有可执行权限(即属组可执行权限位为x),设置后变为s

                ............................目录文件属组没有可执行权限(..................................为-),设置后变为S

    sticky(粘滞位):

        sticky一般也是设置在目录上。通常普通用户所创建的文件  即使  能够设置权限  不让其他普通用户进行读写操作,但也不能阻止其他用户把此文件删除,而sticky权限所起的作用就是:各个用户在此目录中创建的文件只能由自己删除,其他用户不能删除;换句话说就是,在具有sticky权限的目录中每个用户只能删除自己创建的文件。

        sticky的设置方法:

            chmod  o+t  file1.....  或使用另一种方法(在最后面说明)进行设置

         当目录设置过sticky后,在目录文件‘其它用户’可执行权限位上表现为s或S

                若设置suid前,目录文件‘其它用户’可执行权限(即‘其它用户’可执行权限位为x),设置后变为t

                ............................目录文件‘其它用户’可执行权限(..................................为-),设置后变为T


    suid/sgid/sticky的设置方法还有一种。总所周知,文件的权限设置可以用chmod 755 file1....的格式进行设置;同样,suid/sgid/sticky的设置也可以使用这样的格式。suid/sgid/sticky和r/w/x一样分别用4/2/1进行表示,可以混合使用。

   若文件原来权限位755

         如果要设置suid可以使用chmod  4755  file1.....

         如果要设置sgid可以使用chmod  2755  file1.....

         如果要设置sticky可以使用chmod  1755  file1.....

     



本文转自 f_066 51CTO博客,原文链接:http://blog.51cto.com/ganmu/1845413,如需转载请自行联系原作者