00:07
那咱们已经给大家介绍了这个CCD的一些新特性,那在深度期往后的系统中,包括乌邦兔在内。嗯,现在普遍的采用了CND作为系统的第一个进程,那确实CND带来了一些非常好的一些特点,我们上次给大家做过介绍,包括它的并发启动,包括它的这个依赖性的自动解决。啊,另外呢,还提到了的。和服务之间的分离。把之前在老版本中的非独立服务由这个s select服务来监控管理这个超级守护进程,Select就取消了,取而代之的就是C。
01:05
曾地监管了以前抄袭首都进城干的活。他负责来激活那些啊,所谓的非独立服务。那所以我们发现这个森地呢。功能来讲呢,可以说把很多原来是由不同的系统,不同的组件来完成的工作,他一肩承担是吧,全由他来干,最终由他由他来承担了一切。所以这个CD呢,现在可以说也是刚刚诞生的时候,引起很多争议啊。那可以想象人家原来人家运行了几十年的软件,你来了以后把人家的工作给挤掉了啊,相当于淘汰了,所以很多社区的一些这个大佬们对csd也是非常的。
02:09
有争议。啊,当然,不管怎么样,现在已经成了一个主流的应用了。哎,乌邦兔也是这么用的。所以我们就接着继续掌握,继续学习就好了。那CND呢,它的管理思想和早期的系统确实有了比较大的变化啊,比方说他取消了所谓的零到六的七种模式。那翻过头来,咱们看一下之前讲的那个零到六的七种模式,他们之间。主要的区别在哪?比方说3454的话是保留状态,咱们就说三和五,包括还有二,那它们之间的区别主要在哪啊,那三和五当然一个带图形,一个不带图形,对吧?那另外呢,还有一点就是它可以制定不同的服务启动的情况啊,比方说三模式下,我可以某些服务启动,某些服务不启动,那五模式和三模式可以不一样。
03:18
实际上这些所谓的装啊,本质上的区别就是到底你有哪些服务启动,还是哪些服务不启动,就是服务状态的组合嘛。构建成了七种状态、七种级别。那事实上七种级别就够用吗?那万一我有更复杂的需求呢?所以在森特地提出以后,就不不搞什么这个这个零到六七种模式了。那么他们取消了这个零到六七种模式。啊,发明了一个新的概念,叫target。
04:00
那他为了翻译过牛目标大家为了照顾兼容老版本啊,他这个零到六这个名字还留着,不过呢,他们实际上仅仅对应于我们新版本里target的软链接。这个我们稍后呢,会给大家来展示,让你看一看,另外呢,在CD里面,他把所有的各种资源,包括以前大家熟悉的service服务啊,就是那些服务包括。所谓的刚才说的run level啊,咱们在这个新版里叫。那还有一些其他的资源啊,比方说挂载呀,包括这个所谓的这个计时器呀,啊,还有一些我们不一定直接去亲自操作的东西,比方说pass路径啊。那这些呢,通通。在CD里面都叫unit,叫单元了。啊,只不过它分成了不同的类别。
05:03
当然我们管的最多的还是service啊,包括还有这是管的最多的还有target。这是我们上次呢,执行一个这个命令,曾经看到过的,它支持的unit单元类型啊,其中我们用的最多的就是前三个。其他的资源系统自己维护就好。那无论是哪种单元,就是unit,他们统一的对应的有相关的文件,都是存放在相关的文件夹里面,其中有三个文件夹。一个文件夹,USR lab d。那这个文件夹的功能,如果从service这个角度来讲呢,非常像咱们以前的ETC的内的D。大家记得六版本ETC以内的D里面放的是不是就各种服务的启动脚本,那么你可以把这个文件夹跟这个相大概对应,有点相似,那事实上USR lab。
06:10
它对应的还有一个和他一样的目录,叫lab lab呢,实际上是它的软链接。那B是个软链接。啊。啊,所以实际上我们也可以这样来访问,在这也可以,在这里面有很多的service文件啊,有很多的service文件,当然这些service文件你可以把它想象成就是以前的启动脚本,如果格式是完全不一样的。在ubtu里面放的就是在这个目录下,Ubtu没有放在UR lab下,放在这个lab这个目录下。所以将来如果我们要自己写一些启动相关的service文件,就像我们之前上次给大家讲的一个自己写了一个启动脚本一样,那么我们应该放在这个目录下。
07:09
啊,当然你放在这也行,因为它本身在SS78这两个版本里面,这个目录和这两个目录是软连接的关系啊,所以你记这个目录就可以了。这是他的目录啊。另外还有两个文件夹。一个是。那这个目录呢,它是系统执行过程中生成的服务脚本。他的优先级比这个要高,还有一个是ETC center,那从功能上来讲,非常像咱们以前说的那个。ETCRC几点D里的那个S开头的那些软链接。他的优先级比上面还要高。啊,当然我们之前给大家讲的时候,我们一般不会去直接操作软链接,要写是不是也是写到这个目录下写一个脚本就好了啊,这些都是自动生成的,我们用拆啊等等命令生成啊,所以呢,我们一般来讲这两个目录我们不去操作它啊,都是在这个目录下去创建service文件,然后呢,这里面的文件让他自动生成就行了。
08:22
那刚才我们曾经看到,在这个LABCD目录下,我们有大量的service文件。每个service文件负责管理对应的这个服务的启动、关闭、重启等等他的一些行为。取消了早期六版本里面的ETC的D,淘汰了这个了,这些脚本不用了。啊,比方说咱们以前用的什么ad,这是一个启启动脚本啊,这是以前的写法启动脚本现在就叫ad service了,它叫a TD service,呃,换了一个文件名。
09:11
而且格式也完全不同了啊,你看这个格式他怎么写的,你看它的格式变成这个样子了。完全不同。那它的格式里面有三块,分别用中括号分成了三部分,三个语句块,那第一个语句块是所有的unit共有的。一个语块大家都有,刚才我们说过service只是其中unit的一种,那还有一些别的,比方说有socket呀等等啊,你像这里面还有socket,咱们可以找找socket。那还有烧的啊。当然service呢,肯定是和网络打交道的,所以它相对就少多了,而service代表着服务,服务不一定和网络打交道啊,比方说计划服务,At dad和网络有关系吗?
10:13
和网络有关系吗?那没不一定有关系,比方说我就是本机的一个什么定期执行,执行完任务说和网络没关系对不对,所以它没有什么搜的啊,但是有一些和搜有关啊,所以他这里面你像SSRD这个呢,是和监听端口有关,所以这里面就有对应的这个socket。啊。那不论是哪种资源,他们都有unit的这个部分,描述了这个资源它的一些信息,比方说这一个description描述。另外呢,这还有依赖关系,叫after,这个after说的就是到底它依赖于哪些其他的unit单元的资源,它依赖于c c log target依赖于这个service after是后的意思,后就是说我这个服务要想启动,应该是后于人家这些服务的。
11:15
那后于你,那就是是不是也就变相的告诉我们这些服务你先启动,我依赖于你对吧?哎。当然可以想象,那如果写个before,是不是就是我要先于你启动是不是,那这里面呢,这个unit单元里面。有很多的格式,那这个格式呢,我们在这有一个单元文件的介绍啊,你看这个井号开头的注释不用说了,大家都有知道,然后如果表示呃开启,你可以写各种值都表示开启,比方说写一写yes,写二写true。都一样,都表示启动开启,那关闭呢,就是表示你可以用零,Now of false都表示关闭啊,在这呢,我们看一下这里面有没有那个关闭啊开启的,你看这有no no的话,这个地方你写零写false也都可以。
12:16
啊,都可以的。好。那接下来咱们看这是unit,这是个通用选项,各种unit它都有,那接下来第二段,第二段呢,就是和你的资源类型有关了,你的资源类型是service,那你就是service,如果你的资源类型是C,那这个地方就是了。要具体描述你这个资源了。啊,你像咱们这个service呢。这里面写了就是它的环境配置文件的路径。环境配置文件的路径。那这是我们这个软件运行的时候,它有一些环境变量之类的,它要从这里面去仿,去获取,你看这有一个Dollar opts Dollar opts就是个变量,那变量的值从哪来,从这来。
13:08
啊,从这来,然后当我们启动这个ad服务的时候,它会运行哪个命令呢?就运行这个命令。啊,就这么简单。然后这有一些其他的控制,比方说是否忽略这个type信号,No是不忽略。啊。那这是service,那当然我这里面呢,还有一些其他的类型的介绍,那你看我们这个unit里面有描述,有after,有还有什么requires wants,还有其他的纸。刚才我们里面没有那么复杂,它比较简单,说过了就是依赖关系,那么还有个require require是依赖到其他的unit,那这个呢,它实际上也算是一种依赖。
14:00
那这种依赖是个强依赖。那强依赖就是我要依赖于某一个其他的资源,这个资源必须先启动,否则我是无法启动的。啊,就是必须先把它激活启动起来。才能启动。啊,你看咱们,呃,上次讲了一个服务的依赖关系啊,看一下这里面有没有这个。NFS这还没装,我装一下n FS server。NFS,那不叫serves。好,你看这个软件包装好以后,它就生成了很多的service啊service文件,其中呢,我们看有NFS的server这个service文件,这它生成的,那我把这个文件打开看一看它里面是怎么写的。
15:11
好,大家看这里面就有require,你看这个require里面,它写的是要求必须有网络,就是说你要启动现在必须要依赖于网络,这个require,这是require,还有一些其他的资源,当然还有一些是want,这个want是什么意思呢?妄词就是想,那想的话呢,并不代表着强制,就是它是一种弱依赖,弱依赖啊,就是说我希望你启动,如果你起不来,但也不影响是旺弱依赖。还有一个是冲突,那这个冲突是什么呢?大家看这个这个service里面就有一个冲突。它和cmail和ex SIM'service是冲突的,什么叫冲突呢?就是有你没我,有我没你,为什么呢?因为po fix和这个两个服务之间,它的功能是一样的,他们会绑定相同的端口号,TCP25端口啊,所以大家都打架了呀,你要都启动不就打架了吗?所以就写了一个冲突,也就是说我启动你就别启动了。
16:24
啊,你启动我就不启动了,就打架啊,冲突。啊,所以这个就是service文件的一些这个功能啊,这里面。啊,当然我们在这个,如果你要想详细了解这边,可以查看这个官方的一些帮助,这都可以看啊,另外呢,还有这个字段,Service,这个字段呢,它定义了一些更为复杂的信息,刚才我们曾经看到过什么环境文件,包括还有启动的时候运行哪个命令。那事实上还有一些其他类东西,比方说type type类型,那这个比较用的多的,比方simple啊啊啊这些,那个别有的时候呢,会用到什么notify,那这些呢,实际上我们参考这个这个官方提供的样本,比方说如果你将来要自己编写一个service的话,建议你可以不用自己从头写,因为你要自己写,你还不知道该选择什么合适的type类型。
17:25
那你就可以参考。通过R包安装生成的service文件,然后把它拿过来拷,拷过来拷到你编译安装的这个机器上,在它的基础之上改一改就行了啊,比方说你的启动路径它不一样啊,你就把这个地方路径改一改不就行了吗?你变异安装路径,你肯定和那个RP包安装路径不一样嘛,你把路径改一改,个别地方改一改就行,其他的不用重新写啊,重新写的话你也不知道怎么写。因为你终究不是这个软件的开发者,所以你选合适的type类型。
18:01
并不一定能选对,那包括还有这个是这个是开启这个。服务之前先要运行的程序,这是运行之后运行的,就是我开启了这个程序了之后,我要运行,那你像这个开启前干嘛呢?一般呢,就是做语法检查啊,你像NGX服务,NGX服务启动前,它应该有一个语法检查啊,这个就可以用来做语法检查,如果语法检查不通过,咱就别开启了啊,起也起不来。哎,它是有这样的一些功能的,这个地方我们可以看一眼啊,比方说我们装个NNGX来看一看它有没有这个功能,我装一个NGX,我们后面会作为一个重点章节来给大家讲,我们就在这先看看它的service文件。这一个文件好看,这有一个pre,你看这个pre呢,是删除了一些PID文件,又加了个pre,这就是那个语法检查。
19:15
啊,就是我在启动前,我先用NGS-T看看它的配置文件格式对不对,格式不对那那就别别启动了,也起不来了啊,那如果格式对了,我再执行后面的这个操作,理解了吧,他是做语法检查呀,处理一些这个环境的。这是free啊,那这个reload呢,说的就是相当于我们执行重启服务的时候。啊,这个重新启动服务,一般来讲呢,我们更建议。用reload reload的作用呢,这个我们前面讲过这个。信号管理,咱们讲过那个harp。那harb信号呢,实际上就是发送了一个重新加载配置文件的一个信号,那么咱们这呢,也是可以这么做的,大家看你看它本身是不是就是发了个harp信号。
20:08
这个har信号干嘛呢?就是相当于你执行re漏命令的时候,比方说你当你执行这个命令的时候,实际上他就是发了一个har信号。啊,就是当你执行re漏的时候,它触发了这个命令的执行。啊,这个面这个变量呢,代表着就是当前服务的这个主进程程序,嗯。啊,当你杀掉这个进程的时候,它实际上执行的是这个信号叫Q的信号,这个Q的信号代表的是几星号,还记得吗?那总共1234有好多吗?几星号你们还记得吗?完了15Q的吗?啊,15是这个,15是这个啊,就是他明确规定你去关掉这个程序的时候,他用的是cutt,而不是用的是这个十五一般是15啊,就是一般咱们用15,但人家这个没有用15用三。
21:12
啊,当然我们这个信号常用的就这几个啊,大家要熟悉一下。啊,这是啊这样的一些这个文件的类型,就配置文件里的格式啊。啊,还有一些其他的,比方说这个private type,如果是yes,它就会自动的在这个目录下生成一些临时文件夹。啊,把自己临时文件呢,放在里面去。啊,省得大家都放在timeb下容易打架,你看这样写的话,这还加UUID,我们都说UID很长,一般来讲不会冲突,对吧,不会冲突。啊,这是咱们给大家讲的这个service,还有第三段,第三段是install install,第三段就这个。第三段那这个东西语句。
22:04
来存放哪些内容呢?比方说别名啊,我们可以把一个服务给他起个别名,将来用这个别名也可以操作它。啊,不用非得用那个原来的命令啊,Require就是被哪些unit所依赖,One by是被哪些unit所依赖,不过一个是强依赖,一个是弱依赖。啊。那另外呢,它是在哪个target里去安装的啊,这里面有一个这个叫旺败。这个也是望字败呢,这个就是我刚才看到弱一来啊若依来。那若依赖它这里面用的比较多的就是这个market。就是当我们想启动这个服务的时候,那么。应该是进到wanted指定的这个target的时候,我就需要把这个服务启动起来,因为它是被这些unit所依赖的啊,就是。
23:05
Wanted by弱依赖啊,当然这个不是强制性的啊,Require by呢就是强制性,Also呢是安装本服务,还要安装一些其他相关服务,可能有依赖关系的其他相关服务要装上,那这个文件呢,大家了解格式参考。这个某些写好的案例文件啊,比方说将来你要去编译安装NGX,你编译安装NGX,你肯定将来要写一个service文件,怎么写,你不用自己发明创造,你就参考RP包安装生成的文件,在它的基础上稍微改一改,比方说你将来变异安装你NGX这个程序不在这个路径下,你把这个路径改一下不就行了吗?其他留下来就行。啊,所以呢啊,这个也不用完全自己从头写啊,就是这样的一个方式。
24:02
好,那另类的这个单元文件呢,大体上我们知道它的格式,那么具体我们用。什么方法来管理这些service服务呢?那么对应的命令就是这个像CCL这个命令,这个命令它可以管理咱们系统中的各种用例的资源,当然主要管理资源就是service,那么service在管理的时候,那这个命令它的用法是比较丰富的,CCTL这个命令功能非常强,你看tab键一下,它支持的子命令这么多。啊,当然我们最用的最多的。掌握几个就够了。那其中这个命令里面,后面跟子命令,我们对于用内的单元这种service文件来讲,用的最多的不就是我们传统的什么start呀,Stop呀,Restar呀,Status呀,这些呢,都跟我们以前的service那个命令实际上是类似的。
25:07
啊,所以我们这执行c star后面跟服务,就跟我们早期的service后面跟服务star是一样的效果啊,以前我们在六里面启动一个ad服务啊,那就用这个命令,现在无非就是换成了CCTL啊,换成了start ad啊点service,这个service还可以省略,因为它是默认值啊,你不用写它就是service。所以它两者之间是等价的。等价的。当然我们这个命令还有一个突出的优势,它和咱们刚才写的那个service,仔细观察的话,除了命令本身不一样,他把服务呢是放在了后面,他把服务放在后面,而以前的service这个命令是把服务放在了中间啊,比方说at TD后面跟start。
26:15
那这个放在中间,放在后面有啥好好处呢?哎,放在后面有好处是它可以写好几个,我可以再写一个,听了吗?我还可以再写一个,我可以写三个四个都可以,但是以前的命令你放在中间是不是就不支持了,你放在中间你能写好几个吗?不可以,对不对,只能一个一个写,那如果你要起把三个服务都重重新启动,你是不是得写三遍。现在我们有了CNCTL命令,这是不是一条命令就可搞定了?那所以他写在后面它有好处的啊,那你看我现在我一启动这三个都起来了,那如果都想重新启动,那就。知道吧啊,如果都想停了,那就是stop啊,这个相信大家很容易理解。
27:04
停了停了以后我还可以看他们的状态,我用status,你看它是不是都停了,看到没有三个全停了啊,在这儿可以看得很清楚,你看atb服务现在呢,是带着。对吧?哎,这个地方还有一项叫enable,这项的enable是什么意思?这一项的able表示开机的时候是否是启动的,虽然我现在把它停了,并不代表着下次开机它停,下次开机它仍然会自动起来的啊,包括这个也一样。这个周期性的计划任务,大家看它是不是开机也会自动启动。啊,不过目前被我关了,那同样的service n g n GA,这个不是NGS下次启动它不会启动的,它是比C的啊,但是这个东西我们怎么改它呢?非常简单啊,那就是enable enable就把它改成下次开机自动启动了,明白吧,就这么简单,那实际上你之所以ne它能变成下次开机自动启动,你看它这已经告诉我们怎么做的了,他怎么实现了,你发现了吗?你看他现在已经变成able了,但是他怎么实现的呢?这有明确的提示,你看他做了什么事,这是。
28:27
他如何做到一个服务自动启动啊。实际上没那么难,它就是创建一个软连接,在这个地方创建了软链接指向咱们的NGX的service文件了啊,你看这个软链接是不是生成了啊,我们打开它看看,你看这个地方。是不是软链接,你看这个时间09:28,刚刚创建的。那所以实际上在WINDOWS7以后的版本中,开机启动无非就是在这个目录下创建一个软链接,只要在这有软链接的,开机就是启动的,如果在这没有软链接的,就是开机不启动。
29:11
那当然,那理论上我把这个文件一删,是不是它就开机不启动了,对吧,比方说我们删了它,我把这个文件删了,删了以后你再看一下。我就看NGX就可以了,这两个我不看了,好大家看,诶好像还没变过来,发现了吗?为什么?因为没生效,我们删除软硬接,你得让它生效,怎么生效呢?诶执行一下这个命令叫load让它生效,你再看一下DC包了吧,啊C报了。啊,实际上既然这样,那我们干嘛非得用这个呃CCL这个这个呃enable呢,那我我要是想把它改成启用,那我手工创建个链接行不行,我把这个连接手工创建出来行不行。
30:14
我我手工创建,嗯,我不用那个刚才的命令啊,我不用那个,我不用这个命令,我自己手工创建,我针对他创建个软链接,创建完以后呢,哎,我去看一下。诶。看这是不是变成以内报了,刚才DC报嘞,现在变成以内报了,那实际上明白了吧,无非就是个人接实现的事嘛啊。所以他咱们的背后的工作逻辑就明白了啊,就这回事啊,所以呢,既然这样,那我们刚才也说了,你只要看这个目录,那这个目录呢,存放的就是开机自动启动的所有服务的列表,你看看这里面列出的就是所有开机运行启动服务列表。
31:04
这就是,那比方说at TD不就在这里面吗?那如果我把at TD这个文件删了,是不是它就将来开机不启动了,对吧?不就这回事吗?啊,当然我们其实知道逻辑,我们也不会去直接操作那个软链接啊,就是我们知道它的工作逻辑就行了啊,那一般来讲我们去设为开机启动,设机开机不启动,那一般来讲都是用命令来做的,还是用这个命令,比方说现在我又希望at TD这个服务开机不启动,那就变成disable at TD service,这就可以了。当你执行它,那大家应该聪明的想到,是不是它自动就把这个软链接给删了,对不对,那我们来看看是不是这个,你这不用说了,这不都显示了嘛,对不对,都已经告诉你了是吧?下了这个软链接了啊,你你确认一下是不是真的这样。你看没是不是真这样啊,它就是软连接来控制的。啊。
32:06
那在SENTENCES7以后的版本里面,这个D还有一个突出的变化是早期版本没有的。这个变化就是这个指令叫mask,这个指令前几个相信大家都明白啊,启动啊,停止啊,重启啊,查看状态啊。还有这个这个叫mask,这个mask是啥概概念呢?那说到这个mask这个单词大家应该经常见。这啥意思啊,咱们学子网掩码net mask还学过什么u mask,影响那个默认权限的mask对不对?那mask这个单词什么意思啊,学了半天了。遮挡,遮掩的意思吧,是不是?
33:02
那你不做总不做总结呀啊,忘了哈啊。啊,你这个这个忘了可以啊,就是重点知识不能忘啊,那你这个面试的那个小宝典,到时候时不时就翻一翻,翻一翻啊,面试前一定要把那个不能说这个这个熟记于心吧,至少能不能把这些东西大概都能说出来啊,最好背的熟一些,背的熟一些,嗯。你看上次输出的考试题,那都是面试题,也是上课强调的。啊,同学们有的答的也不一定多好。有的同学答的还可以,有些同学答的就不太好,挑重点啊,你要是能力一时基础不好,你就挑重点学,你不要全都学,没有没有那么大的精力。那mask呢,这个的功能就是正如这个单词所体现的,就是遮挡。
34:06
遮掩,那就是我们有的时候希望某个服务不要启动,结果呢,你把这个服务确实也停了,你看比方说这有一个叫PA fix的服务,那。结果有人装了一个这个服务服务。这两个服务实际上是打架的啊,刚才我们看到那个文件里面它是有提示的啊,这两个文件是打架的。好,Lab地下的system six啊,在这我们刚才已经看到了,它有和这个sendmail是冲突的。
35:15
那结果呢,有人就非得要启动cmail,那这样的话呢,这个cmail呢,启动的时候,他和咱们当前的这个是冲突的。啊,冲突的啊,你看。这个25端口。就涉及到两个服务打架的问题了。这两个服务呢,一个mail,一个他都会去尝试使用。25端口啊。这个也起来了,看看它起来了吗?诶你看他又起不来了,你看带的了,为什么什么时候带的,35带的,为什么35带的,因为四分庙把人给挤掉了。
36:08
你把三个MAIL1启动,把人家POS给挤黄了,因为大家不能共用一个25端口啊,啊,所以这样的话呢,就会产生问题。那这不写着了吗?是吧,所以为了解决这问题,那怎么办呢?诶,我们可以禁用这个服务,不让他启动啊,我们可以这么干。Service啊,用mask我先把它停了,把它停了,停了以后呢,我把刚才那个post先起来。起来以后我们来看一下他们的状态,好,大家看其中这个post是启动的,Cmail现在是没有启动的,刚才我们也试过了,一旦你把CMAIL1起来,好像他会自动的把给挤挤掉了,现在把这给停了,我起来了,是不是这意思?
37:10
啊,刚才我们测了一下,你看现在再确认一次啊,看是不是这样,你看看这时候是不是他给上位了,相当于他把人把人家给杀死了,相当于。是不是,所以这样的话呢,就很不合理啊,很不合理,然后所以为了解决这问题呢,这样我们先把它先停了,然后part呢先启动起来。啊,这个SMA呢,这个邮件服务是比较老牌的邮件服务,相对POS来讲配置很难配,而且呢,呃,历史包袱太重,所以现在已经成功的被perfect淘汰了,那既然淘汰了,那我当然不希望你把我挤掉啊,那怎么防止这种情况的发生呢?哎,Must。Mask呢,这个命令的作用呢,就是能够把这个服务给它禁用。
38:03
哎,禁用,一旦禁用这个服务就起不来了,你想起这就起不来了,你看再起起不来了,大家看他说这个服务已经被遮挡住了,看到没?那它是怎么遮挡住的呢?实际上很简单,就是创建那个软链接指向了谁呢?脑指向脑,那这就是他的背后的逻辑,看到没?那所以说如果你不希望一个服务启动,你也可以手动创建一个软链接指向now也行也行,不过呢,没有必要,你还是执行ma的命令就行了,这样的话3MAIL服务它就起不来了啊,你想起起不来,当然有时那我就想启动咋办呀,我现在就想用smail了,那咋办呀,那你就把它解解解开不就行了吗?刚才我们是mask解,你给把它给封住了,那么on mask是不是就是解开了,解开了,解开以后呢?你再启动,你看它实际上所谓的解释不就是把这个软件给删了吗?你看见没对吧?然后你再启动它就又可以了。
39:04
理解了吧,这个选项是老版本没有的特性,可以说还是相对比较实用的啊,避免这种误操作,当然它避免的是误操作啊,你要是强行启动,那我们用ma不是也不也可以解吗?对吧?哎,这防止你误操作,实际上在工作中经常会出现这种现象,就是一个服务器上面很多人都有管理员权限。啊,就是你有的时候不仅是我们运维工程师有权限,甚至有些开发人也懂也有权限,那这时候大家都对一个服务器有管理员权限的时候,很有可能不是你干的,别人啊跑到这个电脑上干了一些这个不应该干的事情。啊,所以你看出现这种现象,那你到时候你就得解决,因为你是运维,你有责任恢复这个服务器的正常运行,虽然这个问题不是你造成的,也许是开发是吧搞的,那但是活你得干呀。
40:06
啊,所以这个就需要你掌握一些方法,掌握一些手段。然后前两天我看咱们那个那个。呃,有同学就发生了一个现象,就是有个运维啊,不是运维啊,是开发,开发跑到服务器上把计划任务,大家都知道计划任务这里面用pro time-一是不是里面可以看到好多计划任务啊,结果呢,有个开发跑过去来。R,啥意思?全删了,里面可能写了很多条啊,几十条计划任务啊,每天都执行,结果开发闲的没事干了上去啊,一下全删了,你想这些计划任务有多少,一个一个恢复吧,也不知道有多少。啊,所以这个就是没办法,他删了,那影响你了,你也得恢复啊,你不恢复也没包办法呀,啊,那那你怎么办呢?啊,所以这个就是经经常造成这种问题。
41:04
啊,所以工作中你们尽可能啊,就把这个权限掌握的严一些。尽可能不要给别人权限,少给他们权限,少出事,权限越大越出事啊,当然有的时候不好控制,不好控制,那你说这个权限。给运维自己。啊,那有的时候有些活需要有过这个权限,你不给他权限,他干不了。干不了啊,所以这个也是不太方便的。好,这是刚才提到的这两个,还有一个叫is active,这个is呢是用来判断一个服务是否目前处于活动状态,那比方说我想判断atd这个服务现在是不是可启动的,那我们可以用这个status来看。但这个看的话呢,他看到的结果到了问号是三,确实看到的是一个非零的结果,但实际上我们并不希望判断这么多复杂,我就想判断成功不成功,就是启动没启动,那这时候我们可以用另外一个简单一点的方法,就是is active,那就他给你返回一个结果就成功失败不就行了吗?In active就不活动啊,那么你要把它启动起来,我们比方说我们start把它启动起来啊,当然这个地方如果你要判断它的这个结果,它也是非零的啊,那如果你把它启动起来。
42:39
Start启动起来,启动起来以后,你再看一下啊,然后你看一下报告里。那教练工作中你写脚本U,你写脚本的话,是不是要判断这个服务启动没启动,如果没启动就把它启动起来,你是不是就可以这么写了,用这个,然后如果启动了就算了,没启动怎么样就执行。
43:03
是不是就可以了,对不对。这这不就写一个条件判断吗?啊条件判断啊就完了啊,当然他这个输出结果如果你不想看的话啊,尤就写在脚本里,我们不需要交互,是不是扔到垃圾箱里完了是不是,哎,这这就可以了,这就可以了,还不就行了,嗯。好,这是咱们看到的服务的控制啊,实际上无非就是换了个命令而已。CCPL以前用service,但是旧的service还能不能用呢?旧的还能用吗?哎,我能还能用以前旧的service来启动,重新启动这个atd服务吗?他表面上虽然还在,但是他已经被重定向到了directing,是不是就是当你执行了命令,实际上它本质上会执行这个命令,那为什么呢?你看看这个service,那你看这个service这个程序它指向的是谁,你能猜到吗?
44:12
啊,那我们这里面看一看它这个东西是不是一个脚本啊,是脚本,然后你看它脚本里面,它是不是间接的去调用了我们之前写的那些东西,看看有没有。所以它会自动的去把你的service给改成了。CCL,它有这样的一个重定向,那其他的话呢,相对比较容易理解啊,Disable这是列出它的文件类型,比方说我想列出所有的service文件啊,你也可以用这个命令来看。
45:00
有的四和所有的service,这是所有service,但是这些service呢,他们的状态我们看到有些是disabled。Disable就是开机不启动呗。那么atd呢,这个也被我设为开机不启动了,刚才改了,那我们来验证一下是不是这样啊,这个呢,我们要验证它开机是不是启动,我们有一个叫is的。好,这DC报啊,对上了那绿色的,那当然是启用的意思,那这边还有其他的一些状态啊。那比方说study。那static呢?它是静态的意思,静态代表着什么呢?我这列出了所有常见状态。
46:04
看这study。呢表示开机不启动,但是可以被别的服务激活,也就是说你自己不能启动,我是需要被别人激活的,需要被别人激活的。哎。呃,之前我们说过有一个叫T的图,看看是不是这样。嗯。啊,这个现在是被禁用的,禁用的。现在是没有启用的。Enable k socket。
47:05
开机启动。哎,这回就可以了,这是表示它开机启动啊,那除了我们刚才看到的这些状态,还有什么active啊,Active啊,这些都是active,只不过是他们active的状态不一样啊,有的是正在运行,有的已经成功完成了一次性配置,有的正在等待。那么依然是不运行啊,包括还有是重定向啊,就是当你对我的这个服务操作的时候,被我重定向到了别的地方。还有load呢,表示它对应的配置文件已经加载到内存里了,处理过了啊,这就是各种。颜色啊,这状态比较多。状态比较好。啊,这一大堆。八。那这个命令呢,我们用的比较多的用法,实际上主要也没有特别特别的这个需要大家都记住太多的东西,那传统的那些服务的状态,一些操作啊,比方说我们以前经常执行的service的什么,呃,这个这个服务,比方说D的start stop restar啊。
48:22
这个用的最多,那实际上咱们现在目前掌握的这个CCD也是这些,也是这些啊,无非就是这些,当然还有一些。比方说开机启动用enable,以前的话呢,开机启动呢,是用什么拆来设是吧,那现在我们用enable,那禁用呢,开机不启动就用disable啊,再加上我们刚才给大家讲的什么mask呀,Our mask呀,这新增加的功能啊,包括还有什么特别有些支持reload。啊,包括is active,还有就是is enable的,就是判断它是不是开机启动啊,无非就是这几个最常用的啊,把这些记住了就可以了啊记住就可以了。
49:10
其他的呢,用的不多。好,这是刚才给大家讲的这个CCT这个命令的一个用法。当然这个service文件刚才我们已经给大家说了格式了,这个service文件呢,我们这呃有一些范例啊,比方说我这写一个这样的一个范例的,Hello,哎,Service文件写一个service文件,让大家来体会一下自己写service文件怎么写啊,我这准备了一个范例,大家可以看一下怎么写啊。好,我们先把它。贴在这,大家看,我这有三段,Unit service和exot。啊,那这个unit这个地方就是描述了,那这个service表示我要在启动关闭这个服务的时候要干什么,那很简单,你看我们启动的时候就执行了这个。
50:12
啊,这个延迟时间不延迟,直接启动,那这个当我们启动hello的时候,它会运行什么呢?它会运行这样的一个程序,大家都知道这个程序实际上就是个死循环吗?看见没,是不是一秒钟在屏幕上打印一个hello word,然后不停的死循环,这不是处吗?然后我想把这个服务停了的时候呢,就会执行Q把这个SH这个程序呢,给它关闭掉啊关闭掉。啊。那现在我们来看一下,把这个写好以后,我们在这儿写好以后,虽然存好了,但是呢,我们在这个地方立四次。
51:00
啊,这个我们去看一下它的这个文件有没有能看到,就是type类型是service的。看这里面有没有我们自己写的那个hello。H。已经出来了是吧,哎出来了,不过呢,它现在是没有启动的啊,没有启动的,不过呢,我们虽然看到了,但是我们在这个地方第四次这是看正在生效的,刚才那个费是看文件,那这个是看正在生效的啊,是service,看这里面生效的文件里面有没有hello。有喉咙吗?没有吧,也就是说这个里面它没有,那没有的说明他虽然已经写成到文件里了,但是他没有加载到内存里面,还没生效啊,要生效又让系统识别,那么需要执行。
52:04
Lo。这样的话呢,系统就知道了,这样的一个service被加载到系统中了啊,看看这里面能不能看到它。还没启动啊,这个里面列出的是正处于加载运行的,现在还没有运行,所以我们现在就看不到它,好,那现在我把它启动一下看看啊,启动的话呢,我们先看一下它的状态,大家看现在是没启动的,那现在我要启动的话呢,就执行一个大启动就好了。起来了吗?那看看状态。起来了吧,起来了,但是起来了实际上它就会不断的去运行那个。循环嘛,啊,当然这个这个打印打哪去了。你看他不断的输出,但是屏幕上并没有打印,对不对啊。
53:07
好,大家看,你看这是不是有输出。一秒一个吧,一秒一个,一秒一个,你看是不是有啊,那这个输出输哪去了呢?我们看一下日志U。网断了。断网了CVC没断吧,VC也断了,又恢复了,又恢复了,VC也断了,就是那个腾讯课堂应该是断了啊,大家看是在这个文件里面,他写到这个文件里去了。
54:05
啊,写到这个log下的message这个日志文件里去了啊,这就是自己写了一个service啊,当只是个范例,啥也没干啊,那你要把它停,停止的话呢,就是stop啊停了以后呢,你再看一下,你看是不是发了一个停止信号,把word给停了,停了以后你看它就不再执继续执行了。停了。好,这就是一个范例啊,这个范例。那最终呢,它生成的这个日志信息就放到这里面去了。
55:13
啊,这是其他的一些这个服务的日志文件。啊,这个是。呃,他们看的这个软件的service文件。啊,大家可以看一下这个路径。这是他的配置文件路径。这是启动服务的时候启动的程序,那这个路径呢,属于变异,安装的时候指定的自己指定的路径,停止的时候呢,执行上档就是把这个服务停了。啊。那这就是一些小范例啊,这个范例呢,大家了解一下,等我们学到很多服务的时候,尤其编译安装service文件官方肯定就没给你了,你就要自己写啊,自己写就参考这个RP包,你可以先用RP包把这个服务先装上,装上以后呢,RP包里面应该带那个service文件的范例,你参考这个service的范例,再去把这个文件在它基础上改修改一下啊,来用于你编译安装的服务啊,一般都是这么干的。
56:28
当然在乌邦兔里面,它的这个开机启动也是可以来实现的,乌邦兔里面的开机启动呢,我们也可以用RC log这个写法,这是一样的。互帮tu里面也可以写service文件,也可以写这种用RC local,把你希望开机自动执行的程序呢放在这里面也可以标忘了加执行权限就行了。啊,所以呢,这个呃,乌邦兔里面,我们后面会有些课程会基于乌邦兔来介绍,呃,它的开机自动运行有些跟SS差不多,基本上一样的。
57:12
八。那接下来我们来看一下这个target运行级别,在刚才我们也说过,3S7以后的版本中,他不再去强调用所谓的零到六的七种模式,而改名叫target。Target就翻译成目标,那这当然我们一般也不翻译,那么这个呢,它类似于早期的run level,那target的资源也是放在这个lab这个目录下的,我们可以看一下。Lab d,这里面有很多资源,其中包括target的后缀的资源。
58:00
好,大家看他给的是不是特别多。不过呢,我们看到这有留了几个零到六的target。这是为了兼容于老版本留下来的零到六。那其中这个零实际上它映射到power of。而一相当于2345TARGET。六是产品。那除了这几种target,事实上还有其他的target看到没有?还有好多他给。所以在圣斗士七以后的版本里面,并不仅仅有零到六的七种啊,它还有很多。那这些target呢,啊如何去操作,那我们这也有对应的工具。
59:01
同样也是用CCTR来命令来实现,比方说我现在想知道这个当前我想实现它跟之间的一个切换啊,我们可以用so来实现啊,我们先看一下当前的模式啊,当前模式是三模式,三模式呢对应的实际上是Martin user target,那你要想切换早期的命令也可以用,比方说我切到五模式,你可以用这个命令。啊,切,切到别的模式,你可以用这个以内的命令,不过呢,咱们有这个新的命令了,Ctl so,这个命令可以来进行切换,切换的话你后面可以跟上你希望切换的模式,比方说如果你跟这个,那就重启了。啊,如果你跟graphic target,那就相当于切换的图形了啊,大家看一下。当然我因为我这个机器可能没装图形啊,切不过去,我这没装,因为我是最小安装最安装没有图形,所以你想切的话,它没有图形也切不过去,不过呢,这个模式呢,倒是能显示出来,应该是切过去了,看吧,切过去了。
60:15
啊,所以用这个命令呢,可以切,当然这个可能大家还是更更多的愿意用早期的命令,对吧,这个多省事啊,对吧,这个命令多省事啊。好,这边还有依赖关系,用它可以查看这些target所依赖的有哪些资源啊,这是可以看的,叫list啊,那我这个和target呢,是依赖于market user target,所以target之间实际上本身有依赖关系,而每个target里面是不是就是各种资源的组合?而这个target里面又依赖于basic target,但是basic target又包含了这些资源的组合。所以实际上就是互相嵌套的关系,你可以理解成一个他相的一个函数啊,然后这个函数里面包括了一些子函数之类的啊,就这样的互相嵌套啊,互相嵌套。
61:10
啊。这就是切换。还有一个问题就是如何来获设置开机自动进入到某一个target。咱们在WINDOWS7以后的版本里面,这个文件失效了,大家记得这个文件吗?这文件是不是来设置开机自动进入到哪个模式下的,那这个在生度七往后失效了,不能用了,大家看这个文件不起作用了,那不起作用了,我希望开机自入到进入到图形或者自动进入到字符,那怎么办呢?诶人家告诉你怎么配了说。Multi user。大概相当于3GRAICAL大概相当于五。如果你想。设置开机自动进入到什么模式下,你可以用这个叫set default,这个get default是查看,比方说我现在看一下我当前开机是进入什么模式,是market user,但是如果你希望下次开机自动启动进入到graph,那你就可以用set default来设就行了,那这个地方可以graph,它也支持碳键补全。
62:21
啊,这就改了,改了以后呢,实际上它本质上就是创建了一个软链接,这个软链接指向你希望开机启动的target,你看。那现在我们用get命令可以看到开机下次会进入到哪个模式下。那现在我们重启一下,它应该就自动的进入到graphic了啊,当然由于我没有图形,它进不去啊,没有,那当然同样的逻辑,我们在这儿是不是也可以设成一个比较破坏性的target。
63:06
这啥意思呀?那我这样一设是不是又不断重启了,对吧,那不断重启了,那咋办呀。那看看是不是不断重启了啊。啊,我设了一个错误的target。看看它会不会造成不断重启,看重启了。啊,不断重启了,那这个问题怎么解决呢?方法也简单,在这个地方启动的时候,这个菜单这个地方。
64:03
可以输入一个这个操作。啊,我们可以更改临时性的启动的这样的一个模式。嗯。看一看啊,在哪设在这个。Grab这个位置在这儿应该可以射。看一下啊。可以临时修改target。临时修改。他给。现在在哪儿呢?
65:03
这儿。可以写一个这个叫CND的unit,后面跟上你期望记录的某一个target。啊,如果你望进入到这个图形,你就写graphic target,如果你希望进入到这个啊,Multi user target,那就写就好了。啊,CCD的unit等于。好。那比方说我们现在现在就遇到了这种情况,那我们可以在这个地方。选中以后大家看这是不是有个E的指令,E是编辑。然后找到LIS这一行,这个S这一行。把光标移动到最后,这写上一个4D的unit,等于你希望这次启动进入到这个模式。
66:08
啊,这次启动multi user target,那这意思是,哎,写错了吧,Mar少了个T是吧。User,它给那表示我这次启动临时性不按照你的默认模式了。我希望这次进入到multi user target,看这个单词写错了没有,Multi user target。那这样的话呢,就可以修正刚才的这个问题了。啊,这个CD unit等于好,那现在我们写完了以后,确认无误的话,就可以来启动了,怎么启动呢?大家看这有一个叫CTRLX,就要不要回车啊,回车的话加了换行了CTRLX。
67:02
爱启动就行了。那这次启动的话,看看它能不能正常启动起来。起来了吧,啊,不再重新启动了,当然你还是该修复修复啊,这终究这也是个故障,如果你下次不修复的话,下次它还是会自动的不断重启的,所以我们需要把它再改过来,改成什么呢?Market user,他给把它改过来,好,这就是一个故障排错啊。那这边有一个target,是一个比较特殊target,这个target呢,就是映射到我们之前给大家讲的那个是按三个键。
68:01
按三个键在CD下面有各种,其中包括CTRL。E。这个。大家看到了吗?当你按这个controltr delete键的时候呢,它会触发target,因为它映射到那去了,所以换句话说,当你按三个键会自动重启,这个我们说过啊,为了避免误操作,是不是可以考虑把这个东西给它取消了,那怎么取消呢?哎,方法很多啊,一种方法你把这个软件删了不就行了吗?还有一种方法就是ma。Mask呢,它实际上指向的就是第一了,这样的话呢,当你按三个键它就不起作用了,注意现在是起作用的啊,现在你看我现在如果我按三个键,在这按CTRLL的delete键。你看它是不是重启了对吧,所以这样的话呢,这个就不太安全啊,为了避免误操作,你可以把这个CTRL按delete键给它取消,那取消的话呢,就执行刚才说的这个。
69:14
Mask就可以了。好,那执行一个命令叫mask CT,诶,那这时候你按三个键就不起作用了啊,你看我现在再按一下这个三个键,现在就取消了这个空能了,不起作用了啊。放。这个CND,它的启动流程和早期的T启动流程有一些区别,但是之前的过程基本上跟咱们三六的启动流程很像,咱们来做一下总结啊。大家看这是三七以后的启动流程,第一步开机自检,这都一样,选择用来启动的硬件,比方说硬盘,接着加载boot loader bootloer呢,渗七往后的版本变成了GRAB22代了,但是它也是grab。
70:31
然后开始通过grab找到内核文件,找到内核文件以后,内核文件的路径是在这个grab cfg文件里面写着的啊,然后通过他找到内核文件,当然找到内核文件就会尝试去挂载操作系统的整个硬盘的根,当然你要挂载根的话,就要用到这个FS驱动模块,然后加载内核参数去运行系统中的第一个进程,第一个进程就叫类进程,然后去按照这个service呀,Target呀,这里面的各种资源去陆陆续续的去进行啊挂进行执行,那这时候会用到各种target。
71:18
然后包括这个target里面包括了这个挂载F文件啊,包括还有其他的一些target包含的service服务,一个一个陆陆续续的去启动,启动完了以后呢,然后这里面有一辆一些大量的脚本啊,就类似于我们以前说的那个rc.d下面的一些启动脚本啊,就是一类的D下面的启动脚本。然后呢,它会读取这个文件叫default targetat target决定了到底进入到哪种模式下啊,比方说进入到三还是进额五图形界面,诶这是可以的,这里面的执行过程到底先启动谁,后执行谁,这边有个工具可以帮我们来判断,就这个工具叫CD的。
72:05
Analyzer,那这个analyzer呢,这个软件它后面可以跟上一个指令来显示每个服务启动的时候花的时间,你看这个命令一执行,他就告诉你按那个服务启动花了花了多长时间,这都有,当然光启动时间这个我们这是一方面,那看到我们发现这个启动呢,是比较占时间的,花了一多一一秒多钟。其他的还都好,速度比较快,那当然我们更多的是关心什么呢?它的启动顺序,先启动谁后启动谁,这边也可以用同样的这个命令,不过呢,我们跟上一个plot,它就可以生成一个啊网页文件。咱们就可以更加直观的来了解系统的启动,不过呢,它生成的网页是一个标签文件,它并没有生成文件啊,直接给你把它打印出来了,所以如果我们想看的话,你就写到一个文件里面。
73:05
把它输出到一个文件里面,然后把这个文件呢,传到咱们的Windows里,用浏览器打开,你就能看到非常直观的一个启动的流程了,那我们看看它的启动流程是什么样的,你看这个文件,双击把它打开,你看看。用浏览器打开。这就看的非常清楚了,你看这是内核加载花了多长时间,接着是以内的D,接着是不是运行系统中的第一个进程,接着每一个服务啊,对应的程序啊,他就开始加载了,我们说过是不是基本上并行的,你发现没有并行执行,当然也不能说完全真的做到100%并行啊,你看他这陆续执行到最后执行了什么呢?马target看到没有,这是它的执行次序,这能看得很清楚了。
74:01
啊,这边显示了不同的颜色,表示这些服务到底哪些是激活的,哪些是不激活的。这儿看的非常清楚。啊,所以这就是他的一个启动顺序。这告诉我们了,花了多长时间,你看这个是内核空间花了852毫秒啊,这个以内D花了两秒钟。用户空间花了三秒钟,总共是6.830秒钟就起来了。啊,这是一个统计,所以这样的话就看的非常清晰了,啊,这是介绍的。这个启动流程啊。好,那接下来咱们还有一个问题,我们来说一说,就是如何来破解入的口令。CS7往后的版本,它的grab版本变成了二版本,它的版本不一样,所以它的破解口令的方法比以前要麻烦一些,你看他这个版本用的GRAB2。
75:18
星。啊,你看他用的是2.02版,2.02版,所以这个word版本发生了变化啊,咱们以前0.97版是吧,在三六上用的是0.97版,那么破解口令的方法呢,也有多种。那第一种方法呢,就是在启动的时候呢,按任意字符把它那一键把它停下来,然后按意键进入到编辑模式,找到Linux那一行,添加r d break ctrl X,重新挂载根,然后再改变到根里面。Pass w pass WD改入的口令,这就可以了,这项呢,一般来讲,如果是scd禁用的,不用写,我们现在都是禁用的,所以这一项不用用,还有第二种方法,第二种方法呢是杠E进入到编辑模式,找到Linux内行,把这个地方加上叫RW以内改成这个,然后进来以后呢,我们切根执行改变柱子口令,这种方法也行。
76:21
啊,这两种方法都行啊,比方说我们来演示一下第一种方法,那第一种方法呢,它就破解入的口令。它的步骤比之前要繁琐一些。嗯。重启的时候在这个地方按任意键,然后这个地方是不是有个E的字母提示E,然后找到LISLIS这一行,看到没有开头这一行,找到光标,把它跳到最后在这个地方敲一个 Rd. breakrd.break把这个。指令敲上,这个指令的作用就是停止系统的正常启动,打断它的正常启动啊。
77:05
加这个加了以后呢,CTRLX启动,这时候由于加了这个内核参数了,所以它就不会按照正常的启动来启动了,而进入到一种特殊的可以理解成救援模式,就相当于单用户模式一样。它会进入到一种叫单用户的模式,类似的,大家看在这个模式下,我们现在可以执行。命令,不过呢,这个命令呢,现在我们看到好多命令不能执行,为什么呢?因为我们现在还没有使用硬盘的跟系统,所以这里面工具很多都是缺失的,那我们来看硬盘的根系统在哪呢?在。哪个地方呢?我们看一下这DVSD是不是原来硬盘的跟它被挂载到了c root下,而且重要的是这个地方显示的是只读,那换句话说,如果你直接去利用C入下ETC,比方说我改那个口令把它改了啊,这个vim没有VI有你这个地方能改的了吗?你看他这个文件是只读的,是不是改不了啊,比方说你存盘。
78:20
存不了,因为它只读的,所以呢,我们现在改不了啊,改不了那改不了那我们就要重新以只读可读可写方式重新挂一下,是不是挂完了以后,你再看一下Mo,这是不是变成了RW了。实际上现在你破解口令的话,你直接把那个深的文件改了就行啊,不过呢,我们还是比较啊,不太建议大家直接改式的文件啊,因为文件改万一改错了呢啊,所以我们先切一下根。签完兵以后。现在我们看到的根就是真正的硬盘的根了啊,在这个地方。他现在不是不能,那D看那帽子看一下也不让看,不让看没关系,我们直接改密码就行了,直接输两遍密码,输入root的新口令,这就改了,改了以后呢,我们来验证一下是不是真的改了C的文件,你看这个时间是不是变了10:19。
79:18
那现在这个密码就破解了,破解了以后你重新启动,那这时候呢,我们就可以正常的以新改过的口令来登录了,就这么简单,就是破解入的口令,所以三七往后破解口令比以前要稍微麻烦一点。啊,但是也不太难。当然这个破解口令我们之前在给大家四六上演示过,这个破解口令太简单了,所以造成咱们系统好像也不太安全。后来我们想过的一个方法是不是加口令啊啊grab给它加口令,这样的话就避免它随便破解口令了啊,那所以我们在奋斗器上也是可以做到的啊,你看这个密码被我改了以后,现在登不上去了,还得重新输新口令才能登录看到吧啊。
80:09
这就是破解口令,那稍后呢,我们给大家说一说grab怎么去加口令啊,这个我们先休息会,待会回来35回来啊。
我来说两句