文件权限

17 Mar 2025 | 4 分钟阅读

Linux 系统中的所有三个所有者(用户所有者、组、其他人)都有三种定义的权限。九个字符表示三种权限。

  1. 读取 (r) : 读取权限允许您打开和读取文件的内容。但您不能对文件进行任何编辑或修改。
  2. 写入 (w) : 写入权限允许您编辑、删除或重命名文件。例如,如果一个文件存在于目录中,并且文件设置了写入权限但目录没有,那么您可以编辑文件内容,但不能删除或重命名它。
  3. 执行 (x): 在 Unix 类型系统中,除非设置了执行权限,否则您无法运行或执行程序。但在 Windows 中,没有这种可用权限。

权限如下所示

权限对文件对目录
r (读)读取文件内容 (cat)读取目录内容 (ls)
w (写)更改文件内容 (vi)在目录中创建文件 (touch)
x (执行)执行文件进入目录 (cd)

权限集

Linux File Permissions1

查看上面的截图,在用户所有者之前有十个字符(-rw-rw-r--)。我们将在下面描述这十个字符。

文件的权限(-rw-rw-r--)

位置字符所有权
1-表示文件类型
2-4rw-用户权限
5-7rw-组权限
8-10r--其他人权限

当您是用户所有者时,用户所有者权限适用于您。其他权限与您无关。

当您属于时,组权限适用于您。其他权限与您无关。

当您是其他人时,其他人权限适用于您。用户和组权限与您无关。

权限示例

现在我们将举例说明如何查看文件或目录的权限。

Linux File Permissions2

查看上面的截图,不同的目录和文件具有不同的权限。

第一个字符(-)或d分别表示文件和目录。

现在,在剩余的九个字母中,第一个三元组表示用户所有者的权限。第二个三元组表示组所有者的权限。第三个三元组表示其他人的权限。

使用 chmod 设置权限

您可以根据需要使用 chmod 命令更改权限。以下是一些更改不同组权限的示例。

为组添加权限。

语法

示例


Linux File Permissions3

查看上面的截图,已将执行权限添加到用户所有者组。

从组中移除权限

语法

示例


Linux File Permissions4

查看上面的截图,已从组中移除执行权限,并从用户所有者中移除了写入权限。

一次性为所有组添加权限

语法

示例


Linux File Permissions5

查看上面的截图,我们为所有组授予了写入权限。

注意:同样,您也可以为所有组移除权限。

无需输入 a 即可为所有组添加权限

语法

示例


Linux File Permissions6

查看上面的截图,此示例与之前的示例相同,唯一的区别是我们没有在此处键入a

设置显式权限

语法

示例


Linux File Permissions7

查看上面的截图,我们为其他人设置了显式的读取和写入权限。

为不同组设置显式权限

语法

示例


Linux File Permissions8

查看上面的截图,我们为所有三个组设置了权限。

设置八进制权限

也可以为组设置八进制权限。

例如,设置r的八进制值为4,设置w的八进制值为2,设置x的八进制值为1

八进制表

binary八进制权限
0000---
0011--x
0102-w-
0113-wx
100
4r--
1015r-x
1106rw-
1117rwx

由此我们可以得出结论:

等等。

Linux File Permissions9

查看上面的截图,我们展示了一些带有数字777、274111的随机八进制示例。

umask

在创建文件或目录时,默认会应用一组权限。这些默认权限通过umask命令查看。

出于安全原因,所有 Unix 系统都不会为新创建的文件提供执行权限。

添加执行权限由您决定。

Linux File Permissions10

mkdir -m

可以使用“mkdir -m”命令来设置模式。

语法

示例


Linux File Permissions11

查看上面的截图,我们分别创建了模式为777000的两个文件new1new2

cp -p

“cp -p”命令会保留源文件的权限和时间戳。

语法

示例


Linux File Permissions12

查看上面的截图,文件列表和 dupli.txt 之前的权限是不同的。但在执行命令“cp -p list dupli.txt”后,这两个文件具有相同的权限。


下一主题Linux chmod 命令