码迷,mamicode.com
首页 > 其他好文 > 详细

特殊权限位

时间:2018-07-22 00:14:36      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:通用   进制   tick   pre   删除文件   文件的   八进制   usr   用户   

特殊权限位有三位分别是:SUID,SGID,Sticky
1.SUID

            前言:使用ls -l /etc/passwd查看文件的权限,可以看到只有root用户有具有修改此文件的权限,但是为什么我们普通用户也可以使用passwd的命令来修改/etc/passwd里面的内容?使用 ls -l /usr/sbin/passwd 可以看到在用户的权限位上有一个 s 权限位,这个s的权限位就是SUID,它的作用是将使用此文件的用户当作转为这个文件的用户来使用此文件;
            如,你是student的用户,来执行passwd的命令(passwd属主是root用户),由于passwd的权限有SUID(s)权限位,它会把你的student用户转为root用户来使用passwd的文件,这样你的student的用户也就可以修改passwd的内容了。
            可以使用 chmod u+s file 来给file文件添加s权限位,u-s 去掉s权限位。

2.SGID

            前言:公司有两个或以上人共同开发个项目,项目的文件放在 /usr/myproject/ 的下面,如果有两个用户student和wwzzyy来共同完成这个项目,在没有SGID权限下,第一次由student的创建了first的文件,并且写了代码,由于first文件是student创建的,那么此文件属主和属组都属于student用户,那么下次当wwzzyy的用户来想继续编辑file文件的时候是没有权限的,同理如果wwzzyy用户新建的文件student也是没有权限的,那么这样的话就达不到共同开发的目的,这个时候SGID的权限位就派上用场了,我们先创建project的组,将myproject的目录的属组修改为project,并且给组有写权限,然后给myproject添加SGID的权限,这样不管是谁在这个目录下创建的文件都是属于project的这个组,这样我们再将student和wwzzyy添加到project的附加组上,就能实现共同开发了。
            使用 chmod g+s /dir 和 g-s 来实现添加或去掉SGID权限。
            SGID一般作用在目录下。

3.Sticky

            一般给公共的目录设置Sticky权限,表现形式在其它权限上为t,如/tmp目录,它的作用是任何人都可以在这目录下创建或删除文件,但是只能删除自己的文件。
            使用chmod o+t /dir 给目录添加t权限。

同样和普通权限一样,可以用八进制表示:

            000 (0):没有特殊权限
            001 (1):有t权限
            010(2):有SGID权限
                                ...
            111(7):有SUID,SGID,t 权限

需要注意:有的时候我们看到有些是 s 有些是 S 或 t , T这是因为这个权限位和 x 的权限位重叠了,为了区分表示,如果重叠了就体现为s,没有重叠就为S等。

特殊权限位

标签:通用   进制   tick   pre   删除文件   文件的   八进制   usr   用户   

原文地址:http://blog.51cto.com/13803030/2148169

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!