关于目录访问权限中的限制删除标志位(sticky位)

当我们说到sticky位(t)时,一般都是在说“在设置了sticky位(t)的目录下,用户只能删除属于自己的文件”,其实这样说并不确切。在网上找了几篇文章后 还是没有找到比较权威的解释,man一下chmod可以发现一段对该位的详细解释,说的很明白。翻译如下以备忘。原文见man chmod(1)。

“限制删除标志和粘滞位共用一个位,系统依赖于文件类型来解释此位。对于目录,该位阻止非授权用户删除或重命名本目录下的文件除非该用户是文件或目录的属 主,这就是所谓的目录的限制删除标志,通常在所有人都可写的目录/tmp上可以发现该标志。在一些老旧系统的普通程序文件上,该位使系统在交换设备上保存程序的映像从而使程序可以更快的再次运行,这就是所谓的粘滞位。”

所以当该位用于目录权限设置时,叫做“限制删除标志位”更合适。

PS:此文最早发表于cppblog.

===
[erq]