在 Red Hat Enterprise Linux 中控制文件访问权限

Red Hat Enterprise LinuxBeginner
立即练习

介绍

在本实验中,你将全面了解管理 Linux 文件系统权限,这是任何 RHEL 系统管理员的关键技能。你将学习如何使用 ls -l 解释文件权限,使用符号模式和八进制模式的 chmod 修改权限,以及使用 chown 更改文件所有权。此外,你将探索并应用特殊权限,例如 SUID、SGID 和粘滞位,并使用 umask 有效地配置默认权限。这个实践经验将使你掌握在 Linux 环境中安全控制文件和目录访问的必要知识。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 82%。获得了学习者 99% 的好评率。

使用 ls -l 解释 Linux 文件系统权限

在本步骤中,你将学习如何使用 ls -l 命令解释 Linux 文件系统权限。理解文件权限对于管理 Linux 环境中文件和目录的访问至关重要。

Linux 中的每个文件和目录都有关联的权限,这些权限决定了谁可以读取、写入或执行它们。这些权限分为三类:

  • 用户 (所有者): 文件所有者的权限。
  • 组: 文件所属组的用户权限。
  • 其他: 系统中所有其他用户的权限。

每类权限又包含三种类型:

  • 读取 (r): 允许查看文件内容或列出目录内容。
  • 写入 (w): 允许修改文件内容或在目录中创建/删除文件。
  • 执行 (x): 允许运行可执行文件或进入目录。

让我们首先在你的 ~/project 目录中创建一个新目录和一个文件,观察它们的默认权限。

首先,创建一个名为 my_files 的目录:

mkdir ~/project/my_files

接下来,在 my_files 目录中创建一个名为 document.txt 的空文件:

touch ~/project/my_files/document.txt

现在,使用 ls -l 命令查看 document.txt 文件的详细权限。ls -l 命令提供长列表格式,包括文件权限、所有者、组、大小和修改日期。

ls -l ~/project/my_files/document.txt

你应该看到类似于这样的输出:

-rw-rw-r-- 1 labex labex 0 Jun  6 17:36 /home/labex/project/my_files/document.txt

让我们分解输出的第一部分 -rw-rw-r--.:

  • 第一个字符 (-) 表示文件类型。
    • - 表示这是一个普通文件。
    • d 表示这是一个目录。
    • l 表示这是一个符号链接。
  • 接下来的九个字符分为三个三组:
    • rw-: 所有者 (labex) 的权限。r (读取), w (写入), - (没有执行权限)。
    • rw-: (labex) 的权限。r (读取), w (写入), - (没有执行权限)。
    • r--: 其他 用户的权限。r (读取), - (没有写入权限), - (没有执行权限)。

这意味着 labex 用户 (所有者) 和 labex 组的用户可以读取和写入 document.txt,而其他用户只能读取它。

现在,让我们检查 my_files 目录本身的权限。当使用 ls -l 命令查看目录时,它会列出目录的内容。要查看目录本身的权限,你需要使用 -d 选项与 ls -l 一起使用。

ls -ld ~/project/my_files

你应该看到类似于这样的输出:

drwxrwxr-x 2 labex labex 4096 Jun  6 17:36 /home/labex/project/my_files

让我们解释权限 drwxrwxr-x.:

  • 第一个字符 (d) 表示这是一个目录。
  • rwx: 所有者 (labex) 的权限。r (读取), w (写入), x (执行)。
  • rwx: (labex) 的权限。r (读取), w (写入), x (执行)。
  • r-x: 其他 用户的权限。r (读取), - (没有写入权限), x (执行)。

对于目录:

  • r (读取) 允许列出目录的内容。
  • w (写入) 允许在目录中创建、删除或重命名文件。
  • x (执行) 允许进入目录 (使用 cd) 并访问其文件和子目录。

这意味着 labex 用户和 labex 组的用户可以列出、创建/删除文件,并进入 my_files 目录。其他用户可以列出并进入该目录,但不能在其中创建或删除文件。

使用 chmod (符号模式) 更改文件权限

本步骤将教你如何使用 chmod 命令的符号模式更改文件权限。符号模式使用字母和符号表示权限更改,使其直观地添加、删除或设置特定权限。

