用户创建文件/目录的时候,默认的权限是由umask的值来决定的,默认权限是相对比较安全的权限
在/etc/profile/中,我们可以看到:
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then umask 002 else umask 022 注:id -gn:即gid对应的组名 id -un:即uid对应的用户名 即当uid>199且用户名与其对应的组名相同时,umask为002,否则为022
值得注意的一点是,/etc/login.defs中管理者家目录的默认权限:077
而umask值得不同,将导致对应的默认权限不一样:
文件默认权限 | 目录默认权限 | |
umask=0002 | 664(rw-rw-r--) | 775(rwxrwxr-x) |
umask=0022 | 644(rw-r--r--) | 755(rwxr-xr-x) |
umask的计算:
文件:默认权限=默认最大权限-umask(umask有奇数位时,在结果的unmask奇数对应权限位+1)
目录:默认权限=默认最大权限-umask
例 | 默认最大权限 | umask值 | m默认权限 |
创建文件(umask全为偶数位) | 666 | 022 | 644 |
创建文件(umask存在奇数位) | 666 | 123 | 666-123=543 5+1-->6 4不变 3+1-->4 结果为644 |
创建目录 | 777 | 022 | 755 |