关于粘住位(Sticky Bit)的说明
一、定义与历史用途
-
核心定义
粘住位(Sticky Bit)是UNIX/Linux文件系统中的一种特殊权限属性,对应文件模式中的S_ISVTX
标志位。最初用于可执行文件,设置后可使程序首次执行结束时将代码段保留在交换区,以提升后续加载速度(因交换区文件存储连续)12。 -
早期应用场景
在早期UNIX系统中,粘住位常用于高频使用的程序(如文本编辑器、编译器),通过减少磁盘寻址时间优化性能。但现代系统因虚拟内存和高效文件系统(如快速文件系统、日志文件系统)的普及,此功能已逐渐弃用12。
二、现代用途与权限规则
-
目录粘住位的作用
现代UNIX/Linux系统中,粘住位主要作用于目录。若目录设置了粘住位,则用户需满足以下条件之一才能删除或重命名该目录下的文件:- 用户是文件所有者;
- 用户是目录所有者;
- 用户拥有超级用户权限12。
-
典型应用场景
系统目录如/tmp
和/var/spool/uucp
常设置粘住位,确保多个用户共享目录时仅能管理自己的文件,避免误删他人文件13。
三、权限设置与标识
-
设置方法
通过chmod
命令设置粘住位:- 符号模式:
chmod +t <目录>
; - 八进制模式:
chmod 1777 <目录>
(末位1
表示粘住位)13。
- 符号模式:
-
权限标识
目录权限显示为rwxrwxrwt
(末尾t
表示粘住位生效)或rwxrwxrwT
(大写T
表示粘住位设置但目录无执行权限)13。
四、兼容性与系统差异
- 部分UNIX变体(如SVR4、4.3+BSD)已完全转向目录粘住位的实现,不再支持可执行文件的粘住位功能12。
- 粘住位的具体行为可能因文件系统类型(如ext4、XFS)或操作系统版本存在细微差异3。-s