在linux创建文件、文件夹的时候会给它们赋予默认的权限,这个默认权限的赋予就是和umask相关的。总结如下:
1:x 执行
2:w 写入
4:r 读取
文件创建的时候的权限为 666与umask的每一位对应相减;如 umask 为 0022 那么文件的默认权限为644。有特殊情况,就是umask中存在奇书的时候,例如umask为0021,这是文件的默认权限应该为 645,但是文件默认创建的时候不允许有执行的权限,所以要把执行的权限去掉。那么5就要减去1. 文件的默认权限依然是644.
文件夹创建的时候的权限为777与umask的每一位相减。如umask为0022,那么文件夹的默认权限为755。 如果umask为0021,那么文件夹的默认权限为756。
实操过程:
查看我的umask
看到当前的umask值为 0022
首先创建一个文件,并查看文件的权限:
可以看到文件的权限为 0666-0022=0644. 前面的那个0是特殊权限位。这里不去管他。
然后创建一个目录,并查看目录的权限:
可以看到文件的权限为 0777-0022=0755.
修改umask的值为0021,并创建文件查看文件的权限。
可以看到文件的权限是 0646,因为文件创建的时候默认不允许运行,所以应该是0645的权限变为了0646.
接着创建文目录,并查看目录权限
结果为 0756 就是 0777-0021=0756