当然我之前是这样子计算的 777 - 002 =775 他不也一样嘛
后面遇到umask 值为033 的时候 777- 033 =733 权限为 d rwx -wx -wx
当创建目录的时候权限却为 744 d rwx r-- r--
遇到umask 值为033 的时候 666- 033 =633 权限为 - rw- -wx -wx
当创建文件的时候权限却为 644 - rw- r-- r--
直接傻眼了
在/etc/profile中可以发现有个脚本
他的意思是 如果 uid 大于199 并且 当前用户所属的组名和当前用户的用户名相同时,则默认权限与umask值002 进行与运算 ;否则 默认权限与 umask 022 值进行与运算.
先弄清楚文件的默认权限和 目录的默认权限,先把umask 值临时设置为000,然后进行创建文件 和目录,查看默认的权限是什么
这里可以看见 默认的文件权限为666 默认目录权限为777
使用root用户登入并创建文件和目录 进行查看
root用户的uid为0 满足不了uid -gt 199条件 则默认权限与umask 022值进行与运算得出 文件权限为 644 目录权限为755.
再使用普通用户登入并创建文件和目录 进行查看
普通用户的uid一般是1000开始往上的 则满足 uid -gt 199条件 也满足所属组名和当前用户的用户名,则默认权限与umask 002进行与运算 得出 文件权限为 664 目录权限为775
那是怎么来计算的呢