您的位置:首页 > 运维架构 > Linux

Linux文件系统上的特殊权限      SUID, SGID, Sticky(粘之位)

2017-05-09 22:47 274 查看
每个人都有自己的梦想,我想把它写出来。
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,则每个用户仅能删除自己的文件;
tmp /var/tmp 下的文件默认有sticky特殊权限
权限设定:
chmod o+t DIR...
chmod o-t DIR...



SUID SGID STICKY 对应数字表示
000 0
001 1 t
010 2 g
011 3
100 4 s
101 5
110 6
111 7

chmod 4777 /tmp/a.txt

几个权限位映射:
SUID: user, 占据属主的执行权限位;
s: 属主原来就拥有x权限,添加后显示小写s
S:属主原来没有x权限
SGID: group, 占据group的执行权限位;
s: group拥有x权限
S:group没有x权限
Sticky: other, 占据ohter的执行权限位;
t: other拥有x权限
T:other没有x权限

SUID:运行某程序时,相应进程的属主是程序文件的自身的属主,而不是启动者。2755
chmod u+s FILE u-s
如果FILE本身原来有执行权限,则SUID显示为s;否则显示S;
SGID:运行某程序时,相应进程的属组是程序文件的自身的属组,而不是启动者所属的基本组。3755
chmod g+s FILE
g-s FILE
父目录拥有SGID权限后,其子目录下任何用户创建的文件属组继承父目录属组(不再以用户的基本组做为文件的属组)。属组内用户可以编辑组内其他用户创建的文件。附加组。
sticky:公共目录,每个用户都可以创建文件,删除自己的文件,但不能删除别人的文件。 1755
chmod o+t FILE o-t
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 中文 特殊权限