公众号旧文

一张图片看懂 Linux 权限

作者:胖子阅读 —

图片

上面这张图片,展示的是 Linux 中最常见的一条命令输出:

ls -l

它的作用是以详细格式列出文件信息。

一行信息,包含了文件的身份、权限、归属、大小、时间等关键内容。

下面我们逐项拆解。

一、最左侧:文件类型 + 权限

示例:

drwxr-xr-x
-rw-r--r--

这一段一共 10 个字符,可以分成 4 部分:

1️⃣ 第 1 位:文件类型

字符 含义
d 目录(文件夹)
- 普通文件

例如:

  • d → 这是一个目录
  • - → 这是一个文件

2️⃣ 后 9 位:权限(分三组)

结构:

rwx  r-x  r--
位置 含义
第1组 用户权限(owner)
第2组 组权限(group)
第3组 其他人权限(others)

3️⃣ 每个字母的含义

字母 含义
r 可读(read)
w 可写(write)
x 可执行(execute)
- 没有该权限

4️⃣ 举个完整例子

-rw-r--r--

解释:

  • - → 普通文件
  • rw- → 所有者:可读 + 可写
  • r-- → 同组用户:只读
  • r-- → 其他人:只读

一句话总结:只有文件主人能改,其他人只能看。

二、中间部分:文件身份信息

接下来这一段:

1  shum  staff

示例:1

表示这个文件有几个硬链接(可以理解为有几个入口指向它)

一般:

  • 文件 → 通常是 1
  • 目录 → 会大于 1

6️⃣ 用户名(user / owner)

示例:shum

文件属于哪个用户(谁创建的)

7️⃣ 用户组(group)

示例:staff

文件属于哪个用户组

三、右侧信息:文件属性

8️⃣ 文件大小(size)

4096

单位是字节(B)

9️⃣ 修改时间(date/time last modified)

Jan 16 22:04

文件最后一次被修改的时间

🔟 文件名(filename)

mail

文件或目录的名字

四、整行完整拆解

来看一整行:

drwxr-xr-x 2 shum staff 4096 Jan 16 22:04 mail
部分 含义
d 目录
rwx 所有者:可读可写可执行
r-x 组:可读可执行
r-x 其他人:可读可执行
2 硬链接数
shum 所有者
staff 所属组
4096 大小
Jan 16 22:04 修改时间
mail 文件名

Linux 用一行信息,描述了一个文件的完整权限模型。

包括:

  • 文件是什么(类型)
  • 谁能操作(用户 / 组 / 其他人)
  • 能做什么(读 / 写 / 执行)
  • 属于谁(用户 + 组)
  • 什么时候改过(时间)
  • 有多大(大小)

Linux 的文件权限,本质就是在回答三个问题:

这个东西是谁的? 谁可以动它? 能对它做什么操作?