umask是chmod配套的,总共为4位(gid/uid,属主,组权,其它用户的权限),不过通常用到的是后3个,例如你用chmod 755 file(此时这文件的权限是属主读(4)+写(2)+执行(1),同组的和其它用户有读写权限)
基本都是说目录权限就用777-umask,文件权限就用666-umask,如果这么简单的话那么当umask设置为022和033的时候为什么创建的文件权限都是644?所以,仅仅这种简单的方法显然是不太可取的,这种方法计算目录权限还行,文件的就不准了,下面总结了两种计算方法:
① 以二进制方式换算:
1、先将将总的权限(目录777,文件666)和umask值都转换为2进制,然后对umask取反,再将两个2进制值做与运算,得到的二进制值再转换十进制,即为权限,
2、如果是对于计算umask,把设置的文件权限换成二进制,然后取反,再与总的权限相与
umask=022=0000 0010 0010 NOT运算 1111 1101 1101 0110 0110 0110 1111 1101 1101 ------------------------------ 0110 0100 0100=644 umask=033=0000 0011 0011 NOT运算 1111 1100 1100 0110 0110 0110 1111 1100 1100 ------------------------------ 0110 0100 0100=644