- 新建文件的默认权限: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是一次性有效的。