如何通过11位字段中的12位掩码将SETUID位打开?

问题描述 投票:0回答:1

在Andrew S. Tanenbaum和Albert S. Woodhull编写的操作系统设计和实现中,有以下片段:

在MINIX 3中,每个文件都具有11位模式用于保护。这些位中的9位是所有者,组和其他用户的写执行位。

然后,几行之后,他们写道:

其他两个保护位,02000 [八进制200]和04000 [八进制400],分别是SETGID(设置组ID)和SETUID(设置-用户ID)位。

但是Python显示八进制400是一个12位长掩码:

>>> len(str(bin(0o4000))) - len('0b')

12

如何将12位长的掩码应用于11位字段?

unix data-structures bit-manipulation bitwise-operators
1个回答
0
投票

01000是Unix中的“ sticky”位,而Minix在本书发行时不支持它。直到2010年它才增加支持(该书于2005年发行)。

© www.soinside.com 2019 - 2024. All rights reserved.