特殊权限:SUID、SGID、STICKY

安全上下文:

1、进程以某用户的身份运行。进程是发起此进程用户的代理,因此以此用户的身份和权限完成所有操作。

2、权限匹配模型:

1)、判断进程的属主是否为被访问的文件属主,如果是,则应用属主的权限,否则进入第2步。

2)、同样判断进程的属主,是否属于被访问的文件属组,如果是,则应用属组的权限,否则进入第3步。

3)、应用other的权限。

SUID:

默认情况下:由用户发起的进程,该进程的属主是就是发起者,因此,以其发起者的身份在运行。

SUID的功用:用户运行某程序时,如果此程序拥有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件自己的属主。

管理文件的SUID权限:

chmod u+s FILE…

chmod u-s FILE…

展示位:属主的执行权限位,如果属主原本有执行权限,显示为小写s,否则,显示为大写S。

比如passwd 命令

[root@localhost ~]# which passwd
/usr/bin/passwd
[root@localhost ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd
[root@localhost ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 1718 12月 17 17:08 /etc/passwd
[root@localhost ~]# ls -l /etc/shadow
----------. 1 root root 1018 12月 17 17:14 /etc/shadow

可以看到,用户账户信息库文件/etc/passwd、密码库文件/etc/shadow,属组,其他用户都没有写权限,但其他用户又是怎么来修改自己的密码的呢?只因为passwd命令有SUID权限,普通用户才能用管理员身份运行该命令修改自己的密码(只能修改自己的密码,其他参数无效)。

SGID:

功用:当目录属组有写权限,且有SGID权限时,那么所有属于此目录属组的用户,且以属组身份在此目录中新建文件或目录时,新文件的属组不是用户的基本组,而是此目录的属组。

管理文件的SGID权限:

chmod g+s FILE…

chmod g-s FILE…

展示位置:属组的执行权限位,如果属组原本有执行权限,显示为小写s,否则,显示为大写S。

Sticky:

功用: 对于属组或全局可写的目录,组内的所有用户或系统上的所有用户对在此目录中都能创建新文件或删除已有文件,如果为此类目录设置Sticky权限,则每个用户能创建新文件,且只能删除自己的文件。

管理文件的Sticky权限:

chmod o+t FILE…

chmod o-t FILE…

展示位置:其他用户的执行权限位,如果其他用户原本有执行权限,显示为小写t,否则,显示为大写T。

系统上的/tmp/和/var/tmp目录默认均有Sticky权限。

管理特殊权限的另一方式:

SUID SGID Sticy 八进制权限
0 0 0 0
0 0 1 1
0 1 0 2
0 1 1 3
1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7

基于八进制方式赋权时,可于默认的三位八进制数字左侧再加一位八进制数字/

例如:chmod 1777。

facl:file access lists

文件的额外赋权机制:

在原来的u、g、o之外,另一层让普通用户能控制赋权给另外的用户和组的赋权机制

 

查看某文件的facl

getfacl命令:

getfacl FILE…

user:USERNAME:MODE

group:GROUPNAME:MODE

 

setfacl命令:

赋权给用户:

setfacl �Cm u:USERNAME:MODE FIEL…

setfacl �Cm u:fedora:rw test.centos

 

赋权给组:

setfacl �Cm g:GROUPNAME:MODE FILE…

setfacl �Cm g:mygrp:rw test.centos

 

撤销赋权:

setfacl �Cx u:USERNAME FIEL…

setfacl �Cx u:fedora test.centos

 

setfacl �Cx g:GROUPNAME FILE…

setfacl �Cx g:mygrp test.centos

你可能感兴趣的:(用户,上下文,模型,SUID,SGID)