Linux之umask详解

Linux之umask详解

看了网上很多umask的文章,有的过于臃肿,越解释越迷糊,以下自己研究过程,仅供大家参考,有误,请指正:

1、umask到底是什么?

按照我个人理解就是对文件、文件目录权限控制的预设值(注意这个预设值是要被减掉的)。

2、umask怎么查看预设默认值?

这里需要特别注意的是:linux系统本身有一个创建文件夹、文件的初始值, 文件夹:777 文件:666

##通过umask 便可以查看当前用户的umask值。
[root@qjzhao /]# umask
 0022

3、umask默认值是否可以修改?在哪里修改?

  • umask是可以被修改
  • 在/etc/profile 与/etc/bashrc 都有umask参数设置默认值。

4、umask默认值因用户、组不同存在差异

在这里插入图片描述
在/etc/profile、/etc/bashrc这个文件中详细说明了,说明什么情况下存在差异?此处我有一个疑问就是,根据这个逻辑来看,假如存在一个用户,uid>199且用户名和组一致,那么他的umask 权限为002?相当于是非root用户创建文件夹、文件反而权限更大?why?如果大家有研究,可否告知我一下!

[root@qjzhao /]# groupadd zqj -g 200
[root@qjzhao /]# useradd zqj -u 200 -g zqj -s /sbin/login
[root@qjzhao /]# id zqj
uid=200(zqj) gid=200(zqj)=200(zqj)
[zqj@qjzhao ~]$ umask
0002
[zqj@qjzhao ~]$ ll -d test
drwxrwxr-x 2 zqj zqj 21 1229 08:17 test
[zqj@qjzhao ~]$ ll test
-rw-rw-r-- 1 zqj zqj 0 1229 08:17 111.txt

5 umask值怎么算?

我觉得要理解怎么算umask的值前提有两点:

①、操作系统初始创建文件、文件夹默认值是多少
②、/etc/profile、/etc/bashrc中默认umask的值是多少

用户创建文件夹权限值=初始创建文件夹默认值-umask的预设值
如:
775=777-002
用户创建文件权限值=初始创建文件默认值-umask的预设值
664=666-002

6 临时修改umask

在命令中直接用 umask 003就行,仅限当前系统会话。
此处需要注意的是,设置某些umask值,实际是没有减掉的,如下演示

[zqj@qjzhao ~]$ umask 007
[zqj@qjzhao ~]$ touch 111.txt
[zqj@qjzhao ~]$ mkdir -p test
[zqj@qjzhao ~]$ ll 111.txt 
###此处需要减掉7,但实际上减掉了6,少减了一个1.
-rw-rw---- 1 zqj zqj 0 1229 09:05 111.txt
[zqj@qjzhao ~]$ ll -d test
###此处被减掉了7所以 test文件夹的权限为770
drwxrwx--- 2 zqj zqj 6 1229 09:05 test
[zqj@qjzhao ~]$ 

以上样例说明了一个问题,当umask预设值超过了系统初始默认值,不管文件、还是文件夹会按照777的权限进行。

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值