每个人都有自己的梦想,我想把它写出来。
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
本文出自 “12040214” 博客,请务必保留此出处http://12050214.blog.51cto.com/12040214/1923884
Linux文件系统上的特殊权限 SUID, SGID, Sticky(粘之位)
原文地址:http://12050214.blog.51cto.com/12040214/1923884