什么是粘滞位?
粘滞位(Sticky bit),或粘着位,是linux文件系统的特殊权限!最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。 实际应用中,粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。
这里可以看到目录文件tmp的权限是rwxrwxrwt。
(而/usr/bin/passwd中的权限带有s,有兴趣的可以去看一下鸟哥的Linux的私房菜7.4.3节)
在主工作目录下创建一个目录他的权限是rwxrwxr-x。
在root用户模式下创建了目录code4,在目录code4下创建了文件file并把目录code4的权限改为777(即rwxrwxrwx),然后退出root在code4目录下删掉file发现成功了。
那么对于一个目录,任何具有该目录写和执行的用户都可以删除和移动该目录中的文件(这是很可怕的),为了防止其他用户删除我们目录下的文件,因此我们需要设置粘滞位。
那么怎么设置粘滞位呢?
在/tmp中我们看到t是粘滞位的标志。
1:root下给执行指令:chmod o+t code4
此时在普通用户下去删除file文件就做不到了。
相对应的去除粘滞位的指令就是:chmod o-t code4
2:执行指令:chmod 1xxx code4
(即在原有的权限前加了一个1)
对应的去除指令为:chmod 777 code4
当目录粘滞位设置成功之后,只有自己和root才可以对此目录内的文件进行删除和移动操作。