3-1·umask权限总结

一·umask码

1) 当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般可在/etc/profile、/etc/bashrc、$ [HOME]/.bash_profile、$[HOME]/.profile$[HOME]/.bashrc中设置umask值。具体取决于Linux发行版,比如Fedora19下要更改自己的umask值,在$[HOME]/.profile或$[HOME]/.bash_profile下的增加umask的值覆盖不了/etc/profile中的配置值的,必须在$[HOME]/.bashrc下增加umask值才可以永久定义自己的umask值。

2)一般我们系统默认反码指定的是022(/etc/bashrc)

...
 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
       umask 002
    else
       umask 022
    fi
    ...

这段代码就是指定umask的默认权限,指定UID大于199的用户默认umask为002,则小于UID小于199的用户默认umask则为022

-eq 等于 -ne 不等于 -gt 大于 -ge 大于等于 -lt 小于 -le 小于等于

3)如何和计算默认权限呢?

首先我们要知道Linux一切皆文件
其实细致来说是,文件和目录

文件默认最大权限为666(rw-rw-rw-)
因为,文件的根本就是是否可以被执行,系统默认把最高的执行权限收回了~
假设:
默认umask为022
那么我们默认建立一个普通文件

[root@localhost ~]#    touch 1.txt
[root@localhost ~]#    ll
    -rw-r--r--. 1 root root    0 126 12:07 1.txt
得到的默认权限是644
计算过程:rw-rw-rw- 减掉相同的权限 ----w--w- 得到 rw-r--r-- 
         最高权限   减掉相同的权限   umask   得到 默认权限
结果是644

而目录的默认中最大权限为777(rwxrwxrwx)
目录中的执行权限x 代表是否可以进入此目录,所以系统不会收回目录的执行权限
假设:
默认umask为022
创建一个目录

[root@localhost ~]# mkdir 1
[root@localhost ~]# ll -d 1
    drwxr-xr-x. 2 root root 4096 126 12:17 1
得到的默认权限是755
计算过程:rwxrwxrwx   减掉相同的权限 ----w--w- 得到  rwxr-xr-x
        默认最高权限  减掉相同的权限   umask   得到  默认权限
结果是755

默认权限需要换算成字母再相减

你可能感兴趣的:(Linux,umask,特殊权限,基本权限,linux,权限)