chmod 命令的符号模式语法为:chmod WHO OPERATION PERMISSIONS FILE

  • WHO: 指定权限更改应用于谁。
    • u: 用户 (所有者)
    • g: 组
    • o: 其他用户
    • a: 所有用户 (用户、组和其他用户)
  • OPERATION: 指定如何修改权限。
    • +: 添加权限。
    • -: 删除权限。
    • =: 将权限精确设置为指定的值,覆盖现有权限。
  • PERMISSIONS: 指定权限类型。
    • r: 读取
    • w: 写入
    • x: 执行

让我们继续使用前面步骤中创建的 ~/project/my_files/document.txt 文件和 ~/project/my_files 目录。

首先,让我们从 document.txt 中删除组和其他用户的写入权限。回想一下,其当前权限为 -rw-rw-r--

chmod go-w ~/project/my_files/document.txt

现在,使用 ls -l 验证更改:

ls -l ~/project/my_files/document.txt

输出应显示:

-rw-r--r-- 1 labex labex 0 Jun  6 17:36 /home/labex/project/my_files/document.txt

请注意,组和其他用户的写入权限 (w) 已被删除。

接下来,让我们为所有者 (u) 添加 document.txt 的执行权限。这通常用于脚本,使其可执行。

chmod u+x ~/project/my_files/document.txt

验证更改:

ls -l ~/project/my_files/document.txt

输出应为:

-rwxr--r-- 1 labex labex 0 Jun  6 17:36 /home/labex/project/my_files/document.txt

所有者现在具有执行权限 (x)。

现在,让我们练习使用 ~/project/my_files 目录。其当前权限为 drwxrwxr-x。让我们从该目录中删除其他用户的写入权限 (o)。

chmod o-w ~/project/my_files

验证更改:

ls -ld ~/project/my_files

输出应显示:

drwxr-xr-x 2 labex labex 4096 Jun  6 17:36 /home/labex/project/my_files

等等,为什么 o-w 没有改变输出?这是因为其他用户 (o) 已经没有写入权限。r-x 表示其他用户有读取和执行权限,但没有写入权限。这表明 chmod 仅在更改与当前状态不同时才应用更改。

让我们尝试精确设置权限。我们将 document.txt 的权限设置为 rw-r--r-- (所有者、组、其他)。这意味着所有者获得读写权限,组获得读取权限,其他用户获得读取权限。

chmod a=rw,g=r,o=r ~/project/my_files/document.txt

验证更改:

ls -l ~/project/my_files/document.txt

输出应为:

-rw-r--r-- 1 labex labex 0 Jun  6 17:36 /home/labex/project/my_files/document.txt

此命令 a=rw,g=r,o=r 稍微冗余,因为 a=rw 会将 rw 应用于所有用户,然后 g=r 会将组设置为 r(覆盖来自 a=rww),而 o=r 会将其他用户设置为 r(覆盖来自 a=rww)。更简单的方法是 chmod u=rw,go=r。让我们尝试一下。

chmod u=rw,go=r ~/project/my_files/document.txt

验证更改:

ls -l ~/project/my_files/document.txt

输出仍然为:

-rw-r--r-- 1 labex labex 0 Jun  6 17:36 /home/labex/project/my_files/document.txt

最后,让我们使 document.txt 对所有人可执行。

chmod a+x ~/project/my_files/document.txt

验证更改:

ls -l ~/project/my_files/document.txt

输出应为:

-rwxr-xr-x 1 labex labex 0 Jun  6 17:36 /home/labex/project/my_files/document.txt

使用 chmod (八进制模式) 更改文件权限

本步骤将教你如何使用 chmod 命令的八进制 (数字) 模式更改文件权限。八进制模式是一种简洁的权限表示方式,其中每个权限 (读取、写入、执行) 都分配一个数值。

权限的数值如下:

  • 读取 (r): 4
  • 写入 (w): 2
  • 执行 (x): 1
  • 无权限 (-): 0

要确定一组权限 (用户、组或其他用户) 的八进制值,你需要将授予的权限的数值相加。

例如:

  • rwx (读取、写入、执行) = 4 + 2 + 1 = 7
  • rw- (读取、写入、无执行) = 4 + 2 + 0 = 6
  • r-x (读取、无写入、执行) = 4 + 0 + 1 = 5
  • r-- (读取、无写入、无执行) = 4 + 0 + 0 = 4
  • --- (无权限) = 0 + 0 + 0 = 0

