我正在尝试了解Linux的权限系统。 我了解这些群体:
所有者 (u)
组(g)
其他 (o)
和权限类型:
读取(r = 4)
写入(w = 2)
执行(x = 1)
(我读过一些有关 setuid/setgid
和 sticky bit
的内容,但我不太明白它们的用途。)
另一件事我不明白,例如在 PHP 中,权限的 5 位数字而不是 3 位:那么这有什么作用?
mkdir($directory, 02770);
277
应该表示所有者的写入权限,以及组和其他用户的所有内容,但是第一个和最后一个数字意味着什么?
最佳答案
更多 about setuid, setgid, and sticky bit in Wikipedia .
- setuid:可执行文件以文件所有者(而不是启动进程的用户)的权限启动。
- setgid:启动可执行文件,就好像用户属于该文件所属的组一样。
- 粘滞:不允许删除或重命名用户具有写入权限的目录中的文件,除非这些文件也属于该用户。
常量显示为 5 位数字,但第一位始终为 0
;它是八进制文字的约定(即 010
是 8,而不是 10)。这是有道理的,因为 8 基数的数字恰好代表 3 位,并且权限位按 3 分组。(这在使用八进制的旧 PDP 机器上更有意义,特别是在机器代码表示中,并且Unix 开发的原始温床。在 Intel 和 ARM 上,十六进制数很常见,因此八进制数不能立即被识别。)
关于linux - Linux权限中的第4位和第5位数字是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50274858/