Linux理论情况下,新建普通文件默认权限是666,新建目录文件默认权限是777,然而新建实际看到的可能是普通文件:664、目录文件:775。
在Linux中创建文件和目录时,单个用户新建普通文件或目录文件其权限是一样的,控制这个新建权限的叫做权限掩码。
示例:
分析:
umask命令可以查看权限掩码。0002(第1个零表示这是一个八进制的数)
示例:
分析:
umask 八进制数,可以修改权限掩码。
示例:
分析:
umask设置为0000后,新建普通文件权限就为666,新建目录文件权限就为777了。所以想让新建文件初始权限符合实际预期,那么就需要修改权限掩码的值。
示例:
分析:
最终权限 = 默认权限 & (~umask);
默认权限,普通文件:666(110 110 110),目录文件:777(111 111 111);
权限掩码设置为222(010 010 010),取反就是(101 101 101);
普通文件最终权限 = (110 110 110) & (101 101 101) = (100 100 100) = 0444;
目录文件最终权限 = (111 111 111) & (101 101 101) = (101 101 101) = 0555;
公式验证的结果和新建文件结果是一致的。