一、进程以某用户的身份运行。进程是发起此进程用户的代理,所以以此用户的身份和权限完成全部操做。centos
二、权限匹配模型:安全
1)、判断进程的属主是否为被访问的文件属主,若是是,则应用属主的权限,不然进入第2步。bash
2)、一样判断进程的属主,是否属于被访问的文件属组,若是是,则应用属组的权限,不然进入第3步。ide
3)、应用other的权限。spa
默认状况下:由用户发起的进程,该进程的属主是就是发起者,所以,以其发起者的身份在运行。代理
SUID的功用:用户运行某程序时,若是此程序拥有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件本身的属主。进程
管理文件的SUID权限:ci
chmod u+s FILE…get
chmod u-s FILE…it
展现位:属主的执行权限位,若是属主本来有执行权限,显示为小写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权限:
chmod g+s FILE…
chmod g-s FILE…
展现位置:属组的执行权限位,若是属组本来有执行权限,显示为小写s,不然,显示为大写S。
功用: 对于属组或全局可写的目录,组内的全部用户或系统上的全部用户对在此目录中都能建立新文件或删除已有文件,若是为此类目录设置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。
文件的额外赋权机制:
在原来的u、g、o以外,另外一层让普通用户能控制赋权给另外的用户和组的赋权机制
查看某文件的facl
getfacl命令:
getfacl FILE…
user:USERNAME:MODE
group:GROUPNAME:MODE
setfacl命令:
赋权给用户:
setfacl –m u:USERNAME:MODE FIEL…
setfacl –m u:fedora:rw test.centos
赋权给组:
setfacl –m g:GROUPNAME:MODE FILE…
setfacl –m g:mygrp:rw test.centos
撤销赋权:
setfacl –x u:USERNAME FIEL…
setfacl –x u:fedora test.centos
setfacl –x g:GROUPNAME FILE…
setfacl –x g:mygrp test.centos