什么是Umask以及如何使用它(详细指南)

Umask使用教程介绍当创建一个新文件或目录,Linux上的默认设置权限的。该umask命令允许你更改这些默认权限。
如何使用Umask?在本教程中,你将了解 什么是Umask、它是如何工作的以及如何使用它来为单个用户或组设置文件和目录权限,包括相关的Umask用法示例。
先决条件

  • 基于 Linux 的系统(例如,Ubuntu、CentOS、Debian)
  • 具有 sudo 权限的用户帐户
  • 访问命令终端
Umask 概览术语umask指的是两件事:
1. Linuxumask命令。什么是Umask?umask(用户文件创建模式)是一个 Linux 命令,可让你为新创建的文件和文件夹设置默认权限。
2. 用户定义的权限“掩码”。用户可以选择如何使用权限掩码来限制权限。权限掩码与默认系统权限交互并更改它们。该umask命令用于应用此掩码。
Umask 是如何工作的?如何使用Umask?该umask命令通过影响默认的Linux 文件和文件夹权限起作用。
Linux 中的每个文件和文件夹都有三类权限:
  • 用户:定义每个用户的权限。默认情况下,创建文件或文件夹的用户被设置为所有者。
  • 组:为共享相同访问级别的一组用户定义权限。
  • 其他:定义前两个类别中不包括的任何人的权限。
使用以下命令查看主文件夹的权限:
ls -l

什么是Umask以及如何使用它(详细指南)

文章图片
输出的每一行都以 10 个字符的字符串开头,详细说明权限。分解突出显示的条目,该字符串由以下元素组成:
  • d:表示文件类型(目录)。
  • rwx:表示用户权限(读、写和执行)。
  • r-x: 表示组权限(读取和执行)。
  • r-x: 表示其他权限(读取和执行)。
umask 命令语法
使用umask没有附加命令选项的命令返回当前掩码作为输出:
什么是Umask以及如何使用它(详细指南)

文章图片
Umask用法示例:该umask命令使用以下语法:
umask [ -p] [ -S] [ mask]

其中:
  • [mask]:你正在应用的新权限掩码。默认情况下,掩码显示为数字(八进制)值。
  • [-S]:将当前掩码显示为符号值。
  • [-p]:与umask命令一起显示当前掩码,允许将其复制和粘贴为将来的输入。
什么是Umask以及如何使用它(详细指南)

文章图片
Umask使用教程:符号和数字 umask 值
正如我们在上面的例子中提到的,umask可以显示为数字(八进制)或符号值。
掩码可以具有以下数字和相应的符号值:
0---没有权限
1--x执行
2-w-
3-wx编写并执行
4r--
5r-x读取并执行
6rw-读和写
7rwx读取、写入和执行
如何计算 Umask 值
如何使用Umask?Linux 使用以下默认掩码和权限值:
  • 系统默认权限值为 777 (  rwxrwxrwx) 文件夹和 666 (  rw-rw-rw-) 文件。
  • 非 root 用户的默认掩码为 002,将文件夹权限更改为 775 (  rwxrwxr-x),将文件权限更改为 664 (  rw-rw-r--)。
  • root 用户的默认掩码为 022,将文件夹权限更改为 755 (  rwxr-xr-x),将文件权限更改为 644 (  rw-r--r--)。
这向我们展示了最终的权限值是从默认权限值(777 或 666)中减去umask值的结果。
例如,如果要将文件夹权限值从 777(读取、写入和执行全部)更改为 444(读取全部),则需要应用umask值 333,因为:
777 - 444 = 333

如何设置和更新默认 Umask 值Umask用法示例 - 使用以下语法应用新umask值:
umask [ mask]

其中:
  • [mask]:要应用的掩码,可以是符号值或数字值。
设置符号 Umask 值
如何使用Umask?使用具有以下语法的符号值设置新的umask值:
umask u=#,g=#,o=#

其中:
  • u:表示用户权限。
  • g:表示组权限。
  • o:表示其他权限。
  • #:你要应用的符号权限值,如上表所述。
注意:设置符号掩码值时,切勿在逗号后使用空格。
【什么是Umask以及如何使用它(详细指南)】你还可以使用其他运算符:
  • =: 创建指定的文件权限并禁止未指定的权限。
  • +: 创建指定的权限,但不更改未指定的权限。
  • -:禁止指定的权限,但不改变未指定的权限。
设置数字 Umask 值
Umask用法示例:计算出所需的umask数值后,请使用以下命令进行设置:
umask [ mask]

其中:
  • [mask]:要应用的掩码的数值。
umask 和 chmod 的区别Linux 中的chmod 命令的工作方式与该umask命令类似。它也用于定义文件和文件夹的权限。
之间的区别umask,并chmodumask更改所有新创建的文件和文件夹的默认权限,因此权限,而chmod已经存在的文件和文件夹的权限集。
Umask使用教程结论什么是Umask?遵循本教程后,你应该能够使用符号或数字值查看和更改 umask。
请务必查看我们的Linux 命令备忘单,了解更常用的 Linux 命令。

    推荐阅读