linux的3种特殊权限

特殊权限分为3种,分别是:
SUID:作用于用户;只能作用于可执行的二进制文件SGID:作用于所属组;只能作用于可执行的二进制文件Sticky:粘滞位。作用于其他人,只有自己才能删除自己的文件(root除外)

用户通过程序(一般程序对所有人都是可执行的,当然也有例外)去访问文件,取决于用户对程序文件是否有执行权限
当用户(发起者)去运行一个进程时,他就是这个进程的拥有者,进程的属组也是发起者所属的组(这里所说的拥有者是表现为这个程序在内存的拥有者,表现为进程,与这个程序在硬盘上的所有者是没有关系的,这就解释了不同的人运行同样的程序执行权限却不一样)
SUID:
下面的这个例子就不和上面描述的一样了

1240


上面这个例子就涉及到了特殊权限(SUID),wang这个用户本来是没有权限去修改密码的,但是wang是通过passwd这个进程去访问的,而passwd这个命令被赋予了特殊权限,而这个特殊权限又在所有者的位置上,亦是SUID权限,因此他就相当于给passwd这个程序的所有者发信息要借用它本来所有者的权限,因此wang才可以有权限。
观察下面的例子:

1240


上面的例子说明了给某个程序加上特殊权限之后,原来的用户虽没有权限但是可以借用某个命令的所有者的权限而拥有对某些文件的权限
SGID:
先来看下面这个例子:

1240


上面这个例子wang用户可以对shadow进行访问时因为cat的所属组有了特殊权限赋予了wang用户,因此wang才可以利用cat对shadow进行 r 权限
Sticky:可以看下面这个例子了解Sticky这个特殊权限:

1240

Alt text

1240

1240

1240

1240

1240

1240


注意:SGID作用在目录:新立的文件的所属组自动继承父目录的所属组
这三个特殊权限对应的权值:SUID:4 ; SGID:2 ;Sticky:1 ;

1240