chmod 命令的八进制模式使用三位数字,每位数字分别代表所有者、组和其他用户的权限。语法为:chmod OGO FILE

  • O: 所有者权限的八进制值。
  • G: 组权限的八进制值。
  • O: 其他用户权限的八进制值。

让我们继续使用 ~/project/my_files/document.txt~/project/my_files

首先,让我们将 document.txt 的权限设置为 rw-r--r--

  • 所有者:rw- = 6
  • 组:r-- = 4
  • 其他:r-- = 4

因此,八进制值为 644

chmod 644 ~/project/my_files/document.txt

验证更改:

ls -l ~/project/my_files/document.txt

输出应为:

-rw-r--r-- 1 labex labex 0 Jun  6 00:48 /home/labex/project/my_files/document.txt

接下来,让我们只允许所有者执行 document.txt,同时保持所有者读写权限,组和其他用户只读权限。这意味着所有者将拥有 rwx (7),组拥有 r-- (4),其他用户拥有 r-- (4)。八进制值为 744

chmod 744 ~/project/my_files/document.txt

验证更改:

ls -l ~/project/my_files/document.txt

输出应为:

-rwxr--r-- 1 labex labex 0 Jun  6 00:48 /home/labex/project/my_files/document.txt

现在,让我们更改 ~/project/my_files 目录的权限。其当前权限为 drwxr-xr-x。让我们将其权限设置为 rwxr-x---

  • 所有者:rwx = 7
  • 组:r-x = 5
  • 其他:--- = 0

因此,八进制值为 750

chmod 750 ~/project/my_files

验证更改:

ls -ld ~/project/my_files

输出应显示:

drwxr-x--- 2 labex labex 26 Jun  6 00:48 /home/labex/project/my_files

这意味着所有者 (labex) 拥有全部权限 (读取、写入、执行),组 (labex) 可以读取和执行 (进入) 目录,其他用户没有任何权限。

最后,让我们创建一个新的可执行脚本文件,以演示直接设置执行权限。

echo '#!/bin/bash' > ~/project/my_script.sh
echo 'echo "Hello from my script!"' >> ~/project/my_script.sh

默认情况下,新文件不可执行。让我们检查其权限:

ls -l ~/project/my_script.sh

你可能会看到类似 -rw-r--r-- 的权限。为了使所有者和组可执行,但其他用户不可执行,我们需要 rwxrwx---

  • 所有者:rwx = 7
  • 组:rwx = 7
  • 其他:--- = 0

因此,八进制值为 770

chmod 770 ~/project/my_script.sh

验证更改:

ls -l ~/project/my_script.sh

输出应为:

-rwxrwx--- 1 labex labex 41 Jun  6 00:52 /home/labex/project/my_script.sh

现在你可以执行该脚本:

~/project/my_script.sh

你应该看到输出:

Hello from my script!

使用 chown 更改文件所有权

本步骤将教你如何使用 chown 命令更改文件和目录的所有者和所属组。这是一个至关重要的管理任务,因为只有 root 用户可以更改文件的拥有者。labex 用户拥有 sudo 权限,这将允许你执行这些操作。

chown 的基本语法为:chown [OPTIONS] NEW_OWNER[:NEW_GROUP] FILE(s)

让我们首先创建一个新用户和组,以便演示所有权更改。由于此环境是基于容器的,我们将为此演示创建简单的用户和组。

首先,创建一个名为 devs 的新组:

sudo groupadd devs

接下来,创建一个名为 developer 的新用户,并将其添加到 devs 组。我们将为此演示创建一个没有主目录或登录 shell 的系统用户。

sudo useradd -r -g devs -s /sbin/nologin developer

现在,让我们将 ~/project/my_files/document.txt 的所有者从 labex 更改为 developer

sudo chown developer ~/project/my_files/document.txt

使用 ls -l 验证更改:

ls -l ~/project/my_files/document.txt

输出现在应该显示 developer 作为所有者:

-rwxr--r-- 1 developer labex 0 Jun  6 00:48 /home/labex/project/my_files/document.txt

请注意,组所有权 (labex) 保持不变。

你还可以同时更改所有者和组,使用 owner:group 语法。让我们将 document.txt 的所有者更改回 labex,并将所属组更改为 devs

sudo chown labex:devs ~/project/my_files/document.txt

验证更改:

ls -l ~/project/my_files/document.txt

