00:00
那前面我们已经介绍了用户管理和用户组管理的相关命令。我们就会思考一个问题了,用户组划分出来之后,到底是为了干什么呢?哎,当然就是为了把用户,很多用户做一个集中化的管理了,那这一些用户集中在一起构成了一个用户组,怎么样去针对他和其他的组进行区别呢?他们的区别当然就在于拥有不同的系统操作权限。比如说像我们之前说的这个速度啊,那在那个速度二配置文件里边,你就可以把一个组像我说的啊,加上一个百分号,后边加一个组名,就可以直接把这一个组都设置成具有执行所有命令这样的一个权限。那对应的呢,我们还可以针对一个组赋予其他的一些权限,之前我们看到的,在这个实践的过程当中,我们会发现啊,主要就是比方说我切换了一个艾特硅谷用户,我想要进入到当前的root用户的主目录下边来看的话,那显然它需要提升权限本身他是没有权限去看别人的主目录的,我们能够想到除了超级管理员root之外。
01:12
普通用户,他们彼此之间主目录肯定都是没有权限访问。那这里面就涉及到另外一个问题,除了各自的主目录里边的内容,那其他的目录呢?哎,我们知道啊,在根目录下边有很多不同的文件夹,那比方说ETC配置文件,到底谁才可以去访问呢?那当然了,Root用户肯定可以访问,那这里面的配置文件这么多,是不是其他的普通用户全部能访问呢?当然不是这样。所以这里边我们就又涉及到了另外一个问题,除了自己的主目录访问权限之外。别的文件和文件夹是不是针对不同的用户,不同的用户组也应该有一个权限的划分呢?这就涉及到了我们接下来要讲的这一部分内容,那就是文件权限的管理啊,这其实跟前面我们讲到的用户用户组的管理是结合在一起的,划分用户组的原因,甚至我们可以认为划分不同用户的原因,一方面呃是为了方便我们多用户的同时操作,另外一方面也是要做权限的管理,那权限当然就体现在怎么样去读写、操作文件和文件夹了啊。所以接下来我们来先来讲一点基础的知识,那就是Linux里边的文件属性到底是什么。
02:36
这里我们首先看一下,哎,Linux系统它是一个典型的多用户多任务系统,那这里边不同的用户呢,它是有不同的权限的。这里为了保护系统的安全,Linux系统对不同的用户访问某一个文件或者某一个目录的时候。针对他们的这个权限就做了不同的规定,好啊,那这里边我们怎么样看对应的这个访问权限呢?其实非常简单,直接使用LL,呃,或者我们知道它其实是一个别名嘛,呃,直接使用LS-L命令就可以显示当前文件的所有信息,里边就包含了文件的访问权限,诶,我们可以。
03:19
回过头来再来复习一下啊,直接LL看当前的这个目录,我们可以看到下边的这个文件,包括文件夹前面其实都有一串这个字符。那这个字符呢,其实一共有十位,它就代表了当前的文件类型,以及文件或者文件夹的访问权限。而能第一位,其实我们之前都已经说了啊,如果是一个横杠的话,这就表示这是一个普通文件,哎,我们可以以文本文件的方式直接用,并把它打开。那如果是D的话,这就表示当前是一个目录,一个文件夹directory,那如果是L的话,之前我们也见过,如果是L的话,那就表示这是一个link,这是一个链接啊,当然了还有其他的一些不同类型的文件啊,比如说还有这个C类型。
04:11
还有B类型。那这两种类型呢,表示的这就都属于设备文件。那C表示的是字符类型的设备文件,比如说像这个鼠标键盘啊,它输入的这个操作可能涉及到字符,这就是C类型,那如果要是B类型呢,它就指的是所谓的块设备文件,那比方说像这个硬盘啊,对应的就应该是一个块设备文件,诶那为什么涉及到的这些设备呢?因为之前我们说过Linux系统里边一切接文件,所有的设备也是用文件来进行管理的,那当然就得有对应的文件类型啊,诶,那所以用这个就可以表示出来,好对应的这些文件呢,当然是在dev设备目录下边可以看到所有的内容,哎,那这里我们可以LL一下dev。来看一眼,那在这里前面我们就看到了,诶,这个D这打头的当然是一个目录了,C打头的,这就是一个字符设备文件啊,那如果我们往上翻的话,可以看到还有这个B打头的,这就是一个块设备文件啊,对应的这些东西,还有这个L打头的,这就是一个链接了。
05:18
所以我们一般情况下应该考察最多,应用最广泛的当然就还是普通文件和目录文件夹啊,最多还涉及到这个l link链接文件。好,那第一位的表示文件类型的字符我们就已经了解了,那后边我们说一共有十位,那后边九位又分别表示什么呢?哎,其实后边九位可以三位三位的把它们做一个划分。哎,就是二到四位啊,就是我们这里边,如果你要是以这个二进制开头,说它是从零到九一共十个位的话,那接下来就是一到三。
06:02
这三位表示的是一组权限,然后从后边四到六。到这里又是一组权限,接下来七到九。又是一组权限,而且我们看到它的这个权限的写法都是什么呢?哎,其实都是RWX这样的写法,或者中间呃,用一个这个横杠来代替,这分别表示的是什么呢?那我们统一来说一下啊,它们其实分别表示的是。一到三这三位表示的是所谓的属主权限,诶,什么叫属主呢?属主就是该文件的创建者或者说所有者。这就是所谓的owner属主,有时候直接会把这一部分叫做U。啊,就是user对应的它的这个所属的用户对应的权限,当然一般情况呢,三个权限都是打开的,我们看这三个权限分别是什么呢?啊,第一位表示的是R表示读权限。
07:01
是否可以读这个文件,第二位呢是W,是否可以写这个文件right啊,那最后一个是X表示是否可以执行这个文件啊,所以就是读写执行RWX3个位表示三种权限。那同样接下来的四到六位表示的是属组权限啊,那数组权限指的就是当前这个文件属于的用户组到底是哪个组,这个组里边的其他用户啊,就除了他的这个owner啊,它的属主之外,别的用户到底有什么样的权限?啊,那所以它跟这个本身所拥有的这个属主当然就会有所不同了,一般比它的权限要小一点,所以我们看到还是RWX3位表示三种权限,那往往呢,可能就可以读,可以执行,但是不能写,不能更改啊,所以中间这个呢,一般情况我们把它叫做G啊。
08:00
Group权限吗?属组权限,最后还有一个是其他用户权限,我们把它叫做other。七到九位啊,那就表示除了这个文件的创建者,他的属主以及它所属的主用户之外,其他的用户他的权限是什么样的呢?同样用三位RWX表示三种不同的权限啊,那一般这个我们用O来表示other,哎,那所以这就是所谓的UGO3种不同的权限类型的表达。那下面我们可以具体来再来回顾一下啊,就是首先零这个首位表示的是当前文件的类型,然后呢,一到三位确定的是属主对于该文件的权限啊,那一般情况这个对应的就是user,四到六位确定的是组啊,也就是说所有者的同组用户,我们当前文件所属于的组。拥有该文件的权限,Group权限啊,那另外七到九位,最后三位呢,就是其他用户other所拥有的权限。
09:03
那这里大家需要注意的是,RWX这三种权限对于文件和目录来讲,它是有不同的解释的啊。文件比较简单,R就表示是否可以查看这个文件吧,Read可以读取,那W呢,表示可以修改,可以写入数据。注意,W可以修改当前的文件,但是不代表可以删除这个文件。哎,那删除文件那需要什么样的权限呢?注意删除文件的话,相当于我们修改的是当前文件所在的目录啊,就是假如说我在这里。我在这里如果说想要去删除这里的infer这个文件,或者说修删除这里的这个配置文件的话,那相当于是要对当前的root这个目录做一个修改。所以必须得有当前文件所在目录的。写入权限W权限的时候才可以删除文件,好,那稍后我们会继续说,那最后的这个X呢,代表的是可执行权限,那就是说当前这个文件如果是一个比方说是一个脚本啊,或者是一个可执行的某种文件的话,那接下来我们给他一个X就可以直接执行了,被系统调用执行。
10:20
与之对应的那就是作用到目录的时候,这三种权限呢,代表的含义有所不同,首先是读read的权限。读一个目录指的是什么呢?诶,当然就是可以查看目录下边的所有内容了,也就是说只有具有当前目录的读权限的时候,我们才可以LS去看,执行这个命令,看目录里面的东西。另外就是W权限,写入权限。如果说我们拥有目录的W权限的话,就可以修改目录里边的东西指的是什么呢?就可以在目录里边创建文件或者目录,可以去删除一个文件或者目录,还可以去重命名对应的文件或者目录,哎,所以我们会发现啊,如果想要去删掉一个文件的话,需要的权限不是当前文件的W权限,而是它所在目录的W权限,这个一定要区分开。
11:16
最后还有一个可执行权限X,那对于目录而言,什么叫可执行呢?那就是执行CD命令能够进入到当前目录里边,那就是表示它可执行了啊。所以这两者文件和目录对于RWX不同权限的解释,我们一定要分清楚。好,那接下来呢,我们还是到命令行里边来针对具体的情况来做一个具体的详细分析啊,那首先我们这里可以看一下当前目录下边所有的文件和文件夹,那他们前面呢?呃,这里有十位代表了他们对应的类型和所谓的文件权限,那这里面我们可以看到啊,比如说这里这个initial setup ks.CFG,它前面的权限是什么样子的呢?哎,其实就是我们看到首先一个表示它是一个普通文件啊,我们可以直接用V把它打开,看到里面的内容,那首先呢。
12:13
我们看到前三位指代的是当前文件的属主权限,也就是说它是由谁来创建的呢?由root用户创建的啊,我们可以看到后边其实这里边列出来的这个root指的就是当前文件的数组。那后边还有一个root指的是什么呢?也就是他所属的用户组啊,就是我们说的属组,它是root这个组里边的文件啊,那对应的我们就知道了啊,那root用户本身是他的属主,他拥有的权限就是RW可读可写,另外没有可执行权限,因为我们知道这是一个配置文件嘛,你最多就是诶直接去读取或者去修改,去写入,肯定它是没有办法直接执行的啊,系统自动会读取它,去调用它,那后边呢,如果是属主当前所属的用户组,Root这个用户组里边其他的用户的话,那他就只有读权限,连写权限也没有了。
13:12
那如果要是other的话,同样也是只能读不能写,这个就看的非常的明确,那同样我们可以看一下最上面的这一个配置文件,它的区别就在于当前的属主有读写权限,那对应的相同用户组里边的其他用户以及组外的其他用户连读取的权限都没有了啊,所以这个就可以看的非常的清楚。那对应的后边我们还看到有一些这个目录文件夹,那么它的类型前面看到是D,那后边呢,RWX都有读写可执行所有的权限,也就是说root用户可以看到里边的内容,可以去更改里边的内容,诶可以创建文件,创建文件夹,可以去删除,重命名,也可以去X,就是可以执行,可以进入当前的目录里面去。
14:03
那当然了,不光是root用户可以进去,我们看到后边的所在组,Root组里边的用户以及其他用户都可以去读取里边的内容,也可以去进入对应的目录,哎,所以当前的这个。他的权限其实别的用户也都是可以进来的啊,这个是完全没有问题的。接下来我们可以做一个简单的测试啊,因为当前我们这个目录是在root的主目录下边,别的用户他直接没有访问权限啊,那所以接下来呢,我们其实关于这个root本身这个主目录的访问权限,我们也是可以看到的,当然一种方式就是你退到根目录里边去看这个root的访问权限到底是什么。我们直接CD到根目录,然后LL看一下当前的root访问权限。那它是一个目录,然后如果是root用户的话,它是有读取和进入啊执行的这样一个权限,那如果要是root组呢,也拥有读取和执行的权限,可以进去,但是如果是其他用户,那就不能读也不能进去啊。
15:08
或者用另外一种方式,就是我们在root里边其实也可以看它,那就是直接LS,我们可以杠al-A的话,就连隐藏文件以点开头的也都可以看到了,同样我们就可以看到点儿和点儿点啊,那这个点呢,一个点表示的就是当前目录自身嘛,同样我们可以看到它对应的访问权限是什么样的。那因为其他的用户是没有办法访问到root的主目录的啊,所以这里边呢,为了避免这个问题,我们可以把它里边下边的一些文件。复制到比方说艾特硅谷对应的那个主目录下面去。所以我们这里可以直接CP,比方说当前啊,目录下边的我们这个A打头的配置文件直接复制到home。At硅谷下边,同样我们可以把initial setup ks.CFG这个文件复制到home at硅谷下面去。
16:07
好,这两个文件复制过去了,接下来我们就可以直接切换用户了,切换成艾特硅谷用户啊,然后呢,我们直接跳转到他的主目录下面去看到了对应的这两个文件啊,这里我们可以直接LL看一下对应的它的属主和所属的用户组,其实还是之前的root啊,因为当前把它复制过来之后,文件的原信息是没有改变的。那这里它对应的文件所有的权限也没有改变,所以我们来看一下,那当前这一个initial setup ks可不可以去做访问呢?好,我们看一下。没有问题,直接可以看到里面的信息,那对应的另外一个A打头的这个配置文件可不可以访问呢?诶我们看到权限不够,为什么?这就是因为前面我们看到普通用户对于这个文件是没有访问权限的。
17:00
诶,这个就看的非常的明显啊,当然了,对于这个initial setup ks配置文件,当前也没有写入权限,除非我们使用速度的方式啊,或者说为什么打开之后啊,用强行感叹号强制写入的方式,可以往里面写入东西,因为我们当前有这个速度权限嘛,所以是可以进行强行写入的,但是一般情况啊,当前没有写权限的时候,最好就不要往里面去写,当前是一个只读文件。好,那这里边我们既然看到了所有的文件信息,我们也可以把其他的一些参数,一些信息也来做一个基本的解释,哎,那这里我们看到啊,前面本身这是当前的文件类型和权限,那后边这个一表示什么呢?一表示当前的当前文件的硬链接数,哎,那大家还记得之前我们LN-S创建的是软链接,所以我们说LN如果不加杠S参数的话,创建的就是硬链接,硬链接的特点就是。
18:01
所有创建的这个链接其实都是指向了同一个文件的。I know?就是我们所说的这个索引节点。也就是说,如果你创建了硬链接之后,原始的文件删掉,那其实是没影响的啊,就是后面我们当前的这个硬链接,它还可以访问到对应的ino的信息,访问到对应的存储的数据空间啊,所以就相当于我们这个文件还是存在。这就可以防止误删啊,那所以当前这个文件什么时候才叫真正的删掉呢?那就是硬链接数量变成零的时候,嗯,所有的硬链接都已经没有的时候,当前这个文件就真正的要被删掉了。所以我们看默认一个文件放在这儿的时候,它硬链接数量就是一。当然了,如果是软链接的话,这个数量是不会变的,大家可以下去之后自己去测试,后面呢,诶,这里当然就是它当前文件的属主了,它的owner user,那在后面就是当前它所属的用户组group,再往后,诶这个这是一个数字,很显然这是当前文件的大小。
19:10
再往后的话,那就是文件所创建的时间,或者是最后一次更改的时间,然后最后当然就是文件的名称了啊,所以最后我们总结起来啊,可以看到当前所有的信息我们都有对应的解释,最重要的。可能我们平常关心啊,最多的就是最前面的文件类型和权限,而且我们要看清楚后边的。文件的数组和属组,这样的话,对应的权限我们就知道到底怎么样去分配了。这里大家还要注意一点,就是后边的这一个链接数的这个个数啊,如果是文件的话。当前指的就是硬链接的个数,如果要是文件夹的话呢,这个指什么呢?我们不是说硬链接它不能指向一个文件夹吗?只能指向文件吗?因为它是ino的嘛,指向ino的,哎,那所以如果是文件夹的话,这里的所谓的链接数指的就是它下边的子文件夹的个数。
20:11
好,那这里我们也可以来验证一下,我们可以回退到root的。主目录下边,然后来看一下,我们可以看到当前公共这个目录,这个子目录下边有东西吗?诶,我们可以直接进去看一眼啊,直接LS就可以了。公共我们可以看到里边什么东西都没有,它是空的,那为什么它会有两个链接数呢?哎,因为我们知道,如果你要是LS后边加一个杠A的话。那应该要有两个子目录,本质上它也是目录,只不过呢,这个点表示的是当前目录自身点,点表示的是它的父目录,它相当于也是有一个子目录在这里,所以什么东西都没有的时候,默认你你直接新建一个啊,Make DR新建一个文件夹,它这里的链接数就是二。
21:05
这就是关于文件属性和权限的基本的一些介绍。
我来说两句