• {{ item.name }}
  • Home
  • Linux
  • Programming
    • Python
  • Life
  • Other
  • Tools
  • 投资者该如何参与优秀的区块链项目- NuLink社区圆桌会议
  • 什么是NuLink?- 项目中文社区与项目研究组成员 Rookie 对话实录
  • NuLink 融资 400 万美元用于开发隐私保护技术
  • NuLink的零知识证明介绍(1)
  • 用bitwarden_rs搭建属于自己的密码管理器
  • 修复 CentOS vps 网卡失效
  • 记录用mac给Nexus6P刷Android10的错误
  • Centos 6.8启用 TCP BBR拥塞控制算法
  • Nginx 启用HTTP2功能
  • Mac 安装adb工具
  • WordPress 默认编辑器代码按钮

umask

  • iansiu
  • 2015-12-01
  • 0

什么是umask

当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限"补码",而chmod设置的是文件权限码。一般在/etc/profile、$[HOME]/.bash_profile或$[HOME]/.profile中设置umask值。

查看 umask 的值

输入

umask

1 如何计算umask值

umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、
其他用户)存在一个相应的 umask 值中的数字。对于文件来说,这一数字的最大值分别是6。
系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用 chmod 命令增加这一
权限。目录则允许设置执行权限,这样针对目录来说,umask 中各个数字最大可以到7。

该命令的一般形式为:

umask nnn

其中nnn为umask置 000 – 777

umask值与权限

例如,对于umask值002,相应的文件和目录缺省创建权限是什么呢?

第一步,我们首先写下具有全部权限的模式,即777 (所有用户都具有读、写和执行权限)。
第二步,在下面一行按照umask值写下相应的位,在本例中是002。
第三步,在接下来的一行中记下上面两行中没有匹配的位。这就是目录的缺省创建权限。

稍加练习就能够记住这种方法。

第四步,对于文件来说,在创建时不能具有文件权限,只要拿掉相应的执行权限比特即可。

这就是上面的例子,其中umask值为002:

1) 文件的最大权限rwx rwx rwx 777
2) umask值为002 – – – – – – -w-
3) 目录权限rwx rwx r-x 775 这就是目录创建缺省权限
4) 文件权限rw- rw- r– 664 这就是文件创建缺省权限

下面是另外一个例子,假设这次 umask 值为 022:

1) 文件的最大权限rwx rwx rwx 777
2) umask值为022 – – – -w- -w-
3) 目录权限rwx r-x r-x 755 这就是目录创建缺省权限
4) 文件权限rw- r– r– 644 这就是文件创建缺省权限

2 常用的umask值

如果想知道当前的umask值,可以使用umask命令:
如果想要改变umask值,只要使用umask命令设置一个新的值即可:

$ umask 002

确认一下系统是否已经接受了新的umask值:

在使用umask命令之前一定要弄清楚到底希望具有什么样的文件/目录创建缺省权限。否
则可能会得到一些非常奇怪的结果

例如,如果将umask值设置为600,那么所创建的文件/目录的缺省权限就是066

除非你有特殊需要,否则没有必要去管他,系统默认的值 022
umask是用的掩码,至于掩码的概念,从基础学吧,这里不说了。

掌握二个要点,

一、文件基数为666,目录为777,即文件无设x位,目录可设x位。
二、chmod是设哪个位,哪么哪个位就有权限,而umask是设哪个位,则哪个位上就没权限。
我们只要记住umask是从权限中"拿走"相应的位即可。

© 2025 laowang's blog
Theme by Wing