Contents

Linux文件系统上的特殊权限

SUID, SGID, Sticky

1 权限

​ r, w, x

​ user, group, other

2 安全上下文

​ 前提:进程有属主和属组;文件有属主和属组;

​ (1) 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限;

​ (2) 启动为进程之后,其进程的属主为发起者;进程的属组为发起者所属的组;

​ (3) 进程访问文件时的权限,取决于进程的发起者:

​ (a) 进程的发起者,同文件的属主:则应用文件属主权限; ​ (b) 进程的发起者,属于文件的属组;则应用文件属组权限; ​ (c) 应用文件“其它”权限;

3 SUID

​ (1) 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限; ​ (2) 启动为进程之后,其进程的属主为原程序文件的属主;

权限设定:
	chmod u+s FILE... 
	chmod u-s FILE...

4 SGID

​ 默认情况下,用户创建文件时,其属组为此用户所属的基本组; ​ 一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组;

权限设定:
	chmod g+s DIR...
	chmod g-s DIR...

5 Sticky

​ 对于一个多人可写的目录,如果设置了sticky,则每个用户仅能删除自己的文件;

权限设定:
	chmod o+t DIR...
	chmod o-t DIR...

SUID SGID STICKY
	000 0
	001 1
	010 2
	011 3
	100 4
	101 5
	110 6
	111 7

	chmod 4777 /tmp/a.txt

几个权限位映射:
	SUID: user, 占据属主的执行权限位;
		s: 属主拥有x权限
		S:属主没有x权限
	SGID: group,  占据group的执行权限位;
		s: group拥有x权限
		S:group没有x权限			
	Sticky: other, 占据ohter的执行权限位;
		t: other拥有x权限
		T:other没有x权限