改变“umask”

要确定所需的值,只需计算出我们想要获得的文件模式的等效数字,然后从 777 中减去它。

例如,默认情况下要获得模式 751,计算 777-751=026 这是我们给“umask”的值

% umask 026

执行此命令后,所有以后创建的文件都将自动获得此保护。

另一个计算“umask”值的方法是记住“umask”中的数字2关闭写权限,而数字7关闭读、写和执行权限。

什么是 UNIX/Linux 中的 umask

用户文件创建模式掩码 (umask) 是一个内置的 shell 命令,可用于为新创建的文件的读/写/执行权限设置默认值。
它应该在“.cshrc”或者“.profile”shell 启动文件中执行。

它被赋予一个三位数的八进制值,表示可以分配给文件的权限的二进制倒数。
这个三位数的数字参数表示在创建文件时“禁止”或者“屏蔽”的访问。

创建文件时,其权限设置为创建程序要求的权限减去“umask”设置禁止的权限。
因此,它想要的值是所需数字文件模式的八进制补码。
数字给出如下所示的权限:

十进制二进制权限
0000rwx
1001rw-
2010r-x
3011r-
4100-wx
5101-w-
6110-x
7111(none)
欢迎 on it road

常见的“unmask”值

默认情况下,大多数 UNIX 版本在创建新文件时将八进制模式指定为 666(任何用户都可以读取或者写入文件)。
同样,新程序的创建模式为 777(任何用户都可以读取、写入或者执行程序)。

最常见的 umask 值是 022. 027 和 077.
umask 值 022 允许所有者读取和写入所有新创建的文件,但其他人只能读取它们:

  • 0666:默认文件创建模式。
  • 022:合成模式(resultant mode)。
  • 0644:合成模式(resultant mode)。

umask 值为 077 仅允许文件所有者读取所有新创建的文件:

  • 0666:默认文件创建模式。
  • 077:umask。
  • 0600:合成模式(resultant mode)。

在许多 UNIX 系统上,默认的 umask 是 022.
这是从 init 进程继承的,因为所有进程都是 init 的后代。

常用 umask 设置表

umaskUser AccessGroup AccessOther
0000allallall
0002allallread, execute
0007allallnone
0022allread, executeread, execute
0027allread, executenone
0077allnonenone
日期:2020-09-17 00:14:14 来源:oir作者:oir