umask命令的作用:
当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。
文件权限码:
linux下的文件分为读(r),写(w),执行(x),分别对应数字4,2,1,如果一个文件具有所有用户完全的读写执行权限,那么他的字母权限为 rwxrwxrwx,对应的数字权限为 777,这个777就为权限码
补码:
假如一个文件的权限码是 775,那么他的补码就是 002,如果文件权限码是 755,那么他的补码就是 022,实际就是:补码与文件权限码相加的结果是 777
umask实际设置的是创建目录的默认权限的补码,而文件(不是目录)的默认权限是在目录的默认权限上去掉所有可执行权限,比如umask设置的补码是 003,那么目录权限就是774,文件权限就是664
使用:
umask #获取当前文件默认权限补码
可以看出当前文件的权限补码是002,那么创建一个新文件的默认权限是775,可以验证下是对的。
umask 033 #设置当前文件权限补码
设置之后再次查看会发现权限补码变成了033。
创建一个目录和一个文件,可以查看到目录权限是744,文件权限是644。