一、前言

Linux 权限是系统管理中的基础能力,它决定了谁能访问文件或目录,以及能够执行什么操作。理解权限模型后,后续学习文件权限、目录权限和特殊权限都会更加清晰。

二、了解 Linux 权限

2.1 权限类型

在 Linux 中,权限主要分为三种:

  • 读权限(r):允许用户查看文件内容。
  • 写权限(w):允许用户修改文件内容。
  • 执行权限(x):适用于命令、脚本或可执行文件,允许用户运行其中的程序。

2.2 用户类别

Linux 中任何一个文件或目录,与用户之间通常有 3 种权限关系:

  • 文件所有者(User):文件的创建者或属主,通常拥有最高优先级的访问权限。
  • 用户组(Group):可以包含多个用户,共享特定文件的权限。
  • 其他用户(Others):既不是文件所有者,也不属于该文件所属用户组的其他系统用户。

2.3 权限表示方式

文件权限通常使用 9 个字符表示,例如 -rwxr-xr--。这串字符可以按下面的方式理解:

  • 第 1 个字符表示文件类型,常见的 - 表示普通文件,d 表示目录。
  • 第 2 到第 4 个字符表示文件所有者的权限。
  • 第 5 到第 7 个字符表示用户组的权限。
  • 第 8 到第 10 个字符表示其他用户的权限。

Linux九位权限体系

2.4 权限计算方式

每种权限都可以用一个数字表示,组合后就形成了我们常见的三位数字权限。

权限 含义 权限对应的数字
r read,是否可读 4
w write,是否可写 2
x execute,是否可执行(命令或脚本) 1
- 没有权限 0

例如:

  • 7 = 4 + 2 + 1,表示 rwx
  • 5 = 4 + 1,表示 r-x
  • 4 = 4,表示 r--

三、系统默认权限与 umask

Linux 通过 umask 命令控制新建文件和目录的默认权限。通常可以这样理解:

  • 文件的最大默认权限是 666
  • 目录的最大默认权限是 777
  • 实际默认权限 = 最大默认权限 - umask
  • 常见默认 umask 值为 022

需要注意的是,普通文件默认不会直接带执行权限,因此在文件权限计算场景中,如果某一位 umask 是奇数,往往还需要结合文件默认不赋予执行位这一规则来理解最终结果。

分类 默认权限
文件 644
目录 755

查看默认 umask

$ umask
0022

设置 umask 值为 012

$ umask 012

四、小结

学习 Linux 权限时,建议先记住三件事:

  • 权限本质上就是 rwx 的组合。
  • 权限判断一定要区分所有者、用户组和其他用户。
  • 数字权限、字符权限和 umask 之间是可以互相对应理解的。