linux - Linux权限中的第4位和第5位数字是什么?

标签 linux file-permissions

我正在尝试了解Linux的权限系统。 我了解这些群体:

  • 所有者 (u)

  • 组(g)

  • 其他 (o)

    和权限类型:

  • 读取(r = 4)

  • 写入(w = 2)

  • 执行(x = 1)

(我读过一些有关 setuid/setgidsticky 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/

相关文章:

c++ - ppu 和 spu 之间结构大小的差异

linux - 当条件处于ansible状态时

php - Apache + PHP 中的 "End of script output before headers"

java - 为什么将 FileOutputStream 打开到二进制文件会损坏它?

c - IFF_UP 和 IFF_RUNNING 有什么区别?

即使被杀死和处置(在 Linux 上),C# 启动进程也会泄漏内存

编译差异: Windows vs. Linux

linux - npm 是使用 sudo 安装的吗?

c# - 如何在使用 .NET 安装期间授予文件夹读/写权限

linux - Symfony 文件权限问题