问:文件的粘滞位(sticky)位是作什么用的?
答: 普通文件的sticky位会被linux内核忽略,目录的sticky位表示这个目录里的文件只能被owner和root删除
粘滞位(Sticky bit)
如果用户对目录有写权限,则可以删除其中的文件和子目录,即使该用户不是这些文件的所有者,而且也没有读或写许可。粘滞位出现执行许可的位置上,用t表示,设置了该位后,其它用户就不可以删除不属于他的文件和目录。但是该目录下的目录不继承该权限,要再设置才可使用。
1.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) 。
粘着位(sticky)
eg:
chmod 777 abc
chmod +t abc
等价于
chmod 1777 abc
在以前旧的系统当中,如果一个程序文件一旦设置了粘着位,那么当该程序中止的时候他的所有指令段将被保存到系统的交换分区当中,再次运行时可以更快的调入系统.
不过现在的操作系统已经不再使用这种功能了.但这并不表示这一功能已经完全被废弃.
当一个目录设置为粘着位时,它将发挥特殊的作用,
即当一个目录被设置为"粘着位"(用chmod a+t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件,这就是粘滞位的作用。。。