• 新建文件的默认权限:666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变
  • 新建目录的默认权限:777-umask
  • 非特权用户umask默认是002
  • root的umask默认是022
  • 查看umask umask命令

如下图,默认文件的权限是666-022=644,默认文件夹的权限是777-022=755

临时修改umask的值为123,文件的权限是666-123=543,前面说的有位数有奇数加1,所以644,文件夹的权限是777-123=654

文件的执行权限是危险的,但是目录的执行权限是常规的。

  • 1、如果没有执行权限,root也无法直接执行
  • 2、基于安全考虑,默认新建的文件不允许有执行权限!(这就是为什么奇数要加1的原因)

mask是内部的命令,mask为遮挡的意思(内在机制)

  • 666 110110110
  • 123 001010011 mask(666中的1表示有权限,0表示没权限,上下都为1表示遮挡转化为0)
  • 110100100 则为644

为什么root的umask要大一些,umask越大意味着什么?权限越小,意味着越安全,相对root的文件更重要,所以权限要越小一些。

定制umask

使文件生效,可以看到umask已修改

 创建新文件,f3.txt的权限为000

 

  •  全局设置:/etc/bashrc 影响所有用户
  •  用户设置:~/.bashrc 只影响当前用户

 只实现临时性的文件权限为000的三种方法

  • 1、touch a.txt;chmod 000 a.txt
  • 2、umask 777;touch a.txt;umask 022;
  • 3、(umask 777;touch a.txt) 小括号内的umask是一次性有效的。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