【我的技术我做主】浅谈linux中umask值及其对应的文件权限

简介:

 最近刚好系统学习到linux文件权限这一块,在“umask值及其对应的文件权限”这一个问题上,找过视频看(老男孩老师的视频,强烈推荐),也看过鸟哥的书,当然也在网上找了找,发现计算方法都是多种多样的,但是个人觉得掌握一种就好了,看了各种方法,觉得其实大多数都是在找规律,不是找规律的又实在是太复杂,因此个人感觉不太好记,时间一长可能就忘记了,于是就根据自己的理解,做各种测试,发现有了如下更好的方法。(从理解和记忆的层次上更好的方法)


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

设置umask为004的情况:

1
2
3
4
5
6
[root@xpleaf right]# umask  005
[root@xpleaf right]# umask
0005
[root@xpleaf right]# touch 005file
[root@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
[root@xpleaf right]# umask  004
[root@xpleaf right]# umask
0004
[root@xpleaf right]# touch 004file
[root@xpleaf right]# ls -l 004file
总用量  0
-rw-rw--w-  1  root root  0  7 月   29  12 : 21  004file

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

当然不是了,这里也是最关键的问题所在,对此,有如下结论:

  • 对于文件来说,如果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次方),相比记忆奇数或偶数,我想这样的方法对于新手来讲应该是更能去理解和记忆的。

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


51cto十周年博客活动正在进行,你也来参加吧

   活动地址http://51ctoblog.blog.51cto.com/26414/1679643

相关文章
|
3月前
|
Linux Shell
在Linux中,umask 和 ulimit有什么区别?
在Linux中,umask 和 ulimit有什么区别?
|
4天前
|
存储 安全 Linux
|
1月前
|
Linux 虚拟化
Vmware 傻瓜式安装(不可不知道的Linux基础知识和技术 01)
本文介绍了VMware虚拟机的下载与安装步骤。首先,通过提供的网盘链接下载VMware安装包。接着,详细描述了安装流程,包括接受协议、选择安装路径(建议避免系统C盘)、取消更新选项等。最后,输入许可证密钥完成安装,并展示了打开虚拟机后的主界面。整个过程简单易懂,适合新手操作。
126 1
|
2月前
|
安全 Linux 数据安全/隐私保护
探索Linux操作系统的文件权限管理
【9月更文挑战第29天】在数字世界中,文件权限管理如同保护我们隐私的锁。本文将带你了解如何在Linux系统中设置和管理文件权限,确保你的数据安全。我们将一起学习如何通过命令行工具来控制文件访问,就像学习一门新语言一样有趣。准备好了吗?让我们一起开启这场技术之旅!
|
26天前
|
Linux
linux/mac 下查看、修改文件权限的命令
这篇文章介绍了在Linux和Mac操作系统下如何查看和修改文件及文件夹的权限。
37 0
|
2月前
|
安全 Linux Android开发
Linux CFI (Control-flow integrity)技术相关资料汇总
Linux CFI (Control-flow integrity)技术相关资料汇总
|
3月前
|
存储 监控 Linux
在Linux中,如何进行虚拟化技术的应用?
在Linux中,如何进行虚拟化技术的应用?
|
3月前
|
Linux
在Linux中,Umask是什么?
在Linux中,Umask是什么?
|
3月前
|
Linux 数据安全/隐私保护
在Linux中,什么是文件权限?什么是rwx权限模型?
在Linux中,什么是文件权限?什么是rwx权限模型?
|
3月前
|
安全 Linux
在Linux中,文件权限有哪些?
在Linux中,文件权限有哪些?