特殊权限:SUID,SGID,STICKY
安全上下文:
1.进程以某用户的身份运行;进程是发起此进程用户的代理,因此以此用户的身份和权限完成所有操作;
2.权限匹配模型:
(1)判断进程的属主,是否为被访问的文件属主;如果是,则应用属主的权限;否则进入第2步;
(2)判断进程的属主,是否属于被访问的文件属组
SUID:
默认情况下:用户发起的进程,进程的属主是其发起者;因此,其以发起者的身份在运行;
SUID的功用:用户运行某程序时,如果此程序拥有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而程序文件自己的属主;
管理文件的SUID权限:
chmod u+|-s FILE...
展示位置:属主的执行权限位
如果属主原本有执行权限,显示为小写s;
否则,显示为大写S;
SGID:
功用:当目录属组有写权限,且有SGIDSC
展示位置:属组的执行权限位
如果属组原本有执行权限,显示位小写s;
否则,显示位大写S;
Sticky:
功用:对于属组或全局可写的目录,组内的所有用户或系统上的所有用户对在此目录中都能创建新文件或删除所有的已有文件;如果为此类目录设置Sticky权限,则每个用户能创建新文件,且只能删除自己的文件;
管理文件的Sticky权限:
chmod o+ | -t FILE...
展示位置:其它用户的执行权限位
如果其它用户原本有执行权限,显示位小写t;
否则,显示为大写T;
系统上的/tmp和/var/tmp目录默认均有sticky权限;
管理特殊权限的另一种方式:
suid sgid sticky 八进制权限
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
chmod 1777
facl:file access control lists
文件的额外赋权机制:
在原来的u,g,o之外,另一层让普通用户能控制赋权给另外的用户或组的赋权机制;
getfacl命令:
getfacl FILE...
user:USERNAME:MODE
group:GROUPNAME:MODE
setfacl命令:
赋权给用户:
setfacl -m u:USERNAME:MODE FILE...
赋权给组:
setfacl -m g:GROUPNAME:MODE FILE...
撤销赋权:
setfacl -x u:USERNAME FILE...
setfacl -x g:GROUPNAME FILE...