输出现在应该显示 labex 作为所有者,devs 作为所属组:

-rwxr--r-- 1 labex devs 0 Jun  6 00:48 /home/labex/project/my_files/document.txt

chown 命令还支持 -R (递归) 选项,这允许你更改整个目录树的所有权。让我们将 ~/project/my_files 目录及其所有内容的所有者更改为 developer,所属组更改为 devs

sudo chown -R developer:devs ~/project/my_files

验证目录的更改:

ls -ld ~/project/my_files

输出应该反映新的所有权:

drwxr-x--- 2 developer devs 26 Jun  6 00:48 /home/labex/project/my_files

请注意,将目录所有权更改为 developer:devs 后,labex 用户将无法访问目录中的文件,因为目录权限为 drwxr-x--- (所有者和组有访问权限,但其他用户没有),而 labex 既不是所有者 (developer) 也不是组成员 (devs)。如果你现在尝试列出文件:

ls -l ~/project/my_files/document.txt

你会收到“权限被拒绝”的错误。这演示了所有权和权限如何协同工作来控制访问。

你还可以仅更改所属组,使用 chown :NEW_GROUP FILE(s)。这等效于使用 chgrp 命令。让我们将 ~/project/my_script.sh 的所属组更改为 devs

sudo chown :devs ~/project/my_script.sh

验证更改:

ls -l ~/project/my_script.sh

输出应该显示 devs 作为所属组所有者,而 labex 保持为文件所有者:

-rwxrwx--- 1 labex devs 41 Jun  6 00:52 /home/labex/project/my_script.sh

最后,让我们清理,将所有权更改回 labex:labex,然后删除 developer 用户和 devs 组。

sudo chown -R labex:labex ~/project/my_files
sudo userdel developer
sudo groupdel devs

理解和应用特殊权限 (SUID、SGID、粘滞位)

在这一步,你将探索 Linux 中的特殊权限:SUID(Set User ID,设置用户 ID)、SGID(Set Group ID,设置组 ID)和 Sticky Bit(粘滞位)。这些权限提供了对文件执行和目录行为的增强控制。

特殊权限由八进制权限模式中的一个附加数字表示,放置在标准的三位数字(所有者、组、其他用户)之前。

  • SUID(Set User ID):
    • 八进制值: 4
    • 对文件的影响: 当运行带有 SUID 的可执行文件时,它将以文件所有者的权限执行,而不是运行它的用户的权限。这通常用于需要提升权限才能执行某些任务的程序,例如 passwd 命令(它需要写入 /etc/shadow,一个由 root 拥有的文件)。
    • ls -l 输出中: s 出现在所有者的 x(执行)权限的位置。如果所有者没有执行权限,则会出现大写的 S
  • SGID(Set Group ID):
    • 八进制值: 2
    • 对文件的影响: 类似于 SUID,但可执行文件以文件组所有者的权限运行。
    • 对目录的影响: 在启用 SGID 的目录中创建的文件和子目录将继承该目录的组所有权,而不是创建它们的用户的首要组。这对于所有文件都应属于特定组的共享目录非常有用。
    • ls -l 输出中: s 出现在组的 x(执行)权限的位置。如果组没有执行权限,则会出现大写的 S
  • Sticky Bit(粘滞位):
    • 八进制值: 1
    • 对文件的影响: 无影响。
    • 对目录的影响: 用户可以在目录中创建文件,但他们只能删除或重命名他们拥有的文件。这可以防止用户在共享目录(例如 /tmp)中删除或移动其他用户的文件。
    • ls -l 输出中: t 出现在其他用户的 x(执行)权限的位置。如果其他用户没有执行权限,则会出现大写的 T

让我们演示这些特殊权限。

SUID 示例

我们将创建一个简单的 C 程序,尝试读取一个受限文件。

首先,创建一个只有 root 才能读取的文件:

sudo touch ~/project/secret_data.txt
sudo chmod 600 ~/project/secret_data.txt
sudo chown root:root ~/project/secret_data.txt

验证其权限:

ls -l ~/project/secret_data.txt

输出:

-rw------- 1 root root 0 Jun  6 17:36 /home/labex/project/secret_data.txt

现在,创建一个 C 程序 read_secret.c,尝试读取此文件:

nano ~/project/read_secret.c

