设为首页 收藏本站
查看: 471|回复: 0

[经验分享] 浅谈linux中umask值及其对应的文件权限

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-31 09:28:24 | 显示全部楼层 |阅读模式
最近刚好系统学习到linux文件权限这一块,在“umask值及其对应的文件权限”这一个问题上,找过视频看(老男孩老师的视频,强烈推荐),也看过鸟哥的书,当然也在网上找了找,发现计算方法都是多种多样的,但是个人觉得掌握一种就好了,看了各种方法,觉得其实大多数都是在找规律,不是找规律的又实在是太复杂,因此个人感觉不太好记,时间一长可能就忘记了,于是就根据自己的理解,做各种测试,发现有了如下更好的方法。(从理解和记忆的层次上更好的方法)

1.问题引出:设置umask为004与005时,创建的文件默认权限都是一样的

设置umask为004的情况:
1
2
3
4
5
6
[iyunv@xpleaf right]# umask 005
[iyunv@xpleaf right]# umask
0005
[iyunv@xpleaf right]# touch 005file
[iyunv@xpleaf right]# ls -l 005file
-rw-rw--w- 1 root root 0 7月  29 12:19 005file



这里的分析,为了简便,我都是只关注others的权限来进行分析。
由上面的输出可以看到,others的权限为-w-,即为3,由umask的含义(表示拿掉的权限)知,拿掉5,即拿掉了r权限和x权限(由r w x分别对应数字4 2 1知),所以创建005file文件中others的权限即为-w-,也就是2了,这与我们的认知是不相违背的。

设置umask为004的情况:

1
2
3
4
5
6
7
[iyunv@xpleaf right]# umask 004
[iyunv@xpleaf right]# umask
0004
[iyunv@xpleaf right]# touch 004file
[iyunv@xpleaf right]# ls -l 004file
总用量 0
-rw-rw--w- 1 root root 0 7月  29 12:21 004file



根据上面的分析,按道理来说,这里拿掉了others 4即r的权限,那么新创建文件others的权限就应该为-rx,可是这里怎么会是-r-呢?难道系统出错了?

当然不是了,这里也是最关键的问题所在,对此,有如下结论:
  • 对于文件来说,如果umask没有去掉x权限,则系统自动处理掉x权限;
  • 对于文件来说,如果umask有去掉x权限,则系统按正常情况去掉相应权限;
  • 对于目录来说,则不存在这样的情况。

什么意思呢?
拿上面的两个例子来说:
(1)对于设置umask为004的情况,即表示要拿掉(others)r的权限,所以默认权限就应该为-wx才对,可是由于umask没有去掉x权限,所以在我们创建新文件时,系统自动帮我们把x权限拿掉了,因此,创建的文件的权限才为-w-。
(2)对于设置umask为005的情况,即表示要拿掉(others)r和x的权限,此时,umask有去掉x权限,所以我们就按正常情况来处理好了,即创建的文件的权限就为-w-
(3)所以由上面的分析可以知道,设置umask为004和005时,文件的默认权限都是一样的。

2.深入分析:为什么系统会自动帮我们拿掉x权限?
    想一下,我们平时用touch来创建文件,绝大多数都是用来干嘛的?当然是用来存储和记录数据的,因此,这样的文件应该是不能够执行的(即使有x的权限),所以既然如此,在我们创建文件时,就应该没有必要把x权限也加上去了,如果实在需要的话,就自己手动给一个文件加x权限好了。

    于是出于这样的原因,系统就帮我们自动把x权限给拿掉了。

3.建议:用理解的方法去吸收“umask值及其对应的文件权限”知识
    以上的内容(第2点)并非有什么科学依据,只是我自己个人根据实际中测试的结果所做的一个猜测,当然鸟哥的书当中似乎也有在透露这一点(只是感觉不够清晰和明确)。

    我自己作为一个linux的新手,目前正在努力看老师的视频,同时也在看鸟哥的书,个人觉得这样去记忆是比较好的,比如umask是006,由于6表示把r和w权限拿掉,但是没有把x权限拿掉,所以在我们创建文件的时候,系统就把这个x权限也拿掉了,最终ohters的权限也就为---了;再比如umask为3,由于3表示把w和x权限拿掉,有包括x权限,以在我们创建文件的时候,最终ohters的权限也就为r--了。
    我想对于大多数人来讲,这样的方法算出答案应该还是比较快的吧,至少我觉得我不算聪明,但是也可以比较快的口算出来,当然前提是你要知道:1.umask是表示要拿掉的权限  2.r w x对应的数字分别为4 2 1(其实就是二进制的一、二、三位,分别是2的0次、1次、2次方),相比记忆奇数或偶数,我想这样的方法对于新手来讲应该是更能去理解和记忆的。

    当然,上面只是个人的一点看法而已,不过作为新手来讲,真心是建议用这样的方法去理解和记忆。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-92584-1-1.html 上篇帖子: CentOS6.5启动ActiveMQ报错 下篇帖子: CentOS 7关闭图形桌面开启文本界面 linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表