RHEL 管理文件权限

每个文件或目录都有三个级别的所有权:

  • 用户所有者 (u)。
  • 组所有者 (g)。
  • 其他 (o)。

可以为每个所有权级别分配以下权限:

  • 读取 (r)。
  • 写入 (w)。
  • 执行 (x)。

请注意,文件的执行权限允许您执行该文件。目录的执行权限允许您访问目录的内容,但不能执行它。

创建新文件或目录时,系统会自动为其分配默认权限集。文件或目录的默认权限基于两个因素:

  • Base 权限。
  • 用户文件创建模式掩码 (umask)。

基本文件权限

每当创建新文件或目录时,都会自动为其分配基本权限。文件或目录的基本权限可以用符号八进制值表示。

许可 符号值 八进制值
无权限 0
执行 –x 1
-w- 2
写入和执行 -wx 3
r– 4
读取和执行 R-X 型 5
读取和写入 乌尔曼- 6
读取、写入、执行 RWX 7

目录的基本权限是 (),它授予每个人读取、写入和执行的权限。这意味着目录所有者、组和其他人可以列出目录的内容,创建、删除和编辑目录中的项,并进入目录。777drwxrwxrwx

请注意,目录中的单个文件可以具有自己的权限,这可能会阻止您编辑它们,尽管您对该目录具有不受限制的访问权限。

文件的基本权限是 (),它授予每个人读取和写入的权限。这意味着文件所有者、组和其他人可以读取和编辑文件。666-rw-rw-rw-

例 文件的权限

如果文件具有以下权限:

$ ls -l
-rwxrw----. 1 sysadmins sysadmins 2 Mar 2 08:43 file
  • -表示它是一个文件。
  • rwx表示文件所有者具有读取、写入和执行文件的权限。
  • rw-表示该组具有读取和写入权限,但不能执行该文件。
  • ---表示其他用户没有读取、写入或执行文件的权限。
  • .表示已为文件设置 SELinux 安全上下文。

例目录的权限

如果目录具有以下权限:

$ ls -dl directory
drwxr-----. 1 sysadmins sysadmins 2 Mar 2 08:43 directory
  • d表示它是一个目录。
  • rwx表示目录所有者具有读取、写入和访问目录内容的权限。

    作为目录所有者,您可以列出目录中的项目(文件、子目录),访问这些项目的内容,并对其进行修改。

  • r-x表示该组有权读取目录的内容,但不能读取 – 创建新条目或删除文件。该权限意味着您还可以使用该命令访问该目录。xcd
  • ---表示其他用户没有读取、写入或访问目录内容的权限。

    作为非用户所有者或目录的组所有者,您无法列出目录中的项目、访问有关这些项目的信息或修改它们。

  • .表示为目录设置了 SELinux 安全上下文。

 用户文件创建模式掩码

用户文件创建模式掩码 (umask) 是一个变量,用于控制如何为新创建的文件和目录设置文件权限。umask 会自动从基本权限值中删除权限,以提高 Linux 系统的整体安全性。umask 可以用符号八进制值表示。

许可 符号值 八进制值
读取、写入和执行 RWX 0
读取和写入 乌尔曼- 1
读取和执行 R-X 型 2
r– 3
写入和执行 -wx 4
-w- 5
执行 –x 6
无权限 7

标准用户和用户的默认 umask 都是 .root0022

umask 的第一位数字表示特殊权限 (sticky bit, )。umask 的最后三位数字分别表示从用户所有者 (u)、组所有者 (g) 和其他人 (o) 中删除的权限。

例在创建文件时应用 umask

以下示例说明了如何将八进制值为 的 umask 应用于具有基本权限的文件,以创建具有默认权限的文件。0137777640

Users Groups Umask Example

默认文件权限

默认权限会自动为所有新创建的文件和目录设置。默认权限的值是通过将 umask 应用于基本权限来确定的。

例 11.4.目录的默认权限

标准用户或 root 用户创建新目录时,umask 设置为 (),目录的基本权限设置为 ()。这将默认权限引入 ()。022rwxr-xr-x777rwxrwxrwx755rwxr-xr-x

