UNIX文件系统中的粘性是多less?
作为一个pipe理员,你将如何使用它?
它的最初用途是向操作系统提供一个提示,说明可执行文件应该被caching在内存中,以便加载速度更快。 这种用法大多被弃用,因为现在的操作系统对于这种事情是非常聪明的。 事实上,我认为现在一些操作系统使用它作为暗示可执行文件不应该被caching。
目前最常见的用法是创build一个任何人都可以创build文件的目录,但是只有该目录中文件的所有者才能删除它。 传统上,如果您有任何人都可以写入的目录,任何人都可以从中删除文件。 在一个目录上设置粘性位使得只有文件的所有者才能从世界可写目录中删除该文件。
这个的经典用法是/tmp
目录:
$ ls -ld /tmp drwxrwxrwt 29 root root 5120 May 20 09:15 /tmp/
模式中的t
是粘性的。 如果没有设置,那么对于普通用户来说,通过删除/tmp
所有内容来造成严重的后果是相当容易的。 由于许多守护进程将套接字放在/tmp
,它本质上是一个本地DOS。