umask

1.Umask

http://man.linuxde.net/umask

umask命令用来设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉。

umask u=, g=w, o=rwx(不能直接利用umask命令创建一个可执行的文件,用户只能在其后利用chmod命令使它具有执行权限。虽然在命令行中,没有删去文件主和组用户的执行权限,但默认的文件权限还是640(即 rw-r-----))

执行该命令以后,对于下面创建的新文件,其文件主的权限未做任何改变,而组用户没有写权限,其他用户的所有权限都被取消。

应注意:操作符“=”在umask命令和chmod命令中的作用恰恰相反。在chmod命令中,利用它来设置指定的权限,而其余权限则被删除;但是在umask命令中,它将在原有权限的基础上删除指定的权限。

2. 那什么是umask呢?  https://blog.csdn.net/hxllhhy/article/details/72972517
  umask就是配合最大权限计算出默认权限的东西。

直接输入umask可以查询操作系统的umask值,默认是0022.

创建文件默认最大权限为666 (-rw-rw-rw-),默认创建的文件没有可执行权限x位。 
创建目录默认最大权限为777(-rwxrwxrwx),默认创建的目录有x权限,允许用户进入。 

  例子1: 主要看后三位022,w对应的是2,这就意味着文件的默认权限就是- rw- r- -r- - (644)。可见就是文件的最大权限里面去掉w权限,因为所有者user对应的数字是0,所以user权限不变。
  同理,目录的默认权限也是最大权限去掉022,也就是drwx r-x r-x (755) 。

        例子2: 设置umask为0005的情况: 


                                              这里写图片描述 
                                  由umask的含义知拿掉5(666拿掉005),即拿掉了others的r权限(4)和x权限(1),但是默认创建的文件没有可执行权限x位,这时候就忽略x。所以创建的0005file文件中others的权限即为-w-,也就是2了。 

                                         不能是 666-005=661 这么计算

 3.  Linux下的etc/profile和etc/bashrc中都有默认的umask设置,我们来看一下:

    https://www.cnblogs.com/MrListening/p/5821296.html

    #umask

    #umask -S

 4.  http://blog.51cto.com/371138/1669315

交互式登录:读取次序:(越靠后优先级越高)

      /etc/profile --> /etc/profile.d/* --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非交互式shell  :当一个脚本系统能开机自动运行的shell 运行次序

      ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*

               

原文地址:https://www.cnblogs.com/ngtest/p/9763375.html