特殊权限位

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了特殊权限位相关的知识,希望对你有一定的参考价值。

特殊权限位有三位分别是: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等。

以上是关于特殊权限位的主要内容,如果未能解决你的问题,请参考以下文章

Linux:文件特殊权限

特殊权限的应用

linux文件的权限及特殊权限位

Linux学习014特殊权限

linux命令:特殊权限位

关于文件目录等的特殊权限setuid, setgid , sticky