特殊权限
安全上下文
- 进程以某用户的身份运行;进程是发起此进程用户的代理,因此以此用户的身份和权限完成所有操作
权限匹配模型
- 判断进程的属主,是否为被访问文件的属主;如果是,则应用属主的权限;否则进入第二步
- 判断进程的属组,是否为被访问文件的主组;如果是,则应用属组的权限;否则进入第三步
- 应用other权限
SUID
默认情况下:用户发起的进程,进程的属组是其发起者;因此,其以发起者身份运行
SUID的作用:用户运行某程序时,如果此程序拥有SUID权限,那些程序运行为进程时,其属主不是发起者,而是文件自己的属组
管理文件的SUID权限
chmod u+|-s FILE
如果属主原本有执行权限,显示为小写s;否则为大写S
SGID
SGID通常用在目录上
默认情况下:当用户在目录下创建文件时,属组为用户的主组
SGID作用:当用户在有SGID的目录下创建的文件的属组不是用户的基本组,而是该目录的属组
- 管理目录的SGID权限
chmod g+|-s FILE
如果属组本身有执行权限,显示为小写s;否则为大写S
Sticky(粘滞位)
默认情况下/tmp和/var/tmp目录都有sticky权限
作用:在有Sticky权限的目录下,只能删除属组为当前用户的文件
- 管理目录的Sticky权限
chmod o+|-t FILE
如果其他用户有执行权限,显示为小写t;否则显示为大写T
特殊权限的管理方法
suid sgid sticky
0 0 0 0
0 0 1 1
0 1 0 2
.
.
.
1 1 1 8
在进行赋权时可使用类似chmod 1777 FILE
的方式进行授权,第一位表示特殊权限
facl
文件的额外赋权机制:在原有的u/g/o之外让普通用户能控制赋权给另外的用户或组的机制
- 使用方法
getfacl FILE
查看文件的权限列表
setfacl -m u:USERNAME:MODE FILE
赋权给用户
setfacl -m g:GROUPNAME:MODE FILE
赋权给组
setfacl -x u:USERNAME:MODE FILE
撤销用户权限
setfacl -x g:GROUPNAME:MODE FILE
撤销组权限