符号值 八进制值
基本权限 rwxrwxrwx 777
乌马斯 RWXR-XR-X 022
默认权限 RWXR-XR-X 755

这意味着目录所有者可以列出目录的内容,创建、删除和编辑目录中的项,并进入目录。该组和其他人只能列出目录的内容并下降到该目录中。

例文件的默认权限

标准用户或 root 用户创建新文件时umask 设置为 (),文件的基本权限设置为 ()。这将默认权限引入 ()。022rwxr-xr-x666rw-rw-rw-644-rw-r—​r--

符号值 八进制值
基本权限 rw-rw-rw- 666
乌马斯 RWXR-XR-X 022
默认权限 rw-r—r– 644

这意味着文件所有者可以读取和编辑文件,而组和其他人只能读取文件。

使用符号值更改文件权限

您可以使用带有符号值(字母和符号的组合)的实用程序来更改文件或目录的文件权限。chmod

您可以分配以下权限

  • 读取 (r)
  • 写入 (w)
  • 执行 (x)

可以将权限分配给以下所有权级别

  • 用户所有者 (u)
  • 组所有者 (g)
  • 其他 (o)
  • 全部 (a)

要添加或删除权限,您可以使用以下标志

  • +在现有权限的基础上添加权限
  • -从现有权限中删除权限
  • =删除现有权限并显式定义新权限

程序

  • 要更改文件或目录的权限,请使用:

    $ chmod <level><operation><permission> file-name

    替换为要为其设置权限的所有权级别。替换为其中一个标志。替换为要分配的权限。将 file-name 替换为文件或目录的名称。例如,要向每个人授予读取、写入和执行 () 的权限,请使用命令。<level><operation><permission>rwxmy-script.shchmod a=rwx my-script.sh

    有关更多详细信息,请参阅基本文件权限。

验证

  • 要查看特定文件的权限,请使用:

    $ ls -l file-name

    将 file-name 替换为文件名。

  • 要查看特定目录的权限,请使用:

    $ ls -dl directory-name

    将 directory-name 替换为目录的名称。

  • 要查看特定目录中所有文件的权限,请使用:

    $ ls -l directory-name

    将 directory-name 替换为目录的名称。

例 11.6.更改文件和目录的权限

  • 要将 的文件权限从 更改为 ,请使用:my-file.txt-rw-rw-r---rw------

    1. 显示 的当前权限 :my-file.txt

      $ ls -l my-file.txt
      -rw-rw-r--. 1 username username 0 Feb 24 17:56 my-file.txt
    2. 从组所有者 () 和其他人 () 中删除文件的读取、写入和执行 () 权限:rwxgo

      $ chmod go= my-file.txt

      请注意,在等号 () 后未指定的任何权限都将被自动禁止。=

    3. 验证 的权限设置是否正确:my-file.txt

      $ ls -l my-file.txt
      -rw-------. 1 username username 0 Feb 24 17:56 my-file.txt
  • 要将 的文件权限从 更改为 ,请使用:my-directorydrwxrwx---drwxrwxr-x

    1. 显示 的当前权限 :my-directory

      $ ls -dl my-directory
      drwxrwx---. 2 username username 4096 Feb 24 18:12 my-directory
    2. 为所有用户添加 read 和 execute () 访问权限 ():r-xa

      $ chmod o+rx my-directory
    3. 验证 的权限及其内容是否已正确设置:my-directory

      $ ls -dl my-directory
      drwxrwxr-x. 2 username username 4096 Feb 24 18:12 my-directory

 使用八进制值更改文件权限

您可以使用带有八进制值(数字)的实用程序来更改文件或目录的文件权限。chmod

程序

  • 要更改现有文件或目录的文件权限,请使用:

    $ chmod octal_value file-name

    将 file-name 替换为文件或目录的名称。将 octal_value 替换为八进制值。有关更多详细信息,请参阅基本文件权限。

声明:欢迎大家光临本站,学习IT运维技术,转载本站内容,请注明内容出处”来源刘国华教育“。如若本站内容侵犯了原著者的合法权益,请联系我们进行处理。