Linux/Unix 中的文件权限:如何读取、写入和更改

文件权限 Linux Unix 系统会决定谁可以读取、修改或运行每个文件,从而确保共享的多用户系统的安全。本页将详细介绍文件所有权、读取、写入和执行权限,以及更改这些权限的命令。
Linux 是 Unix 的克隆版本,Unix 是一款多用户操作系统,允许多个用户同时访问。Linux 无需任何修改即可在大型机和服务器上运行。但这引发了安全隐患,因为未经授权或恶意的用户可能会损坏、更改或删除关键数据。为了有效保障安全,Linux 将授权分为两个级别:
- 所有权
- 允许
文件权限和所有权的概念在Linux系统中至关重要。本文将解释Linux的权限和所有权概念,并对二者进行探讨。我们先从所有权开始。
Linux 文件所有权
Unix/Linux 系统中的每个文件和目录都分配有三种类型的所有者,如下所示。下图展示了所有权如何映射到用户、组和其他实体。
用户
用户是文件的所有者。默认情况下,创建文件的人成为其所有者。因此,用户有时也称为所有者。
团队
A 用户组 可以包含多个用户。属于同一组的所有用户对该文件拥有相同的 Linux 组权限。假设您有一个项目,其中多人需要访问某个文件。与其手动为每个用户分配权限,不如将所有用户添加到一个组,并将该组的权限分配给该文件,这样只有该组的成员才能读取或修改该文件,其他任何人都无法访问。
其他
任何其他有权访问该文件的用户。此人既不是文件的创建者,也不属于可以拥有该文件的用户组。实际上,这意味着除您之外的所有人。因此,当您为其他人设置权限时,也称为为所有人设置权限。
现在最大的问题来了:Linux 如何区分这三种用户类型,才能防止用户 A 影响包含其他用户 B 重要信息或数据的文件?这就像不希望你的同事修改你的…… Linux电脑 查看您的图片。这就涉及到权限设置,权限决定了用户的行为。
让我们来了解一下Linux的权限系统。
Linux 文件权限
Unix/Linux 系统中的每个文件和目录都为上面讨论的三个所有者定义了以下三种权限。
- 阅读: 此权限赋予您打开和读取文件的权限。对目录的读取权限使您能够列出其内容。
- 写: 写入权限赋予您修改文件内容的权限。目录的写入权限赋予您添加、删除和重命名存储在该目录中的文件的权限。假设您拥有某个文件的写入权限,但没有该文件所在目录的写入权限。在这种情况下,您可以修改文件内容,但无法重命名、移动或从目录中删除该文件。
- 执行: In Windows可执行程序通常带有“.exe”扩展名,您可以轻松运行它。在Unix/Linux系统中,您必须设置执行权限才能运行程序。如果未设置执行权限,您或许仍然可以查看或修改程序代码(前提是已设置读写权限),但无法运行它。
让我们通过示例来了解 Linux 中的文件权限。在终端运行 `ls -l` 命令会得到:
ls -l
下面的屏幕截图显示了长列表中的权限字符串。
这里,我们突出显示了“-rw-rw-r--”,这段看起来很奇怪的代码告诉我们 Unix 系统授予所有者、用户组和所有人的权限。
这里,第一个“-”表示我们已选择一个文件。下面的图标表示一个普通文件。
否则,如果它是一个目录,则会显示“d”,如下面的列表所示。
人物很容易记住。
- r = 读取权限
- w = 写入权限
- x = 执行权限
- – = 无权限
我们换个角度来看。代码的第一部分是“rw-”。这表明所有者“Home”可以:
- 读取文件
- 写入或编辑文件
由于执行位被设置为“-”,因此所有者无法执行该文件。下图显示执行位已被清除为短横线。
许多Linux发行版,例如Fedora、CentOS和,都是出于设计考虑而采用的。 Ubuntu 将用户添加到与其同名的组中。例如,用户“tom”将被添加到名为“tom”的组中。
第二部分是“rw-”。它属于用户组“Home”,组成员可以:
- 读取文件
- 写入或编辑文件
第三部分面向全球用户,即所有用户。它显示为“r–”。这意味着用户只能:
- 读取文件
下面的步骤将权限字符串的每个部分映射到所有者、组和世界。
在 Linux 系统中使用“chmod”命令更改文件/目录权限
假设你不想让同事看到你的个人照片,这可以通过更改文件权限来实现。
我们可以使用“chmod”命令。 命令,即“更改模式”。使用该命令,我们可以为所有者、组和所有人设置文件或目录的权限(读取、写入、执行)。
语法:
chmod permissions filename
该命令有两种使用方法:
- 绝对模式
- 符号模式
Linux 中的绝对(数值)模式
在这种模式下,文件权限不以字符形式表示,而是以三位八进制数表示。下表列出了所有权限类型的数值。
| 联系电话 | 权限类型 | 图形符号 |
|---|---|---|
| 0 | 没有权限 | - |
| 1 | 演练: | -X |
| 2 | 填写 | -W- |
| 3 | 执行 + 写入 | -wx |
| 4 | 了解 | r- |
| 5 | 读取 + 执行 | RX |
| 6 | 阅读+写作 | RW |
| 7 | 读取 + 写入 + 执行 | RWX |
让我们看看 chmod 命令的实际应用,如下图终端窗口所示。
在上面的终端窗口中,我们将文件“sample”的权限更改为“764”。“764”绝对路径的含义如下:
- 所有者可以读取、写入和执行。
- 用户组拥有读写权限。
- 世界只能阅读。
这显示为“-rwxrw-r--”,如下结果所示。
这就是在 Linux 系统中通过分配绝对数字来更改文件用户权限的方法。
Linux 中的符号模式
绝对模式下,您可以更改所有三个所有者的权限。符号模式下,您可以修改特定所有者的权限。它使用数学符号来修改 Unix 文件权限。
| Opera器 | 描述 |
|---|---|
| + | 为文件或目录添加权限 |
| – | 删除权限 |
| = | 设置权限并覆盖之前设置的权限。 |
各所有者名单如下。
| 用户 | 指称 |
|---|---|
| u | 用户/所有者 |
| g | 组 |
| o | other |
| a | 所有 |
我们将不再使用像 755 这样的数字权限,而是使用像 rwx 这样的字符。让我们来看下面的例子。
在 Linux 中更改所有权和组
要更改文件或目录的所有权,可以使用以下命令:
chown user filename
如果要同时更改文件或目录的用户和组,请使用以下命令:
chown user:group filename
让我们看看它是如何运作的,如下所示。
如果您只想更改组所有者,请使用以下命令:
chgrp group_name filename
“chgrp”代表更改组。下面的屏幕截图显示了 chgrp 命令的使用过程。
Tips:
- /etc/group 文件包含系统中定义的所有组。
- 您可以使用“groups”命令查找您所属的所有组,如下所示。
- 您可以使用 newgrp 命令以非默认组成员的身份工作,如下所示。
- 同一个文件不能由两个用户组拥有。
- Linux 系统中没有嵌套组的概念。一个组不能是另一个组的子组。
- x — 执行目录意味着允许“进入”目录并获得对子目录的访问权限。
- 您还可以对文件和目录设置其他权限,这将在以后的高级教程中介绍。






.png)
.png)
.png)
.png)
.png)


