S_ISVTX位由一段有趣的历史。在UNIX尚未使用请求分页式技术的早期版本中,S_ISVTX位被称为粘着位。如果一个可执行程序文件的这一位被设置了,那么当程序第一次被执行,在其终止时,程序正文部分的一个副本仍被保存在交换区(程序的正文部分时机器指令)。这使得下次执行该程序时能较快地将其装载入内存。其原因是:通常的UNIX文件系统中,文件的各数据块很可能是随机存放的,相比较而言,交换区是被作为一个连续文件来处理的。对于通用的应用程序,如文本编辑程序和C语言编译器,我们常常设置它们所在文件的粘着位。自然地,对于在交换区中可以同时存放的设置了粘着位的文件数是有限制的,以免过多占用交换区空间,但无论如何这时一个有用的技术。因为在系统再次自举前,文件的正文部分总是在交换区中,这正是名字总“粘着”的由来。后来的UNIX版本称它为保存正文位,因此也就有了常量S_ISVTX。现今较新的UNIX系统大多数都配置了虚拟存储系统以及快速文件系统,所以不再需要使用这种技术。
现今的系统扩展了粘着位的使用范围,Single UNIXSpecification允许针对目录设置粘着位。如果对一个目录设置了粘着位,只有对该目录具有写权限的用户并且满足下列条件之一,才能删除或重命名该目录下的文件:
- 拥有此文件
- 拥有此目录
- 是超级用户
目录/tmp和/var/tmp是设置粘着位的典型候选者---任何用户都可在这两个目录中创建文件。任一用户(用户、组和其他)对这两个目录的权限通常都是读、写和执行。但是用户不应能删除或重命名属于其他人的文件,为此在这两个目录的问阿金模式中都设置了粘着位。