将以下代码粘贴到 read_secret.c 中:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main() {
    FILE *fp;
    char buffer[256];

    printf("Attempting to read /home/labex/project/secret_data.txt...\n");

    fp = fopen("/home/labex/project/secret_data.txt", "r");
    if (fp == NULL) {
        perror("Error opening file");
        return 1;
    }

    while (fgets(buffer, sizeof(buffer), fp) != NULL) {
        printf("%s", buffer);
    }

    fclose(fp);
    printf("Successfully read file.\n");
    return 0;
}

保存并退出 nano(Ctrl+S,Ctrl+X)。

编译程序:

gcc ~/project/read_secret.c -o ~/project/read_secret

现在,尝试以 labex 的身份运行它:

~/project/read_secret

你应该看到一条“Error opening file: Permission denied”(打开文件错误:权限被拒绝)消息,因为 labex 没有读取 secret_data.txt 的权限。

现在,让我们让 read_secretroot 所有并设置 SUID 位。

sudo chown root:root ~/project/read_secret
sudo chmod u+s ~/project/read_secret

验证权限:

ls -l ~/project/read_secret

输出:

-rwsr-xr-x 1 root root 17704 Jun  6 01:02 /home/labex/project/read_secret

注意所有者权限集中的 s。现在,再次以 labex 的身份运行该程序:

~/project/read_secret

这次,它应该成功读取文件(尽管它是空的,因此不会打印任何内容,但“Successfully read file.”消息表示成功)。这是因为 SUID 位使程序以 root 的权限运行。

SGID 示例(在目录上)

让我们创建一个共享目录和一个新组。

sudo groupadd shared_group
sudo mkdir ~/project/shared_dir
sudo chown labex:shared_group ~/project/shared_dir
sudo chmod 770 ~/project/shared_dir

现在,在 shared_dir 上设置 SGID 位:

sudo chmod g+s ~/project/shared_dir

验证权限:

ls -ld ~/project/shared_dir

输出:

drwxrws--- 2 labex shared_group 6 Jun  6 01:02 /home/labex/project/shared_dir

注意组的权限集中的 s

现在,在 shared_dir 内部创建一个文件:

touch ~/project/shared_dir/new_file.txt

检查 new_file.txt 的所有权:

ls -l ~/project/shared_dir/new_file.txt

输出:

-rw-r--r-- 1 labex shared_group 0 Jun  6 01:02 /home/labex/project/shared_dir/new_file.txt

即使 labex 的首要组是 labex,由于 SGID 位,new_file.txt 继承了 shared_group 组所有权。

Sticky Bit 示例

/tmp 目录是设置了粘滞位的目录的经典示例。让我们创建一个类似的目录。

sudo mkdir ~/project/public_upload
sudo chmod 1777 ~/project/public_upload

1777 中的 1 是粘滞位的八进制值。777 授予所有者、组和其他用户完全的权限。

验证权限:

ls -ld ~/project/public_upload

输出:

drwxrwxrwt 2 root root 6 Jun  6 01:02 /home/labex/project/public_upload

注意其他用户的权限集中的 t

现在,让我们模拟另一个用户在此目录中创建文件。由于我们只有 labex 用户,我们将以 labex 的身份创建一个文件,然后在将其所有权更改为 root 后尝试将其删除(模拟另一个用户)。

labex 的身份创建一个文件:

touch ~/project/public_upload/labex_file.txt

将其所有权更改为 root

sudo chown root:root ~/project/public_upload/labex_file.txt

现在,尝试以 labex 的身份删除 labex_file.txt

rm ~/project/public_upload/labex_file.txt

你将看到一个提示,询问你是否要删除受写保护的文件,在用 y 确认后,你将收到一个“Operation not permitted”(不允许操作)错误。这是因为粘滞位阻止用户删除他们不拥有的该目录中的文件,即使 labex 具有对 public_upload 目录的写权限。只有 rootlabex_file.txt 的所有者(在本例中为 root)才能将其删除。

要清理,你需要 sudo 来删除 labex_file.txt

sudo rm ~/project/public_upload/labex_file.txt

清理

删除创建的文件和目录,以及用户/组:

sudo rm -f ~/project/secret_data.txt ~/project/read_secret.c ~/project/read_secret
sudo rm -rf ~/project/shared_dir ~/project/public_upload
sudo groupdel shared_group

使用 umask 配置默认权限

