我一直听说粘性位只能与目录一起使用,我理解这一点,但是如果将其应用于文件,则意味着什么。如果我将粘性位设置为文件并执行操作,ls -la
我会看到大写 T,但我不知道这是否会影响文件的行为。
答案1
这是RTFM的一个案例
从man 1 chmod
:
限制删除标志或粘性位 限制删除标志或粘性位是单个位,其解释取决于文件类型。对于目录,它可以防止非特权用户删除或重命名目录中的文件,除非他们拥有该文件或目录;这称为目录的限制删除标志,通常在全局可写目录(例如
/tmp
.对于某些旧系统上的常规文件,该位将程序的文本图像保存在交换设备上,以便运行时加载速度更快;这称为粘性位。
答案2
对于可执行文件,这是居民少量。管理员可以设置它来告诉操作系统将程序代码保留在交换空间中,即使该程序当前没有运行。
现代操作系统具有复杂的内存管理算法,通常在管理内存方面比人类做得更好,因此这一点被忽略了,并且已经存在了几十年。对于任何甚至可以被称为现代的操作系统来说,它都是过时的并且本质上毫无意义。
除非你热衷于复古计算,你永远不会遇到解释它的操作系统。例如,Linux 从未实现过它。 Solaris 于 2005 年删除了它。
对于不可执行的文件,Solaris 上使用粘性位来告诉操作系统不应缓存该文件。它通常设置在交换文件上。