00:00
好,那我们接下来学习一个新的技术啊,这个技术呢叫PMPM。那目前来讲呢,我们在很多服务中都需要有安全的一些验证需求。大家都知道T服务登录需要验证用户名密码,SSHSH登录需要用户名密码,事实上还有很多其他服务也有这种验证的需要啊,当然不仅仅有验证,还有一些。和安全控制相关的一些功能,大家的需求是相似的。那比方说有的时候我们希望能够控制用户登录的时间啊,例如在上班时间能登录,下班时间不让登录啊,另外我想控制一下用户在系统中他使用的资源。
01:15
比方说你最多打开的进程有多少,最多打开的文件有多少,最多使用的内存有多少,这个东西我们很多服务可能都有这种需求。那既然大家都有一些公共的需求,我们都知道公共的需求,那我们应该怎么办?是不是就是我们专门把这些公共的需求拿出来?开发一些公共的功能,为大家的各种服务所共用就行了。对吧,没有必要说你自己的软件,我需要这个功能自己开发一套啊,我那个软件也需要了自己开发一套,那不就是重复造轮子了嘛,对吧啊。所以。那别人开发出的功能,那你要用的话,那存在一个接口问题。
02:02
你怎么去利用人家开发的功能去通过这个接口来访问,那么如果每个功能模块都是由不同的开发者,事实上确实是由不同的开发者开发出来的,他们的开发接口我们叫API,由于开发者不同,API接口就不同。所以就会导致如果这些功能有十个功能对外让别的用户要使用,比方说有100个用户,呃,100个应用都想使用这些十个公共功能,比方说验证功能,时间控制功能,什么资源访问控制功能都需要用,那么你就要按照这十个对应的功能模块对外发布的API接口来进行调用。那这样的话呢,显而易见是不方便的。所以有一家公司觉得很有必要给大家搭一个平台。
03:03
那么这个平台目标是针对两种人,一种是程序的开发者,应用程序的开发者,他们实现特定功能啊,特定的某个服务,比方说China的服务,SSH服务啊,这个FTP服务等等吧,这些服务呢,他们都有一些安全的需求,那都要做验证啊,都要做资源控制啊等等。那么另一方面为提供这种安全服务的开发者啊,来提供一个接口。他面对两方,那么我中间搭一个平台,把这两种不同的开发者把它连在一起,放在一个平台架构上,大家互相能够方便的来互相进行调用。大家看这个图。这个平台的搭建者就是散公司啊,大名鼎鼎的散公司啊,啊,虽然这家公司已经没了啊,这家公司著名的一些技术非常现在仍然很多企业都在一直用Java比较流行是吧,啊Java。
04:21
啊,上公司开发出来的啊上公司后来被Oracle收购了。是吧,对上公司现在已经没了,这家公司确实技术上还是很厉害的,在九五年的时候实现了一个叫帕的技术,叫可验证的插件式的验证模块,那这个验证模块呢,它就搭建了一个这样的平台。这个平台面对两方,一方面就是应用程序的开发者,还有一个呢,是安全相关功能的开发者。他面对两方,注意这两个都是开发者啊,一个是应用程序的开发者,一个是安全功能的模块开发者。比方说举个例子,我们这边有一个应用程序叫t net,这个t net我们都知道是为了远程登录的是吧,那么它需要生成验证。
05:18
登录信息的控制,那么有些人就开发了和认证相关的一些功能,那通过和这个P相关的一个平台,让他们彼此之间能够互相调用。从某种角度来讲,这个平台就像淘宝网一样。大家想想,淘宝网是不是面对的是两个不同的人群,一个是我们普通的买家,一个是普通的卖家是吧是吧?哎然这个淘宝不是搭这个平台来抽取佣金嘛,对吧,当然上公司没有收收佣金啊。啊,那就是有两个,那这个有有点像淘宝网,那我们都知道,那普通商商家在淘宝网上注册以后,就可以把自己的商品啊照片啊什么的提交到这个淘宝网上标价格就可以卖了啊。
06:12
当然这个淘宝要收一些费用。但是你要是规模很小的话,估计也不收什么费,我在淘宝上曾经也卖过一些什么,忘了卖过,卖过二手的东西,什么多的书啊什么的卖过啊。哎,实际上我自己又是买家又是卖家,是这样,是你每个人既可以当买家也可以当卖家,是这样吧,啊啊,那所以他是面对双方的,那么这个帕呢,这个架构就是干这个活的,那么有一些应用程序,这是应用程序我们叫APP吧,啊,他们提需要一些和安全相关的一些功能,比方说认证啊,资源控制啊等等,那么有些人就是专门擅长于做这些功能的,那么开发了一些模块,它可以通过PA放在这个平台上,这些应用程序的开发者就可以调用它了,那调用的话呢,我们每用程序是不是就不需要再开发这些安全功能了,直接调用就可以了,当然有人说了,那我们现在是运维工程师,对吧。
07:17
那我们是运营工程师,这个他架构和我们有关系吗。那这个是应用程序的开发者,这个是安全模块的开发者,总之都是开发者,对吧?那我们又放哪啊,我们在这啊,我们在这啊,我们在这啊,我们是运维工程师在旁边站着呢,啊啊,在这呢,那我们虽然不会开发啊,这个呃,你让我去写写软件不会写,写程序不会写,哎,但是我会调用吗?我会配置啊,那我们这个系统管理员,也就是我们的运营工程师,他可以通过帕的配置来调用这些模块,比方说我们的应用程序。他这个模块是可以进行选择的啊,我们可以通过配置来影响我们应用程序说哎,这回调这个模块,下回咱们调这个模块,这是可以选的,这个事儿咱们可以说了算,听到吗?啊,它在调用的时候不是固定死的,是可以进行选择的。
08:15
啊,所以呢,从某种角度来讲,帕是面对三方,应该说啊,一个是应用程序的开发者,一个是模块的开发者,还有就是系统运维工程师,就是系统管理员啊,这是他的,所以呢,这三者从不同的角度来讲,都需要去使用这个帕,那么PM这个技术呢,它是由一个PM的这个包来提供的,咱们确实有一个包就叫P啊,就叫P。帕这样的一个包。好,那我们看一下这个P这个包啊。
09:03
哎,这个就是那个包帕那个包。包名就叫帕。好,我写到这吧,把它补充一下啊,包名这是啊啊。那我们把这个包来看一下,好,大家看这个是他的官方站点。那这个官方站点,我们可以打开看一下。它上面有一些文档,大家看有在线文档,有离线文档,离线文档你就可以下载在线文档,就是在线看嘛,你看在线文档有三个链接,聪明的同学应该知道这三个是给谁用的。
10:01
看见了吗?看见了吗?看明白了吗?是不是面对三方吗?啊,当然了,我们既然系统工程师还排在了最前面是吧?啊,我们的地位还算来不低啊,接着第二个是模块开发者,第三个呢,就是那个应用程序开发者,看到没有?所以呢,你如果你是不同的人群,你就看不同的文档,对于我们来讲,当然我们看的是第一个了,那我们不是开发者就看第一个就好了。那么这呢,就列出了好多模块,41个模块,当然这41个模块是官方的啊,那并不代表着只有41个也可以,只要遵守他的怕模块的标准,是不是也有一些组织或者个人也可以开发一些符合他要求的怕模块啊,也可以也可以,也可以用,也可以用,那官方这放了41个模块。他们的模块它的名称都是以P开头,后面跟了一个模块的名称,每个模块功能不一样啊,功能不一样,稍后呢,我们介绍的就是这些模块,挑一些模块来给大家做一下介绍啊好,那这个图相信大家现在就心里明白了,那套模块它的主要功能就是实现了安全控制。
11:24
那么这些模块最终实际上都是一些so文件提供的,我们看到官方站点上这个地方显示了有41个模块,41个模块。这41个这些模块实际上都随着我们安装帕应该都装上了,大家看这对应的就是这些模块的文件路径,看这是read me帮助再往上,诶这就是模块,看到没。啊,这些模块看看有多少个呢。
12:04
就这个路径,这就是这个模块啊,当然有些模块软链接啊。五六个,有一些是软链接。软连接。有些模块实际上是同一个模块啊。这些模块。这是真正我们可用的模块。当然这时候呢,有一个问题,就是我怎么知道我的应用程序是基于这种模块的应用程序。刚才我们提到了一个问题啊,应用程序必须要接入到这个P平台上之后,它才支持P。并不是所有程序都支持palm的吧?哎,就是说不是所有人都去淘宝买东西吧。对不对,哎,比方说现在大家很多人都去拼多多了,是吧?啊,原来原来原来身边人很多都去淘宝,现在真的是很多人去拼多多了。
13:06
不知道你们有没有这个感觉,拼多多这个现在很很强啊,互联网上有一句话啊,就是得屌丝者得天下是吧,大家都是图便宜嘛是吧,拼多多还是好像价格是便宜的,不过质量不知道咋样。好,那这个P呢,我们的应用程序支不支持,那就看判断了,我们可以看一下是否调用了这个lab PU库,如果调这个PU库了,它就支持,比方说我们现在用的SSH,这个SSH这个软件,这是个主程序,这个主程序它是否调用了这个库呢?我们用lab l DD命令可以看它是调用了哪些库,其中就包括P库啊,当然我们这个看的话太费劲,我们过滤一下grape p看,诶有叫lab p so,看到没有lab p so啊这个。
14:27
你看它不就来自于帕模块这个包吗?啊,就是你只要是基于这个调用lab帕这个so,那说明你就是基于PM这个接口开发的应用程序,你是支持PM的啊,当然是不是别的应用程序也支持,那就不好说了。啊,比方说我随便再再找个别的应用程序啊,啊,我这也有HTTP应用程序,这个应用程序它支持不支持模块大模块呢,那我得瞅一瞅,看看它支持不支持啊,啊看这里面有没有,你看它就不支持,也就是说这个软件它没有调用P,它就不支持P,明白了吧,那不支持P,所以支持不支持,不是所有软件啊,不是所有软件,有的软件支持,有的软件不支持啊,这个软件就不支持。
15:27
啊,这就是不支持不支持啊,好,当然之所以不支持就是因为人家这个软件功能强大啊,人家这个软件功能很强,所以人家支持的自己都搞定了,用不着非得调你的啊,就像大公司一样,大公司人家是不是这个功能丰富啊,待遇丰厚,什么都有。
16:07
啊,尤其你像这个有些国有企业,国有企业恨不得是一个独立的小小小国小小城市一样啊,这个各各方面待遇都有,有医院,有幼儿,这个幼儿幼儿园学校是不是那大企业好像什么都有,就跟一个城市一样是吧,哎,自己独立一套。啊,就这意思啊,那因为这个HTTP是比较大,所以人家自己就搞定了,用不着调你的P模块,那小软件的话,咱们有必要吧,也没那个能力,对不对,诶所以就调用别人开发的软件模块就可以了,所以这个大家理解啊,所这不是说一个必须的东西,那么P模块是在这,这是对应的so文件,但是呢,你作为应用程序来讲,你要调用P模块,诶那么我们需要去在应用程序里面标注说我调用了哪个怕模块,因为怕模块很多嘛,这里面这么多模块,这么多模块都是,那调用哪个呢?啊,那我们只能用刚才说的这个命令来判断,说你确实支持P,但是你支持P调用了哪个帕模块呢?这帕模块这么多呢,四五十个模块,你到底调哪个呢?诶那这个呢,就由咱们的配准文件说了算了,在咱们系统中有这样的一个文件夹。
17:28
在这个文件夹里面就存放了每一个支持怕模块的应用程序对应的配置文件,那么这里面大家看一个文件,实际上就是一个支持怕模块的应用程序,同名的一般是同名应用程序的一个文件。大家看我们刚刚学过速度,速度这个应用程序,它就支持P啊,当然这个呢,我们也可以来确认一下啊,你看LDD它这里面有没有帕看看。
18:06
有没有啊,还真没看到,真没看到。那这里面它没有掉,那当然他不一定是这个命令掉啊,有可能是别的命令掉了,不一定是这个程序掉了,你看这有一个文件,这个文件呢啊说的就是针对这个to这个程序来支持的啊,啊看看Su有没有Su有Su这这有Su,它这还不是Su吗?啊有一般来讲是。Su Su do SD,这里面实际上都是搞表示,我们这个用程序一般都是和这个程序同名的来示,它支持调用啊,那么这个调用呢,它怎么调用的,因为我们这个模块呢,非常多啊,怕模块对应的内容非常多,那非常多的话呢,我调的哪个,那就由这个配置文件来写了,这是我们程序呃,系统管理员来负责维护的。
19:12
所以这个文件很关键,这个文件夹里面存放的就是每一个应用程序如何来调用那些怕模块的一个配置文件,在这个文件格式我们稍后会给大家重点来讲啊。那么他的工作逻辑是这样的,就是当一个用户去执行一个用服务的时候,或者执行一个程序的时候,他会去寻找,一般来讲会寻找和他同名的。配置文件,这个配置文件就是在 ETCp.D里面和它同名,比方说我去访问SSHD,那么这时候它就会通过 ETCp.D里的SSHD来看里面到底掉哪个怕模块,而这帕模块几十个到底掉哪个,那它就会以起作用了。
20:05
这就是他背后的逻辑啊,你像我们执行partd,那partd呢,你看这个应用程序里面有没有一个partd同名的一个配置文件,看了就有,都是同名的啊同名的啊啊一般来讲呢,这个同名对应的就是它和它对应同名的应用程序的帕的配置,这里面就调用了我们各种模块,当然比方说我们随便找一个啊啊就速度吧,啊速度里面,你看这里面它就是全是包含没有写包含具体哪一个,那这有个include包含包含这个文件,那看这个文件里面怎么写的啊,大家看这就是那个模块,看到没有,是不是那些O文件呀,哎,这不就调用了吗?好,这是它大体上的一个功能啊。那。还有一个文件夹,还有文件夹,这个文件夹叫ETC的security,这个文件夹ETC的security呢,这个是一个针对某个特殊模块提供的对应的P的配置文件,那么这个文件夹每一个文件它和咱们的P相关啊,P是放在了LAB64这个目录下,大家看这里面有这么多模块,那么有些模块功能非常丰富。
21:37
丰富到我们要想使用它,就必须要准备一个专门的配置文件。才能写清楚如何调用这个模块。啊,当然有些模块功能比较简单,那就没有必要再准备一个单独的配置文件了,那么这些功能丰富的模块对应的专有的配置文件就放在这个目录下。
22:04
啊,举个例子,例如我们这儿。有这样的一个功能丰富的time模块,这个time模块呢,在哪呢?在这大家看这有。这个模块呢,它叫time,因为它的功能太多了,所以我们不准备一个配置文件的话,没法没法表示,那怎么办呢?就准备一个专门的配置文件来对应表示,如何来配置使用此模块。当然我们都知道这个模块里面的有些功能没有那么复杂,所以就没有准备对应的配置文件。所以大家可以看到这个目录下这些文件呢,比这个判模块的文件要少很多,那原因就是因为有的文件,有的模块功能没那么强,就没有必要准备一个配置文件了啊,有的功能比较丰富,他就准备了一个配置文件。是这个意思。好,所以呢,实际上我们在配置一个模块的时候,那现在大家无形中应该知道有两个文件是我们可以配的,哪个呢?第一,如果这个模块比较复杂,ETC security下面有可能我们要改一些东西。
23:14
第二就是我们每个应用程序,它有对应的一个配置文件,放在这个ETC点地下就在这。对应的在这改,所以我们作为工程师来讲,运维工程师来讲,我们改的就两个地方,一个是 TCp.D一个是ETC。啊,就这两个地方,因为这个模块不是我们改的,那是人家开发出来的二进制的,那我们用就行了,明白吧,这像那个程序一样,你用就行了啊,是个功能啊,这就是我们三个文件夹,希望大家明白他们各自的功能。好,那P的工作逻辑呢?我们给大家说清楚了,那接着我们重点来看什么呢?看ETC的p.D的应用程序的这个文件的格式,这个文件很关键,就是这个 ETCp.D就这个目录。
24:08
这个每个文件对应的就是一个应用程序,而这个应用程序它里面标识了如何调用模块。但。那比方说我们打开SD来看一下它是怎么写的,大家看这里面它每一个。每一个内容分成了竖的很整齐的列,井号开头注释不用管了。这个列呢,我们发现它有几列呢?这是一列,两列三列,当然个别的是不是有四列五列,看了吗?空格隔开。那实际上我们可以把它分成四部分,这是第一部分,第一列,第二列,第三列和往后的就全算第四列了,听了吧,往后的全算第四列,这这第四列总共四列是干嘛的呢?哎,我们来解释一下。
25:06
呃,有的时候呢,我们一般来讲呢,都是每个应用程序有自己的这个帕的调用,那事实上我们也可以写一个总配置文件,把所有应用程序的配置都放在一个文件里,但是这种方法基本上不用,所以这种方法就不用看了,那实上这个文件也不存在。啊,那么 ETCpu.com的意思是说把所有应用程序的控制都放在一个文件里,一般我们不会这么干,都是把每个应用程序的配置独立的放在一个p.D里面,所以这个文件里面只放我这个应用程序的,不放别人的,所以我们将来想改的话,只影响改自己就行了,不影响别人啊,你要全放在一起的话呢,这个就太乱了,所以我们不用这种方式啊,这种格式我们基本上不用啊此格式不用啊此格式。啊,一般不使用啊,我们用的是下面这种格式。
26:01
那这种格式它是四列,第一列呢是type。Type指的就是你这个模块到底在什么地方生效,那么我们这个type类型呢?支持四种type,分别是o count session。还有一项。啊,这这中间还有个pass四项,当然不不是说每个文件每个程序里面都有这四项啊,你看我随便再找一个Su,呃,这个Su里面你看它只有O和那个account他也有四项,那再找一个没有的。啊,随便再找找,他不一定都都有这四项啊spring看这里面有啊,你看它这个简单只有O。知道吧,这四项有的是全有的,有的是都没有,不一定有的,那么这四项什么意思?我们来解释一下啊,这个叫tap tap呢分成四项。O表示的是我后面跟着这个模块,是负责实名验证授授权相关的。
27:04
啊,就是比方说我这有一个O,这个O呢,表示的是后面这个模块是用来管理授权的验证的,验证身份的啊,说白了就是验明正身的是吧?哎,验明你是张三李四或者是不是符合登录验证的啊这个是奥。那么饿之后的你验明身份了,那接着count count是负责干嘛的呢?Count是负责验证你是不是合法有效账号的,虽然你验明了身份,但是你不是一个合法用户。什么叫不是合法用户呢?比方说你的有效期过了啊,咱们账号呢,可以设有效期,虽然你账号名密码是没问题的啊,你的验证通过了,但是你的账户有效期不对,听懂了吧,是负责干这个账户的有效验证的。
28:03
那接着还有再往下是password password呢是负责更改用户口令的规则的,就是你该口令的话,你不能太简单,相信大家应该尝试过拿普通用户改自己的口令。普通用户用password命令改口令的时候,大家注意到过没有,改口令好像不能太简单吧,是不是不能太短?那不像王账号随便设就随便拿入的账号去给普通用户账号设的时候,设个123456都行,那普通用户要自己设自己的口令是必须要符合一定的复杂性。啊,这就是password这个功能啊,它是来实现密码更改的安全策略的,最后还有一个session session呢表示的是用户登录也成功验证了,账号也有效了,密码策略符合要求了,那么它持续连接,那么持续连接呢,它一直在会话期间,那会话期间并不是就不控制了,比方说会话期间你最多打开多少个进程啊。
29:06
你最多使用多大内存呢?最多登录多少次啊,这这这这不是不是我们要控制啊,哎,那么这个session是干这个活的。总之就是不同的阶段来控制用户的,而分成了四个阶段。四个阶段。啊,当然有的时候我们可能会看到一个减号,后面跟上什么某一个呃,某一个这个这个类模块类型啊,有的时候会看到减号,你看这里面有没有减号啊。啊,这里面没有减号,那我找一个有减号的。这个也没有减号啊,找一个有减号的。那这有减号,大家看这是不是有个减号,减号后面跟了一个type类型,那这个减号什么意思呢?减号表示的就是后面这个模块,如果是缺失的,就比方说你的系统没装,没装的话他也不不报错。
30:09
那就是装也行,不装也行,就是表示类似说相对不重要,那装上那我就用不装就不用了,明白了吧,是这个意思,减号是这个意思啊。好,这就是。第一列它的功能。那么第二列,第二列是干嘛的呢?第二列表示控制,第一列是态嘛,第二列是控制。那我们都知道,如果type类型是O,是负责验证的,但是验证的话并不代表着一次验证就通过呀,比方说这个模块负责验证你的某个环境是否合符合要求,而这个模块是负责验证另外一个功能的,而这个也是负责验证不同的功能的,这都是验证,这三个验证决定了你是不是合法账号啊,是不是一个通过验证的一个账,一个一个一个用户。
31:06
那么到底这三个验证。到底是都通过呢,还是说有一个通过就行呢?啊,这就是由控制来决定的这一项。那这个控制呢,就像你去将来上班面试的时候。那比方说我们到一家公司去面试的话,一般不是一轮就面试完的,是不是好几轮面试,一般说HR问一问你,然后呢,人力资源这边过了以后,可能技术上问问你,技术上聊,聊完了以后呢,可能会再找老板再跟你聊一聊,来面试好几人,有的是不同的部门来分别面试你,那么这个面试的话呢,到这里是一票。通过制啊,还是一票否定制啊,那一般的公司可能就一票否决了是吧?啊,当然也个别有些机构比较哎,就看中你了,就想要你别的否定不不好使,比方说你长得又帅又漂亮对吧,人家看中你了,就把你招过来对吧,所以呢,这个地方这个就由这个关键字决定了,那这个关键字呢,有这几项,咱们来看一下啊,到底什么意思呢?这个叫铝块一票否决,就是如果发现有一个模块不满足要求,你看这个就require吗?这个模块不满足要求哈,一票否决,否决了那就是验证就失败了啊,虽然说别人可能觉得想觉得挺好,但是他否定了,那就不行。
32:42
啊,这叫。但是1REQUIRE呢,他有一个特点,就是虽然他虽然否定了你,虽然总的结果是失败了,但是他不会立即告诉你失败,而是等着同一type类型所有模块全部执行完毕以后,一块再将失败结果返回给用户啊,再将失败用最终失败的结果返回给用户。
33:10
啥意思呢?那就是说我们这有三个模块检查,虽然他这已经失败了,但是他要继续检查,继续检查,最终把结果才还给你。比方说你去面试的时候,这个到了面试的地方,结果人力资源那一看,你这个条件不如满足要求啊,但是考虑到大夏天的,满头大汗的跑过来坐了两个小时车啊,为了给你心理安慰,给你安排了一个技术面试,跟你聊一聊,实际上人家那边已经做了决定,是不要你了啊,安慰一下,安慰一下啊。啊,这就是这个所谓的。记下。啊,当然也可能会柳暗花明啊,比方说我们这边有一个subs,如果这个subs就是一票通过。
34:06
什么意思呢?就是说如果这个模块检查通过了,好了,前面否定的我也不行,我就要我就喜欢对吧?啊,虽然说人力资源发现你的学历不高,给你安排了一个后续的技术面试,发现你技术真好,虽然学历是呃大专,不符合公司的要求,但是考虑到你的技术真的是很强,所以技术人员决定破格录用,那subs,那这样的话你通过了,那这个require的话呢,也可以放行你啊,这就是subant这个意思啊,就这个,你看看这了吗?Subant就是如果这个失败了,没关系,接着往下走,如果发现诶真的这个条件满足了,他还可以允许你。还可以允许你成功。啊,这个优先级比这个repair还要高,这个比例还要高,他是一票通过制啊,比方说老板去面试你的时候发现,哎,你各方面条件不错,虽然说有些在别人眼里头是硬伤,但是他更欣赏你的优优势,决定破格录用你,对吧?
35:12
哎,那就是subs这个意思。好,这个就是还有就是这个这个单词啊,这个呢是一票否决,不过这个一票否决它比刚才这个require的它有个区别在哪呢。看到了吗?他也是一票否决,不过呢,他的一票否决说的是什么意思呢?就是。必须成功才行,但是一旦失败,他马上会告诉你,失败,你回去吧,你不用再接着往下走了。那就是只要到这失败了,你就失败了,就不会再往下给你机会了。啊,当然我这儿没有啊,我这儿没有,哎,这有一个这一个。那这个呢,就表示的是这个模块一旦失败了,他就不会再往下走了,听懂吧,这就告诉你结果了,你就回去吧,结束了啊结束了。
36:04
就这意思,所以总之啊,它就是一种控制流程的一个关键字。那么另外呢,还有一个叫什么optional optional就是可选的呗,可选呢就是它的结果不影响你的最终结果。可选的。你像我之前面试,当时我们做电商网站招了不少工程师,当时我去招一个前端,招前端的话,我也不懂前端啊,我也不是前端工程师啊,我就找了一个对前端比较熟悉的一个技术人员陪着我去面试,他负责问那个人的技术,我负责聊聊他的一些其他的项目经验之类的啊,当然呃,我带过的这个工程师,他他会给我一些借鉴的意见啊,觉得这个人怎么样是吧,如果觉得好,呃,他就会表达说这个不错,推荐我说要用他,当然决定权是由我说了算的,对吧,他只是给我建议嘛,他没有决定权,就是optional,就这意思。
37:01
Optional。好,那么include呢,当然就是包含别的文件了,就是说我们这个别的文件里面也有这些所谓的模块,那你是不是一块调用就行了,就相当于函数模块调用一样啊,那这就是他们之间的逻辑关系啊。那么第三列呢,就是这个模块名了,第三列就是你调的这个模块了,第三列调的这个模块,这个模块呢,可以是绝对路径,也可以是相对路径,一般来讲都是相对路径,你看这就是相对路径,那这个相对路径相对的是哪呢?就是我们刚才给大家说的那个LAB64啊Qu就是这个目录都是在这,你不用写路径他也知道。但是如果你的模块没有放在这个路径下,那你就得写绝对绝对路径了啊,自己写一个路径告诉他在哪啊,这是绝对路径。这里面注要注意啊,你看这个模块都是绿色的,为什么是绿色的,因为这些模块说是模块,实际上它就是个程序,听懂了吗?实际上它就是个程序,但大家想程序程序是不是支持参数啊,是不是程序执行的时候后面允许加参数啊,诶这后面不就是它的参数,明白了吧?啊这就是我们这个文件的四部分四列,当然有些命令它没参数啊好,这就是咱们给大家介绍的帕的。
38:27
配置基本格式要求好,那么了解了这个格式要求以后呢,我们现在就可以来看使用这些PM了啊,使用那P呢啊,这些参数的写法有一些,当然这些参帕参数的写法啊,这个不同的参数,呃,不同的这个这个模块它带的参数不一样的,所以这个没有通用意义啊,比方说有的支持bug,有的支持no warning,有的支持这个,有的支持这个,这个就不一定了,有的不支持啊,所以这块呢,它不通用,这只是举个例子,所以这个意义不大啊,所以大家了解一下就行,比方说debug的话,有些模块它支持debug,这个参数就表示我要写到日志里面啊,但是不是所有的模块都支持啊,所以这个参数呢,就不具有通用性了。
39:18
啊,那么呢,有一个要求就是PM呢,它是修改对应的配置文件,完了以后它会立即生效,而且它针对的是新登录的用户生效。那么如果这个用户正在登录的话,有一个终端开着,这个是不受影响的啊,你可以重新登录之后才能生效。啊,所以呢,我们这地方也不用重启机器啊,只要你重新登录一下就行了。当然他呢,如果弄不好。很可能把你的系统搞得你自己连不上去了,因为它涉及到一些控制,所以呢,在帕设的时候呢,建议保持一个。
40:07
持续打开的一个入的绘画,这样的话呢,万一配错了。那么你新开个终端进不来了,没关系,你只要这个旧的绘画在你是不是在他地方直接改就行了。啊,不至于造成自己连不上去了,因为P的话是控制的实现控制的。那刚才我们看到了官方的这个站点有帮助文档啊,有离线文档,咱们也可以把这个离线文档下载下来,你将来可以下载离线看,刚才我们看到这是官方的那个在线文档,那你也可以把那个文档下载下来,这有离线,离线文档就是这个oblineline,就离线文档,你看到没有离线文档呢?它这个版本现在呢,最新版是几点几是1.2版本,这是最新版,这个这是,呃,有两个,一个是压缩BZ的格式的,一个是GZ格式的。那压成BZ的应该压缩比应该更高一点,那下他吧。
41:07
好,你看这个文件我们可以下到桌面上。好,下完了还挺快,下完以后呢,我们可以把它解开。就这个把双击打开。那这个应该是个PDF格式的啊,那我们直接解开就好了,压缩吧。就是。这几个目录啊,这几个目录呢,应该是给不同的人用的啊,这你看我们说有三种人来使用啊,有的是开发者,有的是这个,呃,系统用运维工程师,所以他这个文档是为不同的人开发的,那他这个每个文件名称是不对不同的人开发的,我们应该用哪个呢?
42:18
到底哪个是针对开发者的命是吧,这个看看是不是这个啊,应该这不对,还真你看这叫叫application develop,那不是这个他被你忽悠了,应该是第三个,应该是我都打开第三个了,你看系统管理员嘛,这个他叫缩写成sa是吧,Sat啊,这是给系统工程师用的,这是我们用的,我们用这个文档啊,85页的文档啊。85页的文档,那这个文档里面就描述了每个模块的功能啊,每个模块啊,总共41个模块,好,那我们挑一些模块来给大家介绍一下啊,挑一些模块,这实际上你不不用去下载这个官方文档也行,因为我们本身就有这个帮助,你可以看一下啊,在刚才我们去安装帕的时候呢,你看它这里面有那个慢帮助,你看到没。
43:11
这个慢帮助实际上就是刚才提到的那些帮助领导,所以你可以直接慢巴就行,慢吧,比方说你要看咱们介绍一下第一个模块,第一个模块叫什么呢?叫这个这个share模块,Share模块,这个share模块呢,我们看一下官方这边有shares的这个模块,看这个模块叫shares模块,S模块呢,我们可以点它的这个地方,你可以点一下它就跳转到这个解释页面了,哎,他告诉你share模块是干嘛的,这有说明啊,是6.30,这里面有说明,这是它的模块名,这个模块干嘛的呢?他说了是允许,仅允许访问系统什么呢?说如果用户的she是列在了ETC shes里才能允许访问。
44:01
好,那这个模块呢,它没有什么选项,没什么参数了啊,很简单,它的写法呢,就是这个写法,就是在验证这个地方加上说一票否决,如果这个模块不满足要求,就验证失败,就这么简单,这叫帕shares,这是官方文档的帮助,那事实上你在慢帮助里面也能看到这个说明,那就是p shares,你看这里面是不是写的一模一样的。是不是,所以你不在网上看也行啊,你直接在这个地方看也可以啊。好,当然呢,现在我们就初步了解了这个模块的功能,那好了,我们现在看一下咱们的配置文件里面,这里面有大量的配置文件啊,每一个文件对应的就是一个服务。啊,咱们就以这个Su或者SH来说。那么这个小表示的是我们看看有没有用这个模块啊,这个叫shares模块,看看这个程序里面有没有用它。
45:09
呃,我们发现只有在vm tools里用vm tools属于VM的工具里面的,所以这个看来没人用它,没用它,那我们就自己来改一改配置文件,让他用一下。那怎么用呢?比方说Su吧,啊,我们用Su这个地方还有个Su-LSU-L那我们都知道是Su那个完全切换啊,那我就光改就好了,在这加上刚才说的那个。模块的配置,那么加上这一项。那咋用呢?慢帮助里面有慢8S,它的格式呢,照抄就行了,就这个格式。
46:05
复制一下。贴到咱们的配置文件里就完了。这就行了啊,当然你可以对齐一点啊,对齐一点好看啊,不对齐也行,对齐一点好看。好,那这样的话我写进去了,那么就意味着这个程序就调用这个模块了。啊,那么这个模块是一票否决。换句话说,这个模块如果验证不通过,它是登录不进去的啊,Su会失败的,那这个文件的功能刚才提到了,它的功能是什么呢。功能是不是就是检查你所谓的用户账号登录用的share类型,是不是在他那个文件里面啊,哪个文件呀,看官方说明,他说哪个文件是放这个你登录的shell的列表啊。就ETC shares吗?那看看这个ETC shares里面列的是哪些share呢?不就这些吗?大家看这里面的share。
47:04
那就意味着,如果用户账号登录的时候,你用的share类型在这里面列出来的好,那你就是。验证通过的是合法的,如果不在这里面的share,那就是非法的啊,当然比方说我们装一个,嗯,装一个CS sh shell吧,现在因为没有装啊,没有装,那所以我们装一个CS sh shell装一下咱们虽然平时工作中用的share比较多的就是大Sh share啊,那现在我装了一个CS sh share,装了c share以后呢,你看一下这个文件它变了没,大家发现没有,它自动就更新了,这个文件看见了吗?自动把用户就加进去了,把这个share就加进去了,那现在我们可以建一个账号,让他用这个特殊share,然后建一个比方说就叫T子账号吧,让他用这个CSCH这种share类型,建好以后,并且给他一个密码,好,这样的话呢,这个账号。
48:11
就创建好了,也有密码了,他用的SH。啊,用的share类型是CHSH,好,因为我们刚才修改了这个Su的配置,里面约定了说你用户账号要用Su切换的时候,就必须要通过这个模块的验证,而这个模块呢,就是检查你登录的时候,你这个账户用的线类型是不是这里面列出来的,如果是好久允许你登录好了,那按目前的状态来讲,我们去切换到这个T账号应该可以还是不可以。啊,现在可以不可以切。
49:04
把那窗户都给关了。把我拖到下面去了是吧。重连一下啊。你拖到下面去。好,那按照我们刚才给大家讲的这个逻辑呢,啊,com.D里面我们改了Su,这里面呢,加了一行,那这一行的这个模块功能就是检查用户账号登录的时候,他用的shell类型是不是在那个列表里列出的。
50:01
那目前来讲,在这个shares文件里面列出的是我们目前系统装安装好的share,而TS账号用的是CCHSH这里面也有,所以呢,这个账户呢,应该是符合要求的啊,当然我这个应该用Su切看可以好,那现在呢,我把它改了,改什么呢,我把这个地方。改成把shes里面的CSH给他删了。啊,这还有一个和他的这些啊,这个我留着也行,这个没关系。好,那我把它改了,注意改了以后呢,这个文件里面是不是就没有CSH了,没有CSH了,那你现在我再去登录,你看出问题了。刚才是不是不用输密码就可以切过去,现在上不去了,为什么?因为我们刚才那模块起作用了啊,这个模块起作用了,咱们可以看一下那个日志里面有没有明确提示。
51:03
好,大家看这里面有没有因为那个模块的原因导致我们登录出了问题呢。呃,15,这还没有记录。啊,这有看到了吧,你看打开test关掉了啊,不行不可以。那确实是有这个太账户的一个登录失败的信息的,不过他没有明确的写清楚是因为哪个模块造成的啊,写的不详细。好,那总之我们这个模块确实起作用了,它登不上来了,已经啊,注意这个地方输密码,我们都知道入账号切换用户是不需要输密码的,你际上输上密码也没有用,比方说我输上这个这个马哥U这个密码还是登不上去的,没有用,因为这个不是密码的问题,是因为怕模块它不符合要求,所以我们把这个模块呢,配置文件给它打开,然后这个地方给它允许了,允许了之后现在是不是它就可以了。
52:14
你看可以了吧,是不是这个模块就起作用了,那也就是说我去通过这个怕模块来检查你用的share类型是不是在那个文件列的,列的就允许不在里面列的,就不让你登,就这么简单啊。这就是这个模块的功能。好,那么第二个,第二个叫什么呢?叫这个模块,这个模块的功能是干嘛的呢?咱们可以看一下官方的说明。这个模块。慢一下。他说,允许root登录在指定的设备。
53:02
那说这个模块就是允许root登录,那登录哪,它可以登录在那些安全的TDTD不就是终端吗?那什么叫安全啊,那么就是在这个文件里列出的就是安全的,不在这里面列出的就是不安全的,那我们看这里面有谁呢?那这个文件不存在,那不存在,那这个文件在八上面默认不存在,那七上应该是有的,那我们来看,你看七上有。器上有啊,默认不存在这个文件,那这个文件里面列出的不就是各种登录终端吗?你看什么TTY1 T2 TY3之类的啊,但是这个模块我们现在虽然功能知道了,但是有没有程序用它呢?那我们就看了,那我们就搜索一下吧,在ETCP点点地下,那我们去过滤一下,看有没有程序用这个模块,我发现一个程序都没有,一个程序都没有。
54:04
那么在咱们的渗透S7的上面,同样的去搜一下七上应该是有的。大家看七上是有的,七上在remote这个文件里面写了一行,写了一行叫o required,我们说required是不是一票否决?是不是就意味着如果你远remote remote远程就是远程登录的时候,如果你不通过这个模块的验证,那你是登录不了的。啊。登录不了了。那么在八上面没有这一行,没有这一行,现在我们去安装一个服务,这个服务呢,我们前面用过的一个T的服务。把它装一下。那么T服务装好以后啊,这个T的服务。
55:09
好,T服务装好以后,它是可以启动启动远程登录功能的,那我们现在把这个t net服务的远程登录功能给它启动起来,那这样的话,我们现在远程可以通过。23这个T服务来远程登录啊,远程登录,那现在我们可以看一下Windows。八的上面我用root来远程登录10.0.0.8这个机器的ST服务好,我现在登录一下。登录的话呢,我们输入普通用户上曾经试过它是可以登的,那这回我用root来登啊,我们都知道root密码,如果你直接用root直接登,大家想是不是很可能被黑客截获你的密码,因为T是不安全的,所以我之前没有给大家演示root登啊,就暴露我的密码了。
56:06
啊,但是确实入也是可以登的,但是七上面就不行,你看我在七上同样去把这个服务装上,同样去装一下这个器上的这个服务。然后我们把服务也是启动起来,Turn Internet socket啊23端口就打开了,打开以后呢,你看我在八上面去远程连接tnet tnet7个机器,我用root登。我去拿入登录,登录的时候呢,我们观察一下它的日志,看这边有没有什么明确的提示啊好。我用root来登录,输入正确的密码,大家看是登不上去的,为什么登不上去呢?你看这有提示,是不是就是因为这个模块起作用了,你看这个模块说不让你登,为什么?因为你登录的终端用的是TDY1,而TDY1它不在我们那个安全的那个登录允许登录的那个PTY列表里面啊,就这个这个文件里面没有PTS1,所以又不让登。
57:26
而刚才我们说3S8为什么可以,因为SO8上它没有这个模块,没人调这个模块,所以就八上允许普通用户能登录,而允许root来登录,所以呢,我们也是想模拟一下,让S。八也能实现三七一样的功能,那怎么办呢?诶方法就是复制三度七的配置,我们也是在remote里面。在这个地方加上,你看器上的怎么加的啊,p.D的remote在这是不是有一个验证模块的调用。
58:08
好,把它贴到这个八的上面来。接过来这样的话呢,发的上面也调这个模块了啊,调这模块以后,那当然我们刚才说的那个文件也得生成啊,那我们这个文件它是要检查那个很长这样的一个文件,这个文件在八上面,我刚才默认是没有装的啊,默认没有装,默认没有装。没有装的话,你把这个文件要创建出来,因为他要检查的是这个文件啊,这个文件里面列出来的是允许的,没列出来就不允许登啊,所以我们现在呃,如果你不创建这个文件,这里面是相当于不存在,不存在的话呢,我们现在来试一试,看看有没有问题啊,我去跟踪一下这个日志,也是跟踪一下日志,跟踪下日志呢,我再去访问一下八,刚才呢,我们去t net s点点八的时候呢,入的是可以登的,那现在我这样写完以后看能不能还登登录。
59:15
他可以登,那说明我们现在还没有控制住,那我得把这文件建起来,比方说我们把这个文件建起来,那就touch一下,把这个文件建起来,建起来建个空文件,但是里面没有东西啊,没有东西,那我们再试一次。哎,这回不行了,因为什么有这个文件了,结果你登录的终端不在这个文件里面,所以他就不让登了,大家看你这不又写了一句话嘛,他说你登录的终端是PTVPTS2,但是这个文件不在那个文件里面列着,不在,所以就不让登,那现在我们是不是把这个PPS二写到这个文件里就可以了,哎,写到这个文件里,那这是我们把这个文件打开,写到这个文件里贴进去,这不就可以登了吗?那我们来试试啊,看能不能登,看上去了,你看我用的终端是不是PDSR没进去吧,哎,对,这就可以了,那但是话说回来,你登录的时候这个pds是不是随机分的,那你下次登说不定PDS3了,那下次再登PDS4了,对不对,所以呢,你就把它都加上啊,要不你这个有有时候就登不上去啊,登不上去啊,所以大家现在就用这种方式就允许。
60:35
呃,可以控制奋八上来控制root来登录了,当然七上呢,我们现在也知道七上,如果你希望奋七上啊,Root也能够通过T连接,那非常简单,一种方法把模块删掉,不让他用了,第二种方法呢,你就把那个登录的终端PPS一个一都给它加上文件里啊,当然加的话就比较不方便,在哪呢?因为这个文件你不知道他用哪个终端登录,那他终端登录的话呢,有可能用的是PDS1,有可能PTS2,那你就多加几个啊,比方说pts啊,因为我不确定他用哪个,所以我就多加几个PTS2 pds3,这是不是随机分的呀?啊,那我多加几个,那这样的话诶其也能允许root登录了,那我们来试一试,你看七上面现在root能不能登啊,七上0.0.7,你看我拿root也能登。
61:36
把root输密码那上去了吧,上去了嗯,啊,因为我登录的时候呢,登录所在的终端,这写着呢是PDS1是吧,Pds不是允许了吗?啊,你看这就可以。对吧?啊,但是如果说你连的人多了,超过了123个,我就不是加了四个嘛,那你在第五个就登上去了,那不在这个列表里面不让登了,明白了吧。
62:06
好,这是刚给大家讲的这样的一些功能啊好,这是刚才说的这个模块的功能,那接下来我们看第三个模块,第三个模块呢叫no loging模块,No loging模块呢,它的功能就是如果用户登录的时候这个文件存在,那么将导致普通用户无法登录,它的功能就这么简单。叫no logging这个模块,当然这个no logging模块我们看一下系统中有没有这个模块啊,有没有被调用的这个程序使用这个模块啊,GR一下看有没有用,诶发现有人用啊,哪个文件调用了呢?Logging logging是本地登录账号remote远程登录SLD这三个应用程序都调用它了,但是我们发现Su是不是没调用Su,我们这个系统中是不是有本地就是Su切换这个没有调用,没有调用的话,那是不是就意味着它只是控制了你直接登录不能登了,但是Su切还是可以切的。
63:11
啊,啥意思呢?就是我们建一个ETC的no logging这个文件,只要把这文件建起来,那么普通用户就不能登录了,就这么简单,比方说你现在想维护系统了,暂时想禁用普通用户登录,只有管理员才能登录,那方法非常简单,你只要把这个文件一建工讯部就登不上来了,那比方说我现在拿王账号来登录,那王账号登录的话呢,他应该登不上去了,那我们来试试是不是真的登不上去了,那我们跑到这来本地登录一下吧,或者S2远程登录也行,因为它这个地方,呃,S台日里面也调用它了,所以我们远用S2命令来登一下王账号,拿个呃,这个这个密连接的主机。密码你看登录失败,这个这个不是密码错了,是因为被怕模块验证给拒绝了,看到吗?哎,这就是因为普通用户被拒绝登录了,但是呢,虽然登录是不能登,但是我用Su切能切吗。
64:15
这个可以切,因为我们Su里面没调这个模块了,听了吧,那当然如如果我们在Su里面也调这个模块了,比方说我们把这个ICU打开,也把这个信息也写进去了,那这样的话,这个它属于这个account的这个位置写在这,那这时候呢,那你这账号切也切不过去了,你看王账号也切不过去了。啊,切过去了啊,因为这个文件的存在啊,存在了就普通用户就不能登了啊,当然你把这个文件删了,它就可以登了no log啊,事实上这个文件它还能起到一个提示作用,就你失败登录的时候,他为什么不让登录,这可以写一句话,比方说拒绝普通用户的登录,好我把这文件写好,写好以后你看一登它,这有一句话出来了。
65:04
啊,这是个提示语句啊,当然我把这个文件一删,它就能登录,你看现在Su是不是登录了问题。嗯,那这个是这个模块的功能,这模块可以起到这样的一些功能啊,啊,这是第三个模块,第四个模块很有意义,很有意义,这个模块是至关重要的模块,如果说前面的模块你都可以了解,但这个模块就必须要掌握,这个模块叫limit词模块,Limit词模块显而易见是限制对吧?那么限制是限制什么呢?诶,它限制的资源控制了用户打开的各种啊Linux硬件软件的一些资源,比方说能不能打开多少个文件呀,能运行多少个进程啊,能是用多大内存呢?都是它来控制的。啊,这个limit模块很重要,那么我要限制用户使用的资源多少有两种方法来限制,一种是巧limit的命令,那么有一个叫u limit命令,它是可以修改用户资源限制的u limit跟上一个。
66:17
A选项,它可以列出目前用户的资源限制多少,那这个可以看,比方说我现在是王账号,王账号它的资源限制是多少,我可以用这个杠一来看,你看杠A,这显示出来它可以目前使用的资源,比方说核心文件大小,数据段的大小。包括计划调度的优先级,包括文件的大小,当然这些都是不限制的,不限制咱们先暂时不看它,咱们挑几个看,你看这个,这是最大打开的文件个数10024个,也就是说我们最多只能打开10024个机,呃文件。
67:02
最多能打开10024个文件,然后呢,呃,这边每个。资源的使用它都有限制,比方说最多打开的用户进程数是三千三啊,3676个,这是它的限制,那这个这个限制就导致了我们这个用户啊,在使用资源的时候,他是有约束的啊,比方说打开的文件个数1000多个,对一般的人打开,一打开1000多个程序文件的话,还是可以接受,但是有的时候还真的不够用,比方说我们将来可能会做一些压力测试,压力测试呢,我们有的时候会并发打开很多个文件,可能会超过1000个,这时候他就会因为这个资源的限制导致无法进行下去了啊,比方说有个命令叫AB,这是我们后面讲的这个命令呢,可以实现并发打开很多文件啊,这个工具呢,我们需要安装一个软件包来实现,这个软件包叫tools。
68:05
这个软件包,这时候呢,我们就可以用AB来测了,然后AB,然后C呢,是并发打开多少个,比方说打开100个,这没问题,因为还不到1000个嘛,啊这个是1000个,最多打开多少个呢?最多打开2000个,就是同时打开100个,然后呢,总共打开2000个,哎,我们实现一个网站的并发策略,并发测试啊,当然我们这个六呢,它没有启动服务,我们把它启动一下啊,起来了,起来以后呢,我们来测一下,这边你看它是可以的,可以的,但如果我这太多了,比方说我写个什么呢?呃,一千二一千二是不是超过了1024的值了,这时候他要同时打开一千二个文件,它就不行了,你看这提示啊,看提示,看他说too many open是不是打开不了了,为什么打开不了了,就是因为我们刚才那个资源有限制啊limit杠。
69:05
N-A大家看这是不是1024吗?那你这个值不要调大不就行了吗?那调大怎么调呢?杠N这写了杠N后面跟一个更大的值,比方说102400,我再加俩零,这是不是就行了啊,你看我改了以后再来访问一下,你看这回一千二行不行,看不报错了吧,是不是可以了,哎,可以了啊,这就是资源的控制啊,但是呢,有一个缺点啊,什么缺点呢?就是U利这个命令啊,我刚才现在是改成了啊1200,呃,幺零后面加了两零,加了两个零,但是我退出来,我重新一登录。它的值还是原来的改过的值吗?看怎么样啊,是不是它又回来了,它又回来了,它存不住,所以这个意义不大啊,意义不大这临时修改,那么我们想永久保存,那就得改他的配置文件了,刚才提到了它实际上用的就是这个limitx limitx这个模块啊,咱们这个系统中有没有程序在用它呢?我们来看一下limit,然后星你看是不是程序都用到它了,都用到了这个有limit这个模块啊,都用到了啊,所以呢,这个模块是一个系统必备模块,相当于只要你登录啊,它都会用到这个模块,都会用到这个模块,那现在问题来了,这个模块的功能是限制用户使用的资源,那么我要把限制用户使用的资源给它写到具体的配置文件里,将来才能存得住啊,那我们刚才说过了。
70:48
配置文件有两个是属于P的配置文件,一个在这儿,还有一个在另外一个地方,还记得吗?在哪啊?是不是在这啊,在这个目录里面我们说了,有一些功能丰富的模块是有专有配置文件的,那么这个limit就是功能丰富的一个模块,它带有自己的专有配置文件,看到没?那所以我们想控制张三使用多少资源,李四使用多少资源,是不是直接改文件就行了,哎,那么这就是我们要接下来干的工作了,那我们就把这个文件打开limits.com。
71:26
啊,那这就是我们要改的文件,这个文件呢,它的格式这有说明,全都是说明,井号开头的全是说明啊,这里面告诉我们应该怎么写呢,这个文件的格式是四列,第列是域,域的话呢,可以是用户,也可以是组,它可以支持通配符星啊心是通币符,还可以摆分号,不过摆分号表示的是和组相关。啊,它是配合什么呢?最大登录次数的一个限制的。啊,那星的话,如果你光写星,就是所有用户呗,所有用户,那么tap呢,Tap指的是你限定这个资源使用的时候,到底是一个强约束还是一个这个警报级的约束,那么强约束呢,指的是hard。
72:14
Hard呢,就是你这个值设完了,你不能超了,你最多用多大,你不能超,只能少不能超,当然对应的就还有一个叫soft soft是软软的什么意思啊,软的就是那你限制一下,但是在一定条件下你能超啊,但是不能超的太多啊,就是稍微温和一点,温和一点啊,一个是强硬的不能超,一个是soft。好,另外呢,第三个就是你要限制哪些资源啊,比方说我们刚才曾经提到的文件打打开个数,你看这就有,这就是那个打开的文件个数叫nofare,就这个就是文件打开的个数,这还有最大打开的进程数,看到没有,最多登录次数,这都有,登录次数都有。
73:05
啊,这些资源的使用。啊,比方说最多限制核心文件的大小啊,就是内存中打开的资源,这个有多大,这是有限制的。好,那这是它的限制的。资源,然后第四个呢,就是值了,你限制多大。限制多大?好,那下面呢,就有例子啊,如果说对这个东西不知道咋写,那你看这有现成例子,你看这有例子啊,先先是所有人soft是软的号,零是那个零指。啊,那星hard rss1万是不是就是所有人使用的RS资源是1万对吧,而且是hard不能超RS是啥呢?这不就写嘛,RSS呢,实际上长度内存就是物理内存,就是虚拟内存,呃,就是物理内存啊,最多使用多大内内存,这是可以限制。
74:01
好比方说我们现在想约束这个这个资源使用的一个一个用户使用最多多少物理内存,那你看我们这个这个地方,我们拿一个普通用户来试一试啊,普通用户啊,当然这个也包括入子在内啊,实际上他约住的不仅仅是普通用户啊,Root在内也一样,那你看现在我们用DB命令,它将来可以使用很大的内存,你看我这个地方用if DV zero啊,我们这往DV闹里写,然后呢,BS一块,我一一下一个G,那这时候他就要求一下分配物理内存一个G啊,这时候呢,他一下子就可以申请一个G的内存。啊,一个G的内存。一个G的内存,当然它分配完了以后,他用释放啊,相当于啊,哎,当然这个内存不够了,它也可以调用swap。
75:02
那如果说我们这儿可以限制它的使用资源,这就可以限制它物理内存最大用多大不能超过这个值,默认的应该是都不限制的,还有就是这个是打开的文件个数,你看no啊,不是文件个数,而是进程个数,那你看这是组,At是表示组啊,就是限制student,这个组最多打开的文件进程个数是20个,这个是组名,这是打开的进程,这是最多登录次数是四个,这个横线表示的是soft hard都一样,设一样的值,我就都统一设了,我就不分开设了也可以好了,那明白了这个逻辑以后呢,我们就可以来测一下了啊,比方说我们就约定一下这个,呃,王账号,王账号呢,最多打开的进程数横线不论是软的硬的都一样,呃,打开的进程数POC就是进程数,打开的文件进程数最多几个呢?比方说最多五个,不能超过五个,好,那我就限制好了,就这么简单。
76:02
那这个时候呢,王账号就只能开五个进程啊,当然我现在有个问题,我怎么查王账号开了几个进程,这个怎么查?用什么命令能查到王帐号名下的进程数怎么查呀?这不讲过吗?王兆豪,哎,对了,那小号啊,对,哎宽宽p group-U王,这就是他打开的,他现在没有一个,没有一个,那现在我们用王账号登录一下啊,登录完了以后他肯定有进程,你看现在目前只有一个进程,好,现在我们刚才设了王账号最多五个,所以呢,我们就开五个,那再开五个怎么开呢?我们知道B是后台运行的,这不又开一个吗?啊,你看现在是不是看看俩了两个了吧,那我们再开一个,再开一个,但是。这是不是三了,再开一个是不是五个就不行了,应该那我们验证一下诶怎么开到这就不行了。
77:06
哎,那我们验证一下,它真的是达到五个了吗?是确实是五个了。不是一半。郝总,你想多了啊,真的是五个。他真的开了五个。到了五个再开不行了,明白了吗?现在五个确实控制住了吧,哎,控制住了。啊,这就是limit啊,那么这个一呢,这个资源的使用啊,将来生产中一定是要改的,因为默认值设的有点太少了,这个设的值太少了,尤其你看这个文件个数啊,打开的技能数啊太少了,所以工作中呢,一般来讲都要改这个选改这个参数了,就跟我们上次讲那个什么内核优化一样,它是有优化的一个参数设置的,那我这呢,有一个那个参考文档,可以将来作为你们生产中的一个建议的一个。
78:01
建议的参考值来设。啊,那个文档呢,传到咱们服务器上去了,在FDB服务器上,这边有一个费啊,这边有一个看外边就这个,这是可以作为将来生产中用的一个参考范例,因为它默认的设置值啊太太少了,所以你可以适当的把这个值啊,适当的在生产中调大一些,因为它默认值是不满足要求的,你的机器性能再好,它没有办法充分发挥出来,那这个是我。可以改的参考值,大家看改那些值呢?看这就把这些值调大,全给它调大,调大一些,哎,你要打开的技能数是不是很多,要适当调大一些啊,当然结合你的生产啊,这个只是个技,只是个范例,并不确保着一定满足你的生产需要,要看你的生产需要啊,这是一个参考范例啊,参考范例。
79:06
好,这是给大家讲的这个模块的使用。好了,这是这个模块用的还是比较多的啊,希望大家能够啊注意。啊,这边有有例子啊,打开的文件个数,打开的进程数,这都有限制,这有例子,这还有限制马哥同时登录的次数啊,你这个地方你写一个什么mask login,那他最多登陆几次两次啊,所以你看如果马哥已经登录过了,再登录就不行了,登录他就会报权限拒绝啊,就是最多登录次数。啊,当然这个测试的这个这个这个最多同时登录的次数,这个用的不多啊,大家知道你可以下来参考这个范例来自己自己测一下。
80:04
好。那最后呢,嗯,还有几个模块啊,有两个模块咱们来给大家说一下啊,这个叫PM success if,这个模块呢,是根据参考里的所有条件都满足才能返回,这个是乌邦tu里面的一个,呃,模块可能用到的乌邦tu里面它那个我不知道你们乌邦图里面安装没安装图形界面啊,可能没装,如果你安装图形界面,你会发现一个限制就是呃,Root不让直接通页面直接登录。哎,你图形界面不让入的,直接登,为什么不让登,就是因为在这个里面加了一个这样的一行。这有一个模块说如果不是root才可以成功登录,是root就不让登,所以你如果在乌邦tu里面安装了图形界面,你希望入的灯,那你就把这一行给它注释掉就行了,注射掉就不起作用,那就可以登录了。
81:05
啊,那就是因因为有这个模块起作用啊。这个你们如果安装图形的话,你可以试试啊,呃,那接下来呢,我们最后呢,说一个比较有用的一个模块啊,这个模块呃,这个模块呢,呃,它实现的功能就是让SSH实现双因子验证啊,这个好听一点叫双因子验证,实际上就是两次身份验证,两次身份验证意思是说我们要用户密码验证之后还不行,因为用户密码容易被别人偷,就是盗取的那个密码啊,那么我再配合一个密码才能登,比方说大家都知道手机上是不是有验证码。大家知道那个有些比较安全性较高的地方,它不仅要密码输进去,还要输一个什么手机验证码才能登啊,才能去做一些操作啊。
82:01
那这个实际上就类似的,不过呢,手机验证码这个东西还得涉及到一个发短信啊,那咱们这说实在你要申请发短信要收费的啊,啊,那我们这也没有发短信,那没没关系,我们谷歌公司提供了一个软件,这个软件可以帮我们通过SSH登录的时候,除了用户密码输进去最正确。还得在手机上得输入一个手机的那个变化的一个数字密钥。数字密钥。这个数字密钥大概什么样子呢?我这儿应该有截图啊,就这个样子。手机APP上的一个数字,这个数字呢,大概是一分钟一遍,一分钟一遍,你登录的时候,你必须要看这个数字,把这个数字输进去才能登,你输错了不让你登。哎,这个有点像银行的U盾吧,啊,大家用过那个中国银行啊,类似的一些银行嘛,它那个比方说你要大额转账,它有查那个数字,有个小UU盾那个东西啊,那个东西上面它数字一会变一会变。
83:07
QQ的那个安全中心是不是也是这个QQ安全中心,比如改个密码什么的,它那个QQ安全中心,它也有一个数字,就这个东西,哎,那这个呢,是谷歌公司研发的一个模块,这个模块呢,大家需要手机上下一个软件,需要下载一个软件啊,这个软件呢,我这。中。啊,这个软件叫什么呢?叫身份验证器,身份验证器,你们去应用市场搜一下身份验证器。就是谷歌的身份验证器。
84:08
是。
85:01
这个条形码好像不好使了,这种。啊,有一个身份验证器,我这个手机突然有点问题了,打不开了,哎,有没有同学找到的,有找到的哈,那我们来试试啊,因为我这个手机现在突然打不开了啊啊,打不开了没关系啊,有人配合一下也行,是这样的。
86:25
这个生命验证器呢,是官方谷歌它提供的一个这个功能,它可以让我们用户账号登录的时候呢,提供用户的验证啊,加上这个APP的验证码才能成功登录,否则呢,不让登啊,那么它的安装是依赖于这样的一个谷歌的验证码,这样的一个工作工这个工具包,光这个工具包装上以后呢,它实际上会提供一个怕模块,这个框模块呢,它会来实现你的SSH的登录控制,那你先把这个谷歌的验证这样的一个包装上,装上以后呢,它会自动的去生成一个碳模块。
87:09
然后同时我们需要修改这个SRD的这个文件,把这个谷歌的怕模块加进去来进行配置,不过这个过程呢,需要手工完成,是比较繁琐的,我们这有一个脚本,这个脚本可以帮你把所有的事都给你做好啊,这个本我也是放到网上了啊,在这。啊,在这应该是有一个脚本,看看放在这儿了吗?五哥的。啊,谷歌的。没,没有在这儿。
88:12
脚本放哪了?不在这儿。谷歌。哎,我和小宝竟然没在这儿,跑哪儿去了?搜一下啊,这。有一个谷歌的目录啊,这么忙。
89:03
放这儿了。不是这个,不是这个,不是这个。那这儿呢,这儿呢,这儿呢。就这个,哎,这是那个软件包啊,这个你们可以装一下,把这个是APK包P包直接给你装到手机上,它是个APP嘛,啊把这个脚本。坐下来,就在这儿。好,然后呢,这是个脚本啊,这个脚本呢,可以自动的把我们所有安装包啊,这些过程全用脚本实现,就省得你一个一个配了,我们把这个脚本先拖过来,我们看一下这个脚本它是怎么做的啊,然后大家看第一步先把一票原配好,不过我这已经有1P源了,我就不配了,把它注射掉了,然后呢,这两个都不配了,然后这个呢,是安装谷歌提供的一个验证模块的包,这个包装上以后啊,它就会自动的生成怕模块的配置文件,这个我们可以手工装一下,手工装一下啊,装完了以后我们就知道它是干嘛的了。
90:13
好,我把这个窗口关了吧,好,我把这个模块谷歌的这个软件包装一下,装完以后呢,我们看一下这里面提供了哪些功能啊,大家看这里面提供了一个程序,同时我们看到了吗?它是不是增加了一个帕模块,这个模块是关谷歌公司研发出来的这个模块呢,它能帮助我们实现双因子验证,不过这个双因子验证功能呢,你需要自己去做啊,我把它注释掉了,因为我装过了,那下面这些问题呢,都是在使用这个锅,使用这个工具的时候,它的一些提示信息,然后你运行这个谷歌这个工具的时候,他就会问你一些很多问题啊,这些问题,比方说问问你是不是要啊更新。
91:04
文件啊,是不是你要想去使用令牌等等等吧,一堆问题,那你就一路回答yes就可以了,然后呢,你这个模块装完以后,你要把它放到咱们的这个SD的文件里面,所以我们这通过set把这个谷歌的调用模块的语句放在这里面,这样的话SD就被改了,改了以后呢,就可以应用这个模块来实现双因子验证了。然后还需要在SD的配置文件里面把这一项啊,给它改成yes,改成yes以后呢,它就可以支持一个验证了,然后把S服务一重启就完了,所以这个脚本呢,它实际上功能就主要是起到了这样的一些东西啊呃,我呢,因为刚才这个软件包装上了,所以我们这个不用装了,当然再跑一遍也没关系,好那我就跑一下这个脚本,好跑一下这个脚本,哎,问你你看这个包已经装过了,就不用再装了啊,问你是否要启用基于时间的这个令令牌的功能呢?Y,那么你一入,诶接着大家看,这让你访问谷歌网站,这个谷歌网站会有一个二维码。
92:12
这个二维码,这个二维码呢,就是拿你的APP去刷刷他的二维码啊,那当然这个东西呢,要科学上网,因为这个是谷歌网站,所以你要科学上网啊,我先科学上一下网,哎,我这开着上着上着呢啊,那上着直接打开就好了。好打开了,打开以后呢,这时候这个要刷一下这个二维码,拿你的手机事先装好那个APP啊,不过这个APP需要你先下载到你的手机上,然后呢去刷。那我这个APP突然不好使了。你们那好使吗?验。
93:36
好,那我去试试啊,这有同学已经单发帮我刷了是吧?413106,哎,你们只能刷一个啊,那我就说一下这个单方说的这个413106,来我输一下不行啊,过期了啊,再来一个,呃,47470233,反正这已经过期了,这也过期了吧,你看这也过期了,再试一个370799,哎上去了,哎这就可以了,哎,这就可以了,注意这儿留了几个号,这个号是干嘛的呢?你把它留下来,这是你的事后的以后的救命毫毛啊,就是那个孙悟空的三根救命毫毛,因为什么呢?他这个验证是这样的,每次不仅你要输正确的用户密码,你还得手工的输入这个验证码,但是问题是验证码这个东西万一手机丢了嘞。
94:37
手机丢了,验证码输不了,你登不上去了,诶没关系,这有六个验证的,呃,这个备份的密码,这个密码你要记住了,下次万一手机丢了,你可以拿这个临时的密码来登录,不过这个密码用一次就少一个,这救命毫毛用一个就没了啊就这意思啊,敲歪看啊,那这就敲歪吧啊一路敲Y就行了,一路敲Y好这样的的话就可以了,然后呢,现在我们就可以登录了啊,你看现在我用SSH,我去登录我的那个八的机器,你看着这时候你看要抄验证码了啊,不抄验证码不行了,看到没有,那验证码给你们说一下吧,我的手机不行了,那你们说一下,看看刚才那验证码是几了啊,是993804是吧,993804,哎,你们那个手机装的那个软件,是我说的那个在在哪装的那个软件,是我是我说的那个那个地方吗?我下载那个给你们传传上去了啊,我这个这个就可以直接下啊,这个就不用去网上找。
95:38
这个可以下啊,这个可以下,哎,我现在登录成功了,看到没?哎,登录成功以后呢,他那个万一我的手机丢了,万一我的手机丢了,这个验证码登不上去了,那怎么办呢?刚才我们说了有有那个救命毫毛,那救命毫毛呢,我记住了,就有这个把它复制下来一贴,你可以用一下这个救人救命毫毛啊,再输入它正确的密码,诶大家看上去了,当是这个精命毫毛只能用一一次啊,用完了就没了,它这救命毫毛咋回事呢?实际上它的逻辑很简单,他在你的root加入里面,大家看是不是有一个这样的一个,呃,隐藏的文件,这个文件看到没有,这个文件里面记录了那个六个救命毫毛,不过已经少了一个了,被我用了一个,大家看这里面,你看这几个是不是都是我们这里面写的啊,被我用了一个,被我用了一个啊,总共是五个救命毫毛是吧?五个精命毫毛,当然那那你聪明的同学应该想到了,那我想这个精命毫毛再加几个。
96:38
能行不行啊,那加上呗,比方说我加个12345678,这是不就行了,这不就加了一个救命毫毛吗?你自可以续嘛,是吧?啊,那你看现在我加完了,加完以后呢,比方说我重新重新登录进来,万一我手机丢了没关系,12345678。哎,输入他的密码看上去了,看到没有,明白了吗?当然这个验证五六用完一次就丢了。
97:04
这样手机丢了也没事,明白了吧,哎,这样的话是不是安全一些啊啊,这就是咱们给他讲的双因子验证啊,安全是安全对吧,不错吧。那建议你们的这个个人网站,是不是可以搞一个这个个人网站,你们自己买,那服务器上面搞一个这个,别人密码丢了也没事,你查不知道验证码他登不上去,这很安全是吧?绝对安全,除非你手机也丢了,但是你别忘了留六根号码啊,你要手机丢了,万一哪天自己登不上去了,麻烦了,知道吧,留上救命毫毛,留上自己的救命毫毛啊,这个留上点,自己拿个小本抄下来是吧。啊,双因子验证啊,这个工作中也是比较实用的一个技术吧。
98:02
好了,这是给大家讲的这个功能啊功能呃,好,那么这块内容呢,咱们就介绍完了,还有一个时间同步,这也是非常重要的一个技术了啊,也是和安全呀等等相关的,咱们稍微休息会儿,待会儿再回来20吧啊。
我来说两句