在最后一步,你将学习 umask,它控制分配给新创建的文件和目录的默认权限。umask(用户文件创建模式掩码)是一个位掩码,它从最大可能的权限中移除权限。

新文件的最大权限是 666 (rw-rw-rw-),表示每个人都可以读写。出于安全原因,新文件通常默认不会获得执行权限。新目录的最大权限是 777 (rwxrwxrwx),表示每个人都可以读、写和执行。

umask 值从这些最大权限中减去,以确定实际的默认权限。

要查看你当前的 umask 值,只需键入 umask

umask

你可能会看到 00020022。在这个环境中,对于 labex 用户来说,它是 0022

umask0022 意味着:

  • 第一个 0 用于特殊权限(SUID、SGID、Sticky Bit),默认情况下不受 umask 的影响。
  • 第二个 0 意味着没有从所有者那里移除权限。
  • 第三个 2 意味着从组中移除写权限(值 2)。
  • 第四个 2 意味着从其他人中移除写权限(值 2)。

让我们使用 umask0022 来计算默认权限:

  • 对于文件(最大 666):

    • 所有者:6 - 0 = 6 (rw-)
    • 组:6 - 2 = 4 (r--)
    • 其他人:6 - 2 = 4 (r--)
    • 结果文件权限:644 (rw-r--r--)
  • 对于目录(最大 777):

    • 所有者:7 - 0 = 7 (rwx)
    • 组:7 - 2 = 5 (r-x)
    • 其他人:7 - 2 = 5 (r-x)
    • 结果目录权限:755 (rwxr-xr-x)

让我们测试一下。创建一个新文件和目录:

touch ~/project/new_file_umask.txt
mkdir ~/project/new_dir_umask

检查它们的权限:

ls -l ~/project/new_file_umask.txt
ls -ld ~/project/new_dir_umask

你应该会看到类似 -rw-r--r-- 的文件权限和 drwxr-xr-x 的目录权限,这确认了 0022 umask 的效果。

现在,让我们将 umask 更改为 0077。这个 umask 将移除所有组和其他人的权限。

umask 0077

验证 umask 是否已更改:

umask

输出:

0077

现在,让我们使用 umask0077 来计算默认权限:

  • 对于文件(最大 666):

    • 所有者:6 - 0 = 6 (rw-)
    • 组:6 - 7 = -1 (实际上是 0, ---)
    • 其他人:6 - 7 = -1 (实际上是 0, ---)
    • 结果文件权限:600 (rw-------)
  • 对于目录(最大 777):

    • 所有者:7 - 0 = 7 (rwx)
    • 组:7 - 7 = 0 (---)
    • 其他人:7 - 7 = 0 (---)
    • 结果目录权限:700 (rwx------)

让我们测试一下这个新的 umask。创建另一个新文件和目录:

touch ~/project/restricted_file.txt
mkdir ~/project/restricted_dir

检查它们的权限:

ls -l ~/project/restricted_file.txt
ls -ld ~/project/restricted_dir

你现在应该会看到类似 -rw------- 的文件权限和 drwx------ 的目录权限。

umask 设置通常在 shell 初始化文件(如 ~/.bashrc/etc/profile)中配置,以便在用户登录时自动应用。对于这个实验,umask 的更改是临时的,仅适用于当前的终端会话。

要将 umask 恢复为其 labex 用户的默认值,你可以简单地将其设置回 0022

umask 0022

最后,清理在此步骤中创建的文件和目录:

rm ~/project/new_file_umask.txt ~/project/restricted_file.txt
rmdir ~/project/new_dir_umask ~/project/restricted_dir

总结

在本实验中,我们深入探讨了管理 Linux 文件系统权限的基本方面。我们首先掌握了 ls -l 命令来解释文件和目录权限,理解用户、组和其他类别以及读取、写入和执行权限的重要性。然后,我们将这方面的基础知识应用于使用 chmod 命令修改权限,无论是符号模式还是八进制模式,都提供了设置访问权限的灵活性。

此外,我们学习了如何使用 chown 命令更改文件所有权,这对于分配管理控制至关重要。本实验还涵盖了理解和应用特殊权限 (SUID、SGID 和粘滞位),这些权限提供了对执行和文件创建行为的高级控制。最后,我们探索了如何使用 umask 配置新创建的文件和目录的默认权限,确保整个系统中权限设置的一致性。