note/unix-mode

Unix 的每个文件有文件模式来表示权限。

字符串表示

$ ls -l
-rwxr-xr-x 1 genel genel 2795315 Nov 11 14:18 salias
-rw-r--r-- 1 genel genel    6770 Nov 11 14:17 salias.go

使用 ls -l 打出的,首位为文件类型(普通文件,路径,设备,符号链接),后 9 位就是文件模式。每三位为一组,各组分别是 owner(使用 chown 更改)、group(使用 chgrp 更改)和 others(除 owner 和 group 外的用户都是 others)的权限。

  • r: 可以读取
  • w: 可以修改或删除
  • x: 可执行

E.g. rwx r-x r-- root sdkusers 表示 root 用户可读取、写入、执行,sdkusers 用户组可以读取和执行,其他用户(组)则只能读取。

八进制数表示

先看每个位用什么表示:

  • r == 4
  • w == 2
  • x == 1
  • - == 0

然后三个位为一组相加,如 rw- 则为 4+2+0 = 6r-x 则为 4+0+1 = 5

最后三组合在一起,如 rwx r-x r-x 则为 755

常用的文件模式

stringnumbericusage
rw- r-- r--644默认文件的模式
rwx r-x r-x755默认可执行文件的模式
rwx rwx r-x775赋予某个用户组特殊权限的情况

About Me