Linux自学之旅-基础命令(umask默认权限的作用)
前言
1.上节我们讲述了chown和chgrp两个修改所有者和所属组的命令,还没看的请点击下方链接进入吧:chown和chgrp
2.这一节我们讲讲在Centos中的默认权限umask,也就是可以赋予文件一个初始权限模式
提示:以下是本篇文章正文内容
一、umask?
1.大家前面和我一起学了很多修改权限的命令,
例如chmod:可以修改某个权限位的权限模式;
chown:可以修改文件所有者或所属组;
chgrp:可以修改文件所属组;
2.这时候大家可能就有个问题了,那既然我可以对这个创建出来的文件进行修改权限,那么这个文件为什么一定是创建出来的时候就被赋予了一定的权限呢?我能不能人工干预这个文件刚创建出来时候的权限呢?(也就是你这个文件用touch或者mkdir创建出来的时候都会已经自带一个权限,那么这个自带的权限为什么会是固定的呢?我能不能手工修改?)
3.当然可以手工修改,这就要用到我们的umask命令,它可以查看到你系统当前创建文件的默认权限以及可以进行临时修改。
二、umask运用
1.文件和目录最大权限
在我们Linux中,文件和目录实际上是有一个最大设置的权限的一个规范的
{
文件:最大权限666,也就是所有者:rw,所属组:rw,其他人:rw(没有x权限是因为执行权限过于危险,你想想呀,你写好一个可以执行的文件,但是现在是不能直接执行的,否则会对系统造成一定威胁,这时候你去上厕所了,但碰巧这时候有个人手贱给你执行了,那岂不是凉凉了是吧,所以我们文件的x权限只能管理员手工进行修改)
目录:最大权限777,也就是所有者:rwx,所属组:rwx:其他人:rwx(我们知道x权限对于目录仅仅只是代表了你是否可以进入该目录罢了,所以目录默认创建的时候也会带x权限)
(现在给大家普及的这些最大权限可以用在接下来我要讲的umask默认权限中)
}
2.文件默认权限
[root@student ceshi]# umask
0022
[root@student ceshi]#
1.我们直接输入umask并回车可以看到四个数字,这里第一个数字是特殊权限,后面三个(022)才是对应文件所有者、所属组、其他人的默认权限,我们先不管第一个特殊权限,下次有机会会讲。
2.上面我们用umask查看到的四个数字,抛去第一个的话,022就是我们系统创建出来的文件的默认权限。第一个0就是我们文件所有者的默认权限;第二个2就是我们所属组的默认权限;第三个2就是我们其他人的默认权限。
3.那么这里大家就有点疑惑了,022是我们创建出来的文件的默认权限?
[root@student ceshi]# touch ces
[root@student ceshi]# ls -lh
总用量 0
-rw-r--r--. 1 root root 0 1月 28 11:40 ces
[root@student ceshi]#
4.明明创建一个文件出来的时候是644权限呀,不是什么022呀,那么作者你为什么要说022是默认权限呢?这之间难道有什么关联么?
5.那不废话嘛,不有关系拿出来说还有什么意义嘛!其实这串022是一个文件创建的默认权限没错,但是你要拿这串022经过一系列的运算才能得出我们真正的默认权限,按照官方说法的话,是要通过二进制的逻辑与和逻辑非联合运算才能得出真正的创建文件的一个初始权限。(这种方法较难,而且不实用,所以不推荐,有另外一种方式可以计算)
6.还记得我前面所说的文件和目录文件的最大权限嘛,那两个最大权限就可以帮助我们运算出真正的文件创建出来时的默认权限。
7.首先对于普通文件和目录文件来说,他们两个刚创建出来时的默认权限其实是不一样的:
[root@student ceshi]# touch jh
[root@student ceshi]# mkdir yj
[root@student ceshi]# ls -lh
总用量 0
-rw-r--r--. 1 root root 0 1月 28 11:50 jh
drwxr-xr-x. 2 root root 6 1月 28 11:51 yj
[root@student ceshi]#
(我们可以看到普通文件默认权限644,目录文件默认权限755)
8.那么我说了前面文件和目录文件的最大权限能帮助我们算出真正的默认权限,那么这里我又说了,文件的最大权限可以算出普通文件创建出来时的默认权限;目录文件的最大权限可以算出我们创建出来的目录文件的默认权限。(也就是前面我不是说了两个最大权限吗 ,第一个文件的最大权限只能算出普通文件创建出来的默认权限,然后第二个目录文件的最大权限也只能算出目录文件创建出来时的默认权限)
9.那么怎么算呢,开始了!首先umask得出的那串022终于可以派上用场了。我们就是要拿这串022和我们的文件最大权限、目录文件最大权限进行一个计算,然后就可以得出我们真正的文件或目录文件创建出来时候的默认权限。
10.首先
{
1.如何算普通文件创建出来时的默认权限:
通过上面我说的,我们知道要拿文件的最大权限和umask的022进行计算:(绝不是简单的数字相减!!!,只是大概可以这样而已)
2.如何算目录文件创建出来时的默认权限:
通过上面我说的,我们知道要拿目录文件的最大权限和umask的022进行计算:
}
3.临时修改默认权限(umask计算方式)
1.那么通过上面的我的计算方式,大家应该很清楚计算方式了把,对了记住一点,计算默认权限绝不是简单的拿数字相减,不信你umask=033去计算一下
2.是不是又颠覆了大家的想法,咦?难道不是权限位的数字进行相减嘛?哈,因为前面的022的计算方式那样解释的话比较好懂,先让大家大概了解那样可以计算之后在进行一个真正的计算方式。(意思就是前面那种计算方式一般情况下没错,但是遇到比如像我现在说的033就不对了)
实际计算方式:
3.看!我们的结果是不是和上面的一样,计算方式就是这样,主要拿文件或目录的最大权限和umask的权限进行比较,然后就可以计算出来。
4.目录文件计算方式也是一样的,大家可以自己去计算一下。这里修改默认权限的方式的话很简单,直接umask xx,就是后面接数字就行,如下:(注意,只是临时修改,重启就失效了)
5.永久修改的话如下图这两个文件里面进行更改一些配置,但是我们没说vim,也不推荐修改,默认就好。
总结
那么本节我们主要就是讲述了:
{
1.umask权限:定义创建文件的一个默认创建权限
}
下节我们讲讲一些Linux中帮助手册命令
我是结花,我们下次见!