Linux 命令之 umask

简介

在 linux 系统中,我们创建一个新的文件或者目录的时候,这些新的文件或目录都会有默认的访问权限,那么这个权限是怎么来的呢?这就是 umask 干的事情。

umask 设置了用户创建文件的默认权限,它与 chmod 的效果刚好相反,umask 设置的是权限“补码”,而 chmod 设置的是文件权限码。一般在 /etc/profile/etc/bashrc$[HOME]/.bash_profile$[HOME]/.profile中设置 umask 值。

umask 怎么计算

对于文件来说,umask 的最大值是6。因为系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用 chmod 命令增加执行权限。

对于目录来说,则允许设置执行权限,所以 umask 中各个数字最大可以到7。

  • 创建文件夹权限值 = 777 - umask 的预设值,如 775=777-002
  • 创建文件权限值 = 666 - umask 的预设值,如 664=666-002

umask 怎么修改

临时修改

在命令中直接用 umask 003,仅限当前系统会话。

1
2
3
4
5
6
7
8
9
10
[fenglepeng@centos]# umask 
0022
[fenglepeng@centos]# mkdir t1
[fenglepeng@centos]# touch t1.txt
[fenglepeng@centos]# ll
total 20
drwxr-xr-x 2 fenglepeng fenglepeng 4096 Dec 21 23:52 t1
-rw-r--r-- 1 fenglepeng fenglepeng 0 Dec 21 23:52 t1.txt
[fenglepeng@centos]#
`

永久修改

/etc/profile/etc/bashrc 都有设置 umask 参数默认值的逻辑。

/etc/profile/etc/bashrc$[HOME]/.bash_profile$[HOME]/.profile 都可以修改。


Linux 命令之 umask
https://flepeng.github.io/002-Linux-21-命令-Linux-命令之-umask/
作者
Lepeng
发布于
2021年7月5日
许可协议