如果 suid 位对目录没有影响,而粘性位对文件没有影响,为什么不将它们合并为一位?

Har*_*rry 18 permissions files

这会为每个文件节省一位,还是无论如何都必须使用必要的填充?即使有填充,为什么不仍然将它们组合起来并将额外的位用于新功能呢?

Joh*_*éen 27

由于历史原因。粘滞位最初用于完全不同的目的:如果它被设置在一个可执行文件上,它会告诉操作系统将文本段保留在交换中。因此得名“粘滞位”。

  • 如果你移动位,你会破坏向后兼容性。`chmod 4755 file` 设置 suid 位,`chmod 1755 dir` 设置粘滞位。我们不想为了每个文件节省一点而破坏旧脚本,是吗?当然,只要外部接口保持不变,内部文件系统就可以自由实现您的优化。 (17认同)
  • 一个可执行文件可以具有 suid 和 sticky 的所有四种组合。 (6认同)
  • @Johan Myréen:当然,您实际上不会保存该位,它只会成为字节/字权限字段中未使用的位。 (6认同)