两种权限集都意味着所有者可以读、写、执行;组和世界都可以读取、执行。
我预计 4755 是 r--rwxr-xr-
x,但实际上是-rwsr-xr-x
。
它是什么?
将我的评论复制到下面的 StephenKitt
我一直将权限可视化为文字位。所以 755 是111101101
,但现在我们100
在这些前面有一个 - 所以现在100111101101
以某种方式组合起来在第一个字段中放置一个 's'。它不是 AND,因为7&4
它是 4,而且事实上7
已经是我们能达到的最高值了。很明显,我的想象/期望是误入歧途的。
答案1
您的二进制可视化是正确的,但您的角色可视化不是(这很好,它有点复杂)。
前三位映射为每个字符三元组中的字符变体,如下所示:
最上面的位setuid映射到用户权限的可执行位置,如下:
-
如果可执行位和 setuid 位均未设置;x
如果仅设置了可执行位;S
仅设置了 setuid 位;s
如果两个位都被设置;
第二位 setgid 同样映射到组权限的可执行位置,同样使用
-
、x
和;S
s
第三位,即粘性位,映射到“其他”权限的可执行位置,但使用
-
、x
和。T
t
因此,这十二位适合九个字符:
11 10 9
| | |
8 7 6 5 4 3 2 1 0
r w x/s r w x/s r w x/t
答案2
你会得到同样的东西以不同的方式表达。 4755 是权限,其中:
4
: 表示该二进制文件将以所有者(通常是 root)身份执行,您可以参考 man setuid 命令了解更多信息
7
: 表示该文件可由所有者写入、读取和执行
5
:该组可以读取和执行
5
:意味着任何用户都可以读取和执行(应该rx
在您的示例中)
rwsr表示uid设置为用户(也可以设置为组)。