档案的粘滞位 (sticky) 位是作什么用的?
普通档案的 sticky 位会被 linux 核心忽略,
目录的 sticky 位表示这个目录里的档案只能被 owner 和 root 删除
粘著位(Sticky bit)
如果使用者对目录有写许可权,则可以删除其中的档案和子目录,即使该使用者不是这些档案的所有者,而且也没有读或写许可。粘著位出现执行许可的位置上,用 t 表示,设定了该位后,其它使用者就不可以删除不属于他的档案和目录。但是该目录下的目录不继承该许可权,要再设定才可使用。
# chmod 1770 xxx
举一个 linux 下的常见目录来做例子,也就是 /tmp 目录来说一下粘连位的作用。
#ls -dl /tmp
drwxrwxrwt 4 root root ………
注意 other 位置的 t,这便是粘连位。
我们都知道,/tmp 常被我们用来存放临时档案,是所有使用者。但是我们不希望别的使用者随随便便的就删除了自己的档案,于是便有了粘连位,它的作用便是让使用者只能删除属于自己的档案。
那么原来的执行标志 x 到哪里去了呢? 系统是这样规定的, 假如本来在该位上有 x, 则这些特别标志 (suid, sgid, sticky) 显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T) 。
3) 粘著位 (sticky)
eg:
chmod 777 abc
chmod +t abc
等价于
chmod 1777 abc
在以前旧的系统当中, 如果一个程式档案一旦设定了粘著位,
那么当该程式中止的时候他的所有指令段将被储存到系统的交换分割槽当中,
再次执行时可以更快的调入系统.
不过现在的操作系统已经不再使用这种功能了.
但这并不表示这一功能已经完全被废弃.
当一个目录设定为粘著位时,它将发挥特殊的作用,
即当一个目录被设定为” 粘著位”(用 chmod a+t), 则该目录下的档案只能由
一、超级管理员删除
二、该目录的所有者删除
三、该档案的所有者删除
也就是说, 即便该目录是任何人都可以写, 但也只有档案的属主才可以删除档案。