如何管理 Linux 文件和目录权限

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

了解 Linux 文件权限对于有效管理和保护你的系统至关重要。本教程将引导你了解文件权限的基本概念,包括如何查看、检查和修改文件及目录的权限。在本课程结束时,你将牢固掌握 Linux 权限模型,并能够运用这些技能来增强 Linux 环境的安全性和组织性。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/chown("Ownership Changing") linux/BasicFileOperationsGroup -.-> linux/chmod("Permission Modifying") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/pwd("Directory Displaying") subgraph Lab Skills linux/ls -.-> lab-398331{{"如何管理 Linux 文件和目录权限"}} linux/chown -.-> lab-398331{{"如何管理 Linux 文件和目录权限"}} linux/chmod -.-> lab-398331{{"如何管理 Linux 文件和目录权限"}} linux/cd -.-> lab-398331{{"如何管理 Linux 文件和目录权限"}} linux/pwd -.-> lab-398331{{"如何管理 Linux 文件和目录权限"}} end

理解 Linux 文件权限

在 Linux 操作系统中,文件权限在控制对文件和目录的访问方面起着至关重要的作用。Linux 中的每个文件和目录都有一组权限,这些权限决定了谁可以读取、写入或执行其中的内容。理解这些权限对于有效管理和保护你的 Linux 系统至关重要。

Linux 文件权限基于三种主要的访问类型:

  1. 读取(r):允许用户查看文件的内容或列出目录的内容。
  2. 写入(w):允许用户修改、删除或创建新的文件和目录。
  3. 执行(x):允许用户将文件作为程序运行或访问目录的内容。

这些权限被分配给三个用户类别:

  1. 所有者:创建文件或目录的用户。
  2. :被授予特定权限的一组用户。
  3. 其他用户:系统上不属于所有者或组的所有其他用户。
graph TD A[文件/目录] --> B[所有者] A --> C[组] A --> D[其他用户] B --> E[读取] B --> F[写入] B --> G[执行] C --> H[读取] C --> I[写入] C --> J[执行] D --> K[读取] D --> L[写入] D --> M[执行]

每个用户类别的权限由 “r”、“w” 和 “x” 字符的组合表示。例如,权限字符串 “rwxr-x--x” 表示所有者具有读取、写入和执行权限,组具有读取和执行权限,其他用户只有执行权限。

要查看文件或目录的当前权限,可以使用 ls -l 命令。这将显示权限字符串以及其他文件元数据。

$ ls -l
-rwxr-xr-x 1 user group 1024 Apr 1 12:34 example.txt

在上面的示例中,权限字符串 “-rwxr-xr-x” 表示所有者具有读取、写入和执行权限,组具有读取和执行权限,其他用户具有读取和执行权限。

查看和检查文件及目录权限

要在 Linux 中查看和检查文件及目录的权限,你可以使用 lsstat 命令。

使用 ls 命令

ls 命令是列出目录内容的主要工具。当你运行 ls -l 时,它会显示长格式列表,其中包括文件权限。

$ ls -l
-rwxr-xr-x 1 user group 1024 Apr 1 12:34 example.txt
drwxr-xr-x 2 user group 4096 Apr 2 15:22 documents

在上面的示例中,第一个字符表示文件类型(- 表示普通文件,d 表示目录),后面跟着所有者、组和其他用户的权限字符串。

使用 stat 命令

stat 命令提供有关文件或目录的详细信息,包括其权限。当你需要比 ls -l 提供的更全面的信息时,此命令很有用。

$ stat example.txt
  File: example.txt
  Size: 1024        Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 12345      Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (1000/user)   Gid: (1000/group)
Access: 2023-04-01 12:34:56.789012345 +0000
Modify: 2023-04-01 12:34:56.789012345 +0000
Change: 2023-04-01 12:34:56.789012345 +0000
 Birth: -

stat 命令显示有关文件的详细信息,包括权限字符串、所有者和组以及访问、修改和更改时间。

通过使用 lsstat 命令,你可以有效地查看和检查 Linux 系统中文件和目录的权限。

修改文件和目录权限

在 Linux 中,你可以使用 chmod(更改模式)命令来修改文件和目录的权限。有两种主要的更改权限的方法:使用数字值或符号表示法。

使用数字权限

数字权限由一个三位数表示,其中每个数字分别对应所有者、组和其他用户的权限。每个权限的值为:

  • 读取(r):4
  • 写入(w):2
  • 执行(x):1

要设置权限,你将所需权限的值相加。例如,755 将赋予所有者读取、写入和执行权限,而组和其他用户具有读取和执行权限。

$ chmod 755 example.txt
$ ls -l
-rwxr-xr-x 1 user group 1024 Apr 1 12:34 example.txt

使用符号权限

符号权限使用字母和符号的组合来表示权限。格式为:

[who] [operator] [permissions]

其中 “who” 可以是:

  • u:用户(所有者)
  • g:组
  • o:其他用户
  • a:所有用户(所有者、组和其他用户)

“operator” 可以是:

  • +:添加权限
  • -:移除权限
  • =:设置权限

“permissions” 可以是:

  • r:读取
  • w:写入
  • x:执行
$ chmod u+x,g+r,o+r example.txt
$ ls -l
-rwxr--r-- 1 user group 1024 Apr 1 12:34 example.txt

在上面的示例中,所有者的权限设置为读取、写入和执行,而组和其他用户只有读取权限。

通过使用带有数字或符号权限的 chmod 命令,你可以轻松修改 Linux 系统中文件和目录的访问权限。

总结

在本教程中,你已经学习了 Linux 文件权限的基本概念,包括不同的访问类型(读取、写入和执行)以及用户类别(所有者、组和其他用户)。你还了解了如何使用 ls -l 命令查看文件和目录的当前权限,以及如何使用 chmod 命令修改这些权限。对于任何 Linux 用户或管理员来说,理解并有效地管理文件权限是一项至关重要的技能,因为它有助于确保系统的安全性和完整性。通过应用在本课程中学到的知识,你可以掌控你的 Linux 文件系统,并优化文件和目录的访问及权限。