Linux 通过类似文件的接口表示许多资源,每个文件系统对象都有控制访问的元数据。学会阅读这些元数据,是安全处理文件和目录的基础。
权限 · 第 1 课
文件权限
学习如何读取 Linux 文件类型,以及所有者、组和其他用户的权限位。
阅读长列表
使用 ls -l 显示长列表:
$ ls -ld Desktop/
drwxr-xr-x 2 pete penguins 4096 Dec 1 11:45 Desktop/
第一个字段 drwxr-xr-x 由一个文件类型字符和九个权限字符组成。列表还表明 pete 是所有者,penguins 是与该目录关联的组。
第一个字符描述对象类型。常见值包括:
-表示普通文件d表示目录l表示符号链接
还有其他特殊文件类型。剩余九个字符是访问权限:
d | rwx | r-x | r-x
在 drwxr-xr-x 中,第一个 d 表示什么?
理解 `r`、`w` 和 `x`
每个权限三元组使用以下字符:
r授予读取权限。w授予写入权限。x授予执行权限。-表示没有该权限。
对于普通文件,读取允许访问内容,写入允许修改内容,执行允许内核尝试把它作为程序运行。如果文件格式、解释器行、挂载选项或其他安全控制不允许,执行仍可能失败。
对于目录,这些含义针对目录项:
- 读取允许列出目录中的名称。
- 写入允许创建或删除目录项,通常还需结合执行权限。
- 执行也称搜索权限,允许遍历目录并按名称访问目录项。
删除文件主要受父目录权限控制,而不是文件自身的写入位。
目录的执行权限主要允许什么?
所有者、组和其他类别
九个模式字符按固定顺序组成三个三元组:
- 所有者:当进程的有效用户 ID 与文件所有者匹配时使用的权限。
- 组:当适用的进程组 ID 与文件组匹配时使用的权限。
- 其他:前两个类别都不匹配时使用的权限。
内核会选择一个适用类别,不会组合三个三元组来寻找最宽松的结果。访问控制列表、挂载选项、capabilities 或强制访问控制等其他机制还可能影响最终决策。
在示例中,所有者三元组是 rwx,组和其他都是 r-x。所有者可以读取、写入和搜索目录。组和其他类别可以读取及搜索,但不能通过普通模式位创建或删除目录项。
在文件类型字符之后,三个权限三元组按什么顺序出现?
在 drwxr-xr-x 中,组类别具有哪些普通权限?
要在隔离环境中巩固这些概念,可以尝试 Linux 用户组和文件权限 实验。它提供读取模式以及更改所有权和权限的练习。
课程已完成
你已完成 文件权限
现在,你可以解释 Linux 长列表中的基本权限字段。
把文件类型字符与九个权限位分开。
根据对象是文件还是目录来解释
r、w和x。把模式分成所有者、组和其他三元组。
把三元组与
ls -l显示的所有者和组联系起来。