细说Linux下的粘滞位
1、为什么要有粘滞位?
Linux中有一个存放临时文件的目录/tmp,每个用户产生的临时文件都存放在此目录下,也就是说每个用户对/tmp目录都应该有写权限(否则无法拷贝生成文件),这样造成一个问题,比如,A同学在/tmp目录下创建了一个文件,B同学看着不爽就可以删掉,这如何控制?
2、粘滞位的作用?
我们都知道,/tmp常被我们用来存放临时文件,是所有用户。但是我们不希望别的用户随随便便的就删除了自己的文件,于是便有了粘滞位,它的作用便是让用户只能删除属于自己的文件。
3、如何设置粘滞位?
格式1:chmod +t 文件名/目录名
格式2:chmod 1777 文件名/目录名
(1)在sticky目录下有file、file1、file2三个文件。
(2)用两种方法分别设置file、file2的粘滞位:
(3)在设置file1的粘滞位。
File和file2原来的“x”哪里去了呢?还有,File1的粘滞位“T”为什么是大写而不是小写呢?
原来, 系统是这样规定的,假如本来在该位上有x,则这些特别标志 (suid, sgid, sticky) 显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T) 。
4、一个目录/文件被设置为"粘滞位"后有什么权限?
即当一个目录/文件被设置为"粘滞位",则该目录下的文件只能由:
(1)超级管理员删除
(2)该目录的所有者删除
(3)该文件的所有者删除
也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件。