短文资讯

解析 Linux Umask 命令

在创建新文件或目录时,Linux操作系统会自动分配默认文件权限。umask(用户文件模式创建掩码)可用于定义并分配每个用户的默认权限。

在本教程中,我们将了解umask命令以及如何使用它来定义默认文件权限。

什么是umask及其工作原理

术语“掩码”定义了权限分组,它控制了如何为新创建的文件和目录设置权限。umask命令用于为文件和目录分配默认权限。

umask一词可以指以下两个内容之一:

  • 用户定义的文件创建掩码。文件创建掩码可用于选择如何控制权限。此掩码与默认系统权限相关联并更新它们。umask命令应用此掩码。
  • 设置默认umask值的umask命令,可以使用八进制格式或符号格式。

umask命令定义了默认的系统文件和目录权限,分为三个类别:

  • 用户:定义所有者权限。创建文件或文件夹的用户是默认所有者。
  • 组:为Linux组定义组权限,这些组共享相同的文件权限或目录。
  • 其他:为不是所有者也不是组的任何人定义权限。设置这些权限后,任何人都可以访问文件和文件夹。通常称它们为全球可读文件和目录。

以下图解释了umask和权限的工作原理:

文件权限

  1. 用户权限 - 用户对文件具有读和写权限。

  2. 组权限 - 组对文件具有读和写权限。

  3. 其他权限 - 其他人只对文件具有读权限。

  4. 硬链接 - 为此文件创建了1个硬链接。

  5. 所有者用户名 - 所有者用户的名称。

  6. 所有者组 - 所有者组的名称。

  7. 大小 - 文件的总大小(以字节为单位)。

  8. 上次修改的日期/时间 - 文件的上次修改日期和时间。

  9. 文件/目录名称 - 文件的名称。

umask中的每个位对应于一个八进制umask值。例如,rw-rw-r具有以下值:

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

掩码中的RWX表示读、写和执行的能力。执行权限不适用于文件。

umask和chmod之间的区别

umask命令和chmod命令都用于在Linux中设置权限,但它们在本质上有所不同。

umask命令更改默认权限,因此使用此命令设置的权限会自动应用于所有新创建的文件和目录。

chmod命令更改现有文件和文件夹的权限。例如,如果您将名为services的文件的所有权分配给用户tom和组adm,则更改将仅限于services文件。它不会影响系统上的任何其他文件。

umask命令会影响整个系统的权限,而chmod命令只会影响指定文件的权限。

umask命令

umask命令用于在Linux计算机上设置文件和文件夹的默认umask值。您的系统上的所有新创建的文件和目录都将使用umask命令定义的权限。

使用umask命令而不带任何选项来检查当前掩码:

umask

检查当前掩码值

0002表示第一个数字0被称为[粘附位] 这是一种特殊的安全功能。接下来的三个数字表示文件或目录umask的八进制值。

umask命令语法

umask命令的基本语法:

umask [-p] [-S] [mask]

umask选项

您可以在umask中使用以下选项:

选项 描述
mask 以八进制格式表示的新掩码。
-p 使用umask命令显示当前掩码。您可以将其复制以供将来参考。
-S 显示当前掩码的符号umask值。

掩码值

掩码值以符号和数字格式表示。

符号格式以rwx(读-写-执行)格式表示。最左边的字符用于读权限,中间的字符用于写权限,最右边的字符用于执行权限。例如,如果对于所有者,符号umask设置为r--,那么所有者只对特定文件或目录具有读权限。

八进制模式umask值在以下表格中描述:

权限 八进制值 二进制值 描述
- 0 000 没有权限
-x 1 001 仅执行权限
-w- 2 010 仅写权限
-wx 3 011 写和执行权限
r- 4 100 仅读权限
r-x 5 101 读和执行权限
rw- 6 110 读和写权限
rwx 7 111 所有权限-读、写和执行权限

文件和目录的umask值

在更改系统上的umask值之前,您必须了解其对默认文件和文件夹权限的影响。

文件的默认系统权限是666(rw-rw-rw-),目录的默认系统权限是777(rwxrwxrwx)。

默认掩码值为002。它将文件夹权限更改为777-002 = 775(rwxrwxr-x)并将文件权限更改为666-002 = 664(rw-rw-r--)。

通过从默认掩码值(777和666)中减去默认掩码值来得出最终的umask值。

设置Umask值

要将所有者、组和其他人的文件夹权限设置为只读,我们需要将umask设置为333:

umask 0333

您还可以使用符号值来设置umask:

umask u=rwx,g=rwx,o=r

其中:

u设置用户/所有者的权限。

g设置组的权限。

o设置其他人的权限。

该命令仅设置指定的文件权限。例如,对于其他人,我们只希望分配读权限,因此我们指定了只读(r)的符号值。

结论

在本教程中,我们学习了umask命令以及如何使用它。在设置umask值时必须非常小心,因为它会影响整个系统的安全性。

对这篇文章感觉如何?

太棒了
1
不错
0
爱死了
0
不太好
0
感觉很糟
0

You may also like

Leave a reply

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

More in:短文资讯