今天有人问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 这样对应关系就一目了然了。 以下图示: