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


18

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


3
粘性位对普通文件有作用。有关使用方法的方式,请参见en.wikipedia.org/wiki/Sticky_bit
约书亚

@Joshua这很有趣,在非Linux * nixes上,行为是不同的,这是个好主意。但是我想到了这个问题。我想知道是否有人在具有BSD amd和ls的Linux内核上仍然可以依赖粘性文件位?而且我猜想,即使我不知道有任何普通的用户级程序也可以对其进行检查/采取措施。
哈里

Answers:


26

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


谢谢,但是这是否阻止他们在内部仍然“有点”?还是在每个文件级别仅节省一点钱就不够?
哈里

6
可执行文件可以具有suid和sticky的所有四个组合。
约翰·迈伦(JohanMyréen)

是的,因此是最初的问题。也许用更好的措词来说,为什么今天的粘性位的名称(或过去的用法)与将其与suid位组合在一起有什么关系?不能将两个位的功能组合为一个“粘滞/ suid”位,当在文件上设置时该位起suid的作用,而在目录上设置时起粘力作用?
哈里

17
如果左右移动位,则会破坏向后兼容性。chmod 4755 file设置suid位,并chmod 1755 dir设置粘性位。我们不想仅仅为了每个文件节省一点就破坏旧脚本,是吗?当然,只要外部接口保持不变,内部文件系统就可以自由地进行优化。
约翰·迈伦(JohanMyréen)

6
@JohanMyréen:当然,您实际上不会保存该位,它只会在字节/字权限字段中变为未使用的位。
jamesqf
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.