在 Linux 中管理文件和目录权限

CompTIABeginner
立即练习

介绍

在本实验中,你将学习在 Linux 环境中管理文件和目录权限的基础技能。你将从搭建专用工作空间开始,创建一个新目录和一个示例文件作为练习基础。这种亲手实践的方式将让你练习使用核心命令行工具来控制数据访问。

在整个实验过程中,你将使用 chown 命令更改文件所有权,并使用 chmod 命令修改不同用户和组的读取、写入和执行权限。你将首先把这些概念应用到单个文件上,然后学习这些权限如何独特地影响目录访问。最后,你将能够有效地保护文件并管理 Linux 系统上的用户访问。

这是一个引导式实验,提供分步说明以帮助你学习和练习。请仔细遵循说明完成每个步骤并获得实践经验。历史数据表明,这是一个初学者级别的实验,完成率为 98%。它获得了学习者 100% 的好评率。

准备工作空间并创建文件

在这一步中,你将首先为本实验搭建一个专用工作空间。在 Linux 中,将文件组织到特定目录中是维护整洁且易于管理的文件系统的基本做法。你将创建一个目录,然后在其中创建一个新文件,该文件将作为后续步骤中权限管理练习的对象。

首先,在当前工作目录 ~/project 中创建一个名为 RandD(代表研发部)的新目录。mkdir 命令用于创建新目录。

在终端中执行以下命令:

mkdir RandD

接下来,进入新创建的 RandD 目录。cd(切换目录)命令允许你在文件系统的目录之间移动。

cd RandD

你的终端提示符现在应该显示你位于 ~/project/RandD 目录内。

现在,让我们创建一个代表设计文档的空文件。touch 命令是创建新的空文件的简便方法。如果文件已经存在,touch 会更新其修改时间戳而不更改其内容。

创建一个名为 design_doc.odt 的新文件:

touch design_doc.odt

要确认文件已创建并检查其默认属性,请使用 ls -l 命令。此命令以长格式列出当前目录的内容,提供详细信息,如权限、所有者、组、大小和修改日期。

ls -l

你应该会看到类似以下的输出。请注意,默认情况下,新文件由你的用户帐户(labex)和你的主组(labex)所有。权限字符串 -rw-rw-r-- 将在接下来的步骤中详细解释。

total 0
-rw-rw-r-- 1 labex labex 0 Jun 26 10:36 design_doc.odt

你现在已成功准备好工作空间并创建了本实验的目标文件。在接下来的步骤中,你将学习如何修改其所有权和权限。

使用 chown 命令更改文件所有权

在这一步中,你将学习如何更改文件的所有权。在 Linux 中,每个文件和目录都分配有一个所有者(特定用户)和一个组。这种所有权是 Linux 安全模型的基石,因为它有助于确定谁有权读取、写入和执行文件。用于更改所有权的命令是 chown

我们的场景要求 design_doc.odt 文件由新用户 student1 和新的协作组 research 管理。由于该用户和组尚不存在,你必须先创建它们。

确保你仍处于 ~/project/RandD 目录中。如果不在,请使用 cd ~/project/RandD 命令跳转到该目录。

首先,使用 groupadd 命令创建 research 组。这是一个需要管理权限的系统级操作,因此必须使用 sudo

sudo groupadd research

接下来,使用 useradd 命令创建 student1 用户。-m 参数用于为新用户创建家目录,这是标准做法。这也需要 sudo 权限。

sudo useradd -m student1

现在 student1 用户和 research 组已经存在,你可以更改 design_doc.odt 文件的所有权了。chown 的语法是 chown 用户:组 文件名。你需要使用 sudo 来执行此命令,因为你正在将文件分配给另一个用户。

sudo chown student1:research design_doc.odt

要验证所有权是否已更新,请再次使用 ls -l 命令。

ls -l

输出现在将显示 student1 为用户所有者,research 为组所有者。

total 0
-rw-rw-r-- 1 student1 research 0 Jun 26 10:36 design_doc.odt

将此结果与之前的输出进行比较。第三列和第四列已从 labex labex 更改为 student1 research,确认你的命令执行成功。你现在已经完成了设计文档的所有权转移。

使用 chmod 命令修改文件权限

在这一步中,你将学习如何使用 chmod(更改模式)命令来控制谁可以读取、写入或执行文件。文件权限是 Linux 安全模型的一个基本方面。你将练习删除「其他用户」的权限,以使文档更加安全。

首先,确保你在 ~/project/RandD 目录中。让我们使用 ls -l 重新检查 design_doc.odt 的当前权限。

ls -l
-rw-rw-r-- 1 student1 research 0 Jun 26 10:36 design_doc.odt

字符串 -rw-rw-r-- 代表文件的权限。它分为三组,每组三个字符,分别对应用户(所有者)、其他用户(除前两者外的所有人)。

  • rw-:所有者 student1 拥有(read)和(write)权限。
  • rw-:组 research 已经拥有权限。
  • r--:其他用户仅拥有权限。

如你所见,research 组已经拥有该文档的写入权限,这允许团队协作。但是,为了确保文档的机密性,你应该删除「其他用户」的所有权限。你可以使用八进制(数字)表示法的 chmod 来实现这一点,这是一种常用且高效的方法。

让我们再次验证当前权限:

ls -l

输出确认了当前权限:

-rw-rw-r-- 1 student1 research 0 Jun 26 10:36 design_doc.odt

现在,为了确保文档的机密性,你应该删除「其他用户」的所有权限。你可以使用八进制(数字)表示法的 chmod 来实现这一点。

以下是八进制权限的工作原理:

  • r (读) = 4
  • w (写) = 2
  • x (执行) = 1

你将每个类别(用户、组、其他用户)所需权限的数字相加。

  • 用户:读 (4) + 写 (2) = 6
  • :读 (4) + 写 (2) = 6
  • 其他用户:无权限 = 0

生成的权限代码是 660。让我们应用它。

sudo chmod 660 design_doc.odt

最后,最后一次验证权限。

ls -l

输出确认「其他用户」现在没有任何权限(---),从而保护了文档。

-rw-rw---- 1 student1 research 0 Jun 26 10:36 design_doc.odt

你已成功修改了文件的权限,在允许组协作的同时限制了其他人的访问。

控制目录访问权限

在最后一步中,你将保护整个 RandD 目录。就像文件一样,目录也有控制访问的权限。但是,读取、写入和执行权限对于目录的含义有所不同。

  • r (读): 允许用户列出目录的内容(即查看其中的文件和子目录名称)。
  • w (写): 允许用户在目录中创建、删除和重命名文件。此权限非常强大,因为它允许修改目录的内容,而不管文件本身的权限如何。
  • x (执行): 允许用户进入目录(例如使用 cd)并访问其中的文件或子目录。如果没有执行权限,即使你有读取权限,也无法访问目录内的任何项。

首先,向上移动到父目录 ~/project,以便你可以对 RandD 目录本身进行操作。

cd ..

现在,让我们使用 ls -ld 命令检查 RandD 目录的当前所有权和权限。这里的 -d 参数至关重要;它告诉 ls 列出目录本身的信息,而不是其内容。

ls -ld RandD

初始输出将类似于:

drwxrwxr-x 2 labex labex 28 Jun 26 10:36 RandD

这显示所有者(labex)拥有完全访问权限(rwx),组(labex)也拥有完全访问权限(rwx),而其他用户只能读取和进入目录(r-x)。为了使这成为 research 团队的正式协作文件夹,你应该首先将目录的组所有权更改为 research

sudo chown :research RandD

接下来,你将设置权限,使所有者(labex)和组(research)都拥有完全控制权,同时完全删除其他用户的访问权限。所需的权限是 rwxrwx---,对应的八进制代码为 770。作为目录的所有者,你可以在不使用 sudo 的情况下更改其权限。

chmod 770 RandD

最后,让我们验证更改。

ls -ld RandD

输出现在应该反映新的所有权和权限,为你的团队保护了该目录。

drwxrwx--- 2 labex research 28 Jun 26 10:36 RandD

现在,用户 labexresearch 组的任何成员都对 RandD 目录拥有完整的读取、写入和执行权限,而所有其他用户都无法访问。你已成功配置了一个安全的协作空间。

总结

在本实验中,你学习了在 Linux 环境中准备工作空间的基本步骤。这包括使用 mkdir 命令创建新目录,使用 cd 进入该目录,以及使用 touch 创建空文件。你还练习了使用 ls -l 命令检查新创建文件的详细属性,观察其默认所有者、组和权限设置,这为后续的管理任务奠定了基础。

在此基础上,你探索了 Linux 文件系统安全的核心概念。实验演示了如何使用 chown 命令更改文件所有权,将控制权转移给不同的用户或组。随后,你学习了如何使用 chmod 命令修改所有者、组和其他用户的读取、写入和执行权限。最后,实验涵盖了如何将这些权限概念专门应用于目录,以控制对其中所含文件的访问。