linux umask 命令快速理解

今天有人问linux建立文件,默认的权限是怎么来的,忽然想不起了,搜索了下发现umask命令,你们回答的比较繁琐,其实这样理解比较好!
 在linux控制台上敲umask命令,通常会获得0022,先普及个常识,建立文件不会带上可执行权限x;建立文件夹会带上可执行权限(否则怎么打得开目录呢),基于这个常识,0022,去掉前面的0,而后对022 按照文件权限标识位的方式取反。以下图所示:

在此输入图片描述

验证一下,来个shell脚本吧。

str="0 1 2 3 4 5 6 7" && for i1 in ${str}; do for i2 in ${str};do for i3 in ${str}; do umask=${i1}${i2}${i3} && umask 0${umask} && touch ${umask}.txt && mkdir -p ${umask}-dir ;done;done ;done 

这个脚本修改umask,而后建立对应的文件和文件夹,文件取名为 ${umask}.txt,文件夹取名为${umask}-dir  
如:umask为777 ,建立的文件名为777.txt,文件夹名为:777-dir  
这样对应关系就一目了然了。
 以下图示:

在此输入图片描述

相关文章
相关标签/搜索