Linux 上文件权限中的“t”表示什么?

Neo*_*ash 5 linux

当我在目录上运行 ls -l 命令时,我看到文件的以下权限,但我不知道权限中的“t”表示什么?

-r-----rwt 1 bruce bruce 28146 Oct 27 09:48 sample
Run Code Online (Sandbox Code Playgroud)

sample 是一个 ELF 二进制文件,我想知道我是否拥有它的执行权限。

Bob*_*Bob 10

简而言之:它表示一个粘性位。在文件上,这些天它基本上没用 - 它是旧操作系统的优化提示。它对目录有相当不同的含义。

小写t表示,x而大写T不表示。


GNUls记录在其信息页面 ( info ls) 中,也可在 web 上找到

列出的文件模式位类似于符号模式规范(请参阅符号模式)。但是 ls 将多个位组合到每组权限的第三个字符中,如下所示:

...

t

如果限制删除标志或粘滞位以及其他可执行位都被设置。受限删除标志是粘滞位的另一个名称。请参阅模式结构

T

如果设置了限制删除标志或粘滞位,但未设置其他可执行位。

x

如果设置了可执行位并且以上都不适用。

小写t表示x(对于其他用户用户分别显示)而大写T不表示。

这导致我们进入模式结构

除了上面列出的三组三个权限之外,文件模式位还有三个特殊组件,它们只影响可执行文件(程序),在大多数系统上,还影响目录:

...

  1. 防止非特权用户删除或重命名目录中的文件,除非他们拥有该文件或目录;这称为目录的受限删除标志,通常可在世界可写目录(如 /tmp)中找到。

    对于一些旧系统上的常规文件,将程序的文本图像保存在交换设备上,以便在运行时加载更快;这称为粘滞位

当用于文件时,这是一个旧的优化,指示操作系统在它们运行后缓存它们。它在现代操作系统中不再相关。