一、umask是什么
登录系统以后创建的一个文件会有一个默认权限。umask的作用就是设置用户创建文件或者目录的默认权限。umask设置的是权限的补码,我们常用的chmod设置的是文件权限码。一般在/etc/profile、home/.profile设置umask值
二、umask的作用
umask的作用是用来控制默认权限的。首先了解一下基本权限
2.1Linux文件权限
r | w | x | |
---|---|---|---|
文件 | 可以查看文件内容(可读) | 可以修改文件(可写) | 可以吧文件启动为一个运行的程序(可执行) |
目录 | 可以用ls查看目录中的文件名 | 可以在目录中创建或者删除文件(需要w权限配合) | 可以使用cd进入目录,ls-l可以显示目录内文件的元数据的信息 |
2.2文件的最大权限
目录
目录的最大权限为777,创建目录后目录的默认权限就等于最大权限减umask 如:777-022=755;
高位八进制数表示所有者的权限,也就是文件创建者,中位八进制数表示所在组的权限,低位八进制表示其他用户的权限。
文件
文件的最大权限为666,创建文件后文件的默认权限就等于最大权限减umask 如:666-022=644;
如果对应位上为偶数:最终权限就是这个偶数值。
如果上面的对应为上有奇数,就对应位+1。
上面的这个方法计算是非常方便的, 为何得到奇数要+1呢。
文件的最大权限是666,都是偶数,你得到奇数,说明你的umask有奇数啊,读为4,写为2,都是偶数,说明你有执行权限的。
就按照上面的umask=023为例,在计算其他用户权限的时候6-3=3 ,6是读写,3是写和执行,其实应该是读写权限减去读权限的得到写权限的,相当于我们多减去了一个执行权限。所以结果加1。
三、umask的修改
umask的修改有两种:分为 临时修改 和永久修改
临时修改: 输入命令:umask 023
永久修改:
可以编辑以下文件 添加umask=022。
交互式登陆的配置生效:
/etc/profile < /etc/profile.d/.sh < ~/.bash_profile < ~/.bashrc </etc/bashrc 【/etc/bashrc的配置最有效 可以覆盖前面的配置】
非交互登陆的配置生效:
~/.bashrc < /etc/bashrc < /etc/profile.d/.sh
四、常用umask
umask 002
umask 022