什么是linux权限的第4和第5位?

时间:2018-05-10 14:07:22

标签: linux file-permissions

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

  • 所有者(你)
  • 组(g)
  • 其他人(o)

    和权限类型:

  • 阅读(r = 4)

  • 写(w = 2)
  • 执行(x = 1)

(我读过有关setuid/setgidsticky bit的内容,但我并不了解它们有什么用处。)

另一件我不明白的例子是PHP中的5位数而不是3位:那么这是做什么的呢?

mkdir($directory, 02770);

277应该代表所有者的写烫发,以及该组和其他用户的所有内容,但第一个和最后一个数字是什么意思?

1 个答案:

答案 0 :(得分:0)

更多about setuid, setgid, and sticky bit in Wikipedia

  • setuid:可执行文件以文件所有者的权限启动(不是启动进程的用户)。
  • setgid:启动可执行文件,就像用户属于文件所属的组一样。
  • sticky:不允许删除或重命名用户具有写入权限的目录中的文件,除非文件也属于该用户。

常数显示为5位数,但第一位数始终为0;它是八进制文字的约定(即010是8,而不是10)。这是有道理的,因为8位数字的数字正好代表3位,而权限位则按3分组。(这在使用八进制的旧PDP机器上更有意义,尤其是在机器代码显示中,并且Unix开发的原始温床。在Intel和ARM上,十六进制数是常见的,所以octals不会立即被识别出来。)