特殊权限
Linux权限管理
unix/linux系统中认为一切皆文件,而权限就是对用户访问和修改系统文件范围的界定规则。
Linux系统权限模型:
针对用户分为:u, g, o
根据日常对文件的操作分为:r, w, x
进程的安全上下文:
前提:进程有属主(进程以哪个用户的身份运行);文件有属主和属组;
(1) 用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否拥有执行权限;
(2) 程序启动为进程后,此进程的属主为当前用户,也即进程的发起者;进程所属的组,为发起者的基本组;
(3) 进程拥的访问权限,取决其属主的访问权限:
(a) 进程的属主,同文件属主,则应用文件属主权限;
(b) 进程的属主,属于文件的属组,则应用文件属组权限;
(c) 则应用其它权限;
1、SUID:
(1) 任何一个可执行程序文件能不能启动为进程:取决于发起者对程序文件是否有执行权限;
(2) 启动为进程之后,其属主不是发起者,而程序文件自己的属主;这种机制即为SUID;
权限设定:
chmod u+s FILE...
chmod u-s FILE...
注意:
s: 属主原本拥有x权限;
S: 属主原本无x权限;
2、SGID:
(1)默认情况下,用户创建文件时,其属组为此用户所属的基本组;
(2)一旦某目录被设定了SGID权限,则对此目录拥有写权限的用户在此目录中创建的文件所属的组为目录的属组,而非用户的基本组;
权限设定:
chmod g+s FILE...
chmod g-s FILE...
3、Sticky:
对于一个多人可写的目录,此权限用于限制每个仅能删除自己的文件;
权限设定
chmod o+t FILE...
chmod o-t FILE...
4、二进制表示法
SUID, SGID, STICKY权限用二进制表示为:
无特殊权限 000
STICKY 001
SGID 010
STICKY SGID 011
SUID 100
SUID STICKY 101
SUID SGID 110
SUID SGID STICKY111
总结: SUID == 4
SGID == 2
STICKY == 1
其中SUID针对文件,SGID,STICKY针对目录。例:
chmod 4777 FILE
chmod 3755 DIR