Linux——粘滞位
何为粘滞位?
粘滞位(Stickybit),也称粘着位,是Unix文件系统权限的一个旗标。最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。在实际应用中,粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。
粘滞位的作用:
在Linux系统中,比较典型的例子就是“/tmp”、 “/var/tmp”目录。这两个目录作为Linux系统的临时文件夹,权限为“rwxrwxrwx”,即允许任意用户、任意程序在该目录中进行创建、删除、移动文件或目录等操作。然而试想一下,若任意一个普通用户都能够删除系统服务运行中使用的临时文件,将造成什么结果?粘滞位权限便是针对此种情况设置,当目录被设置了粘滞位权限以后,即便用户对该目录有写的权限,也不能删除该目录中其他用户的文件数据,而是只有该文件的所有者和root用户才有权将其删除。设置了粘滞位之后,正好可以保持这种动态的平衡:允许各用户在目录中任意写入、删除数据,但是禁止随意删除其他用户的数据。
(注意:粘滞位权限只能针对目录设置,而对于文件无效。)
实例分析:
设置了粘滞位权限的目录,使用ll命令查看文件信息时,其他用户权限处的“x”将变为“t”。我们可以通过查看/tmp、 /var/tmp目录本身的权限,来确认“t”标记。
粘滞位权限是针对其他用户( other)设置,使用chmod命令设置目录权限时,“o+t”、“o-t”权限模式可分别用于添加、移除粘滞位的权限,下面例子为code录设置粘滞位权限。
此时普通用户便因无权限而无法删除/root/code/hello文件。