00:02
那接下来呢,我们学习新的一章节,这章节呢,我们主要给大家讲一讲如何在例中来管理用户组。包括权限控制。在安装系统的时候呢,我们已经准备了两个可以在系统中登录的用户。除了系统自身带有的入账户。我们还建了一些自己的账户,他说我这儿建了一个王用户。那在生产中,我们基于某些业务的需要。可能会给用户。或者给一些服务。来对应的创建他们的专有用户。同时,之后我们还可能还会分配不同的权限。实际上我们创建用户的目标就是为了让他们实现不同的权限,如果没有权限分配的需求的话,实际上我们创建账户是没有什么意义的。
01:08
就是为了控制用户,所以我们才需要创建不同的用户,然后之后就可以针对不同用户来设置不同的权限了。如果大家的权限如果没有这种不一样的需求,那干脆就一个账号就得了。对吧,所以我们在这章咱们就来看一看如何来创建用户和组,包括权限。好,那我们先来看一下这章我们介绍的内容包括有哪些?在Linux中,我们先来了解一下它的安全模型。呃,它实现安全的一个工作逻辑。那第二个呢,我们就要了解Linux里面管理用户和组的相关文件和工具和命令。
02:05
在历中,除了我们。这个用户账户管理组,这两个创建好之后,我们对应的要给他们分配权限。这个权限呢,还涉及到一些普通权限以及特殊权限。另外还有所谓的默认权限。包括访问控制列表。这些都是和权限相关的。所以实际上这张围绕着就是用户和权限这两个大点来介绍。那我们先来说说Linux里的安全模型。那在用户账号登录的时候。系统会对这个用户的身份进行验证。来验证你的身份是否是合法用户。那么等你验证成功之后。系统会给你分配一定的权限。
03:03
当然你有了这个权限以后,你在系统中就可以做一些操作。但是我们希望能够把你做的操作记录下来。以供事后去做一些审查。这就是所谓的3A。第一个A呢,代表着认证。就是验明正身。绑赴刑场之前是不得要验,验明正身,别杀错人了,那咱们在计算机里面登录的时候,要验证你的身份,目前比较主流的验证身份的方法。用户名密码是吧。当然,我们在生活中现在已经有太丰富的其他验证身份的方法了。我们现在还用什么方法验证身份呀?是不是用除了传统的用户名密码,你像手机上咱们是不是有的,画图形用指纹刷脸都可以吧。
04:02
在楼下是不还可以刷脸买东西是吧?我今天刚试了一下,以前没试过。光刷了一下脸,发现成功了,然后把那门又给开开,又给关上了。呃,也没买东西啊。啊。那这个认证就是实现了身份的确认。第二点就是授权验证身份之后,我知道你是张三还是李四了,那接下来我们是不是应该赋予他们不同的权限?如果没有赋权不同权限的需要的话,实际上这个账户验证就没什么意义了。我们就是为了验证不同的用户之后。不同的人,权限是不一样的。那例如在我们的Linux里面,不同的用户对某些文件的访问就不一样。
05:00
有些文件能访问,能读,但是不能写,那这就是可以通过授权的方式。来实现权限控制。第三点呢,审计,审计就是我们刚才说的,那你做了操作,我得记录下来。将来生产中,咱们企业里面有不同的员工,那么不同的人登录到服务器上到底做了哪些事,我们要记录下来。万一。哪一天生产出事故了,服务器出故障了,咱们能够事后来追查一下,这个事儿到底谁干的?是吧,到底谁删的酷?那你就可以不用跑路了,别人删的酷嘛,对不对啊,责任在别人身上。诶,我们有一个审计的功能。在生产中,这些呢,都是相辅相成的。那么用户账户如何来?验明身份,如何来进行授权?
06:01
那包括审计的过程,这个东西,我们背后都是有一些实现的。软件的。当然认证和授权这两点呢,通常来讲Linux里面都会用。操系统自身的功能帮我们实现了。啊,比方说当你用户账号登录的时候,你要输入用户密码,这个用户密码正确了,它允许你登录,失败了,他不让你登。登录之后,实际上系统会自动的给你分配关于这个用户的信息。这个信息咱们叫令牌,叫talking。我们都知道,古代的部队就是军队,打仗的时候,一个将领要能够调动部队,调动军队的话,他必须要有一个东西才行,大家知道吗?叫什么虎符对吧,叫兵符守虎符,只有拿到这个兵符之后,他才有权限去调动部队。不是说你这个刷个脸你就能调动部队的。
07:02
对吧,一定是有皇帝授权的权威的这样的一个兵符,这个兵符在谁手上,他才有权力调动军队。那么这个兵符就是我们相当于这儿的token,叫令牌。你看名字起的就是令牌。当用户账户一旦登录成功,系统会分配一个talking给他,这个talking里面涵盖了这个用户的唯一标识标识,比方说我们前面给大家提到的UID。包括还有它属于哪些组。都会通过这个token分配给他。一旦分配给他以后,当他拿的他要访问某个资源的时候,比方说访问磁盘的一个文件的时候,他会自动的把这个token提交给。你要访问的文件。那么系统会根据你这个用户提交的令牌来判断你是否有能力去访问这个文件。
08:04
最终决定了你能不能访问。那这就是他背后的逻辑。当然这个talking是登录的时候获取的。换句话说,一旦用户登录成功之后,这个token是不变的。当然那如果我们在登录过程中,我们修改了用户的信息,比方说修改了用户的ID,修改了用户的组成员。这个修改是不起作用的,不会立即生效。因为他在登录期间,他会用当时登录的时候获取的令牌。那么什么时候才会获取新的用户信息组信息呢?那就需要你重新登录。也就是说,你需要注销之后,重新登录之后才能拿到新的令牌。所以这就告诉我们,将来你要改权限呀,这些东西可能还要考虑令牌的生效问题。
09:02
在Linux中,用户账号都有与众不同的唯一标识。这个标识我们叫UID。那这个UID我们在前面已经给大家强调过了,之所以你是普通用户,之所以你是管理员,原因就是UID为零还是不为零?为零就代表你你是超级用户。那不为零,就是普通用户。当然,在3S6之前的版本中,他们是由新创建的,用户的ID是500开始分配的,从500 501 502。当。S7往后的版本,包括吴帮助在内,18004,它是从1000开始编号的,当然这个编号呢,是系统自动分。我们也可以人为指定,我就不想要系统自动分的编号,我自己分也是可以的。
10:02
那这个就是我们所谓的UID。另外还有组的概念。在Linux中。和Windows一样也有组,大家知道Windows里有组的概念,那么所谓的组是什么意思?Group和用户之间有什么关系?组英文单词是group对吧,那group这个组他和用户之间什么关系啊。大家Windows里不是用过组吗?那么在Linux里面,这个组的概念和Windows一样。组是什么意思啊?那组就是一些用户的集合。啊,它代表着几个用户。的集合。我们可以把组呢想象成。工作中的职位、岗位。比方说在公司里面,你入职以后,你是运维工程师的岗位。
11:01
当然你在公司里面可能不仅仅你一个运维工程师,可能有好几个运维工程师,那这个组呢,就是运维工程师这个岗位。那么一旦你入职这个公司之后,你成为公司的运维工程师这个职位以后,你是不是就自动的获取了运维工程师的能力啊?他是不是会分配权限给你,比方说你有资格去机房是吧,扛机器了。机器对不对,一个机器挺沉的,可以锻炼身体。啊,那所以这就是运维,运维。他这个组的概念啊,当然你要不在这个运维组里,如果你是普通公司里的行政人员,你肯定是不可能跑到公司机房,然后你随便接触服务器,这个事是我们运维工程师才有特权的。啊,搬机器也是有权利的是吧,也不是随便人就能搬得了的。啊,那这就是组的概念,那么一旦加到组里面,它将继承该组的权限。
12:07
所以有了组以后,将来我们再给用户分配权限,那就省事了,我就不需要一个一个的对用户授权,只需要事先对组授权,然后把用户加到组中,它就自动的继承了组里的权限。所以这个组呢,有点像我们生活中工作岗位,工作职位。啊,那组的也存在相同的一些ID的问题,它也有组的唯一标识,咱们叫GD。组的编号也是有01234这么来长的。但是组的ID为零,那这个和我们入的账号。用户账户ID为零,这个是两码事了。最主的ID为零。并不代表着你正式管理员。这个希望大家记住了啊,组它也有ID为零的组,叫root组,但这个root组就不一定是管理员了,明解了吗?哎,不一定是管理员,可以,可能是也是个普通你加到你把一个用户加到root组里面,也并不代表他什么管理员。
13:16
啊,这一点呢,和Windows不一样,在Windows里面好像有一个管理员组,叫administrators是吧,这个组,这个组你一旦把用户加进去,他真的成管理员了。是吧?而root呢?在Linux里不一样,Root这个为零的组,它就是一个实际上和普通组没什么区别啊,权限并不是想象那么大。啊,所以希望大家能搞清楚,另外呢,在Linux里面用户有个名字叫root组,也叫root,这两个是可以同名的。那么在Linux里面用户名、组名同名,那么Windows里面是否允许用户名和组名同名呢?允许不允许?Windows里面咱们建个用户叫张三,我建个组也叫张三,行不行啊。
14:03
允许吗?没见过是吧?Windows用啊,Windows不会玩啊,Windows Windows里面也有命令啊,这个咱别小看Windows啊,Windows实际上背后的技术绝对是很强的,只不过它不开源,所以我们永远是盲人摸象啊,然后这个呢,就是可以看到它的用户列表,看到没有,这是我的Linux里就是Windows里的用户。那我们也可以通过命令来创建用户,比方说我们就说创建一个123的密码。允许一下。And把它分开。成功了,大家看没有,是不是生成了一个T用户。有了吧。那当然我们也可以查看组叫什么呢?叫local group,这个就是。
15:04
在Windows里的组的列表。那大家看到这里面有一个admin这样的一个组,这个组里面的人将具有管理员权限啊,当然我们也可以看一下这里面有谁。这里面。有谁呀?只有一个admin。嗯,那我们现在。我们能不能也创建一个组啊?也叫test。大家看冲突了,他说祖账号已经存在,我们这儿有那个太子组吗?不能。是不是没有,那为什么它提示我说存在,就是因为我们刚才建了账户。叫test,那你把这个账户删了它就可以了啊,我们可以把这个用户呢,删了叫test,然后删了,删了以后这个用户就没了,那没了那我们再建个组叫。
16:08
Test。成功了。所以在Windows里面,用户名组名不同名,不能同名。这一点呢,和Linux不一样,Linux用户名和组名是允许同名的。所以大家在执行命令的时候呢,你自己就得明白,你现在是针对用户和组到底设的是哪个。因为它是不区分的,从名称上来区分。啊,所以你自己就要区分了啊,你自己在敲命令的时候,你就要清楚你是用的是组还是用户了。啊,那么用户和组之间。是隶属关系,就是我们把一个用户加到组里,就像一个人入职某个。岗位。啊,你入职去某个公司上班啊,比方说你将来去阿里了。
17:00
是吧,去阿里了以后,那你在公司里面是什么岗位,就是相当于一个组就加上去了,哎,那么加进去以后,那么这个组是相当于工作岗位的话,那么就意味着你可以不可以在一家公司身兼述职。当然可以了,比方说你刚开始是用于工程师,干上若干年以后,哎,表现不错,成为CTO了,哎,CTO一看,哎,这个你能力超强,哪一天你可能当CEO了。是吧,那这时候你就可以迎娶白富美了啊,走上人生巅峰了啊,当然,那由于技术这块你很强,所以你可能会身兼数职,不仅是公司的CEO,也是公司的CTO身兼数职,但是身兼数职这个并不是每个人都这样。因为你刚开始的时候,你到公司不可能直接就是CEO,你可能就是一个普通运维,那这时候你就一个岗位,所以在一个公司里面至少是不得有一个身份。
18:05
啊,至少得有一个身份,那么在Linux中,用户和组的关系非常相似,用户必须属一个组。你建一个账户,他必须加到一个组里,这个组就是你的基本工作岗位啊,就是你到公司里面至少得有一个身份吧,你没身份那相当于你没到这个公司上班啊,对不对,哪怕你到公司里面,呃,这个干什么活,你走一个职位吧。哎,这就是咱们在Linux中,用户账户是必须要加到一个组里的,这个组叫什么呢?咱们叫主组。叫primary group,这用户账号必须属一个组啊,这是有且只有一个,有且只有一个,那有且只有一个,那就意味着你在公司里面至少得有一个。主要的岗位,当然刚才说了,那你可以身兼述职啊,那当然你身兼述职也不会说每个都是你的最主要岗位吧,比方说你那天你在公司里面是CEO,同时也是ctoo,那你觉得哪个是你的最重要的岗位啊?那那当然是CEO了是吧?那CEO是你的主要岗位,那么就相当于CEO是你的主组,而那个ctoo呢,就相对次要的一个组了,那这个叫什么呢?叫primary。
19:23
啊,叫这个叫叫secondary啊,或者叫这个单词也行,这个单词太长了啊,那就是辅助组,辅助组啊,就是你的哎,可有可无的组,有也行,没有也行啊,当然我们一般的人可能就没有这个组了,一般人只加到主组里面,辅架组可以有也可以没有,有的话可以有多个。啊,这就是类似于我们可以把primary group理解成相当于你的主要身份,主要所属的组,你你的职位那个啊,附加组呢,就相当于你的次要身份啊,次要身份当然也也许就没有。
20:03
啊,这就是用户和组的关系。那么在Linux中,由于我们新建账户,默认它就会建一个和你同名的组,并且把这个组作为你的主主。换句话说,当我们新建一个张三用户,系统就会自动建一个组,也叫张三。当然,这里面只有你一个人。所以我们把这种组又称为私有组,因为这里面只有你一个人,这是默认的啊,默认的当然你后续的你可以把别人也加到这个组。但是需要你人为的去手工指定,否则默认你建十个账号就会建十个组。建100个账号就会建100个和你同名的,这一点呢和Linux Windows还是有差别的,Windows里面大家知道我建个账户,它会加到哪个组里。他会建100个和他同名,比方说你建100个账号,会建100个同名的组吗?那不会的话,他加到哪个组里啊。
21:00
Windows大家知道吗?我刚才不是建了一个U那个那个建了一个test的用户吗?后来被我删了啊,那我再建一个啊,我建一个太二,那这个T2账号属于什么组知道吗?看来大家还是比较厉害,只懂只懂Linux Windows,不太熟了。现在。是吧?这个组就叫。啊,当然大家还是那句话,你Windows也得适当的了解啊,虽然我们是Linux运维,你到公司里面,人家说老板说你给我装个Windows server,你说不会行吗?你现学学就会了,知道吧,领导布置的任务就没有不会这一说。不会也得现学,也得会了,是不是?啊,所以这个大家学东西啊,有的时候上班就不要挑了,需要什么你就学什么。
22:03
啊,当然,那这就是Windows里的概念啊,这个Windows里默认建的账号就属于user,有一个叫user。啊,所以他就不会说你建100个账号,生成100个组,没有这个概念。好,这是Windows和Linux的一个区别啊,大家先有所了解,好,那么接下来我们继续来看。那么我们可以通过有一些命令来查看一个账号属于哪些组,我们可以用这个ID命令,ID命令大家不陌生啊,ID命令呢,我们在曾经前面讲过一个什么杠U的选项。刚优是不是可以查看这个用户的什么UID啊。这不就是王账号的ID吗?那我们也可以不挑任何的选项,直接写用户名,大家看这就可以列出这个用户所属的组。其中最前面这是它的用户的ID,这就是他的主组的ID。
23:06
另外,它除了属于主组,还属于另外一个辅家族。Mail组,Mail组也有ID号,12,它的主组是post post就是89,刚才要求大家安装两个软件啊,一个是pro装上了,当然有同学说了,我发邮件发不了,那是因为你可能还要缺一个软件包,就这个包,这个大家要看一下啊,叫ma X。要不这个没有X不装的话,发邮件那个没有命令没有。这是两个软件你都要装啊,一个是cost。X一个是ma,这两个都要装一下,尤其最小化安装的同学啊,如果你要是重新安装这个可能不缺了,最安装的话,把这些都装一下,装完以后呢,还是,所以现要求大家把你要做的一些初始化的命令做一些总结了。
24:01
啊,这个别忘了。在前面我们要求大家做一些初始化的最小化安装之后做一下初厂工作,你们还记得我们前面要求大家做哪些事吗?前面讲过哪些啊?啊,除了装这些软件,有些软件可能你需要额外安装。最安装有的时候他没有。啊,你先装这两个吧。先把这两个装了啊。好,那接下来咱们来继续看一下。在系统中。每个账户。他有自己的ID。他所说的组也有不同的ID。刚才我们也提到,用户账号一旦登录成功,系统会自动的分配它的所谓的令牌,这个令牌里面实际上就携带了包含这个用户的ID号,这个用户所属的组的ID等等他的信息。
25:13
那么当一个用户一旦登录成功之后,他去运行某些程序的时候。这些程序再去访问别的文件。比方说我们用这个命令。我用这个cat命令去访问这个文件。T命令后面可以跟一个文件。当然,那请问大家我root去执行cat。和王账户去执行cat。这两个是不同的人。那么最终这个文件能不能让这个用户访问,是由这个看看这个程序决定呢,还是由这个人决定的。
26:00
同样去执行一样的命令,你看这个弱的用户去执行没有任何问题。啊,那现在我换一个这个用户。这记忆怎么这么卡呀?好,我现在在这边。拿王账号来登录。登录以后,我同样执行一模一样的命令。结果是不一样的。那说明当用户去访问文件的时候,这个文件资源能不能被访问,和你的用的程序无关。和谁有关?和人有关?是吧?
27:00
那还是。人的因素更重要,所以在一个班里头,同学们不要再抱怨了,学好学不好。是环境有关吗?和老师有关吗?和王老师没关系,是不是?是你们自己要努力学好,学不好到时候不要赖我啊。是你们自己要努力,哎,你看这这个东西是相通的,是不是相通的。好,那这是刚才我们提到的,那当一个程序运行的时候,这个程序会自动的携带有执行这个命令的身份。就是当你这个程序执行的时候,他会以这个人的身份去运行,以王的身份去运行,所以这个资源能不能访问,和这个用户有关,和程序没有直接关系。
28:02
所以这就是说了,这个高手就是拿一个树叶都能杀人。是吧?给你把菜刀,你是不是都手哆嗦不敢砍?是给了我,我也不敢这个不能伤害别人是吧?啊,那这是刚才我们提到的这样的一个概念啊,所以这句话呢,希望大家明白。这句话。好,那接下来咱们来看看Linux中。是吧?啊,这个阿俊同学很有经验啊,阿俊同学是和你没关系,你没动不是你的错是吧?和你没关系。你这样也对待你的女朋友吗?一点不负责任和你没关系,难道和张老师有关系吗?
29:04
你要负责啊阿同学。好,那接下来咱们来说一说用户和组的文件。我们说了用户账户和组。肯定是存放在磁盘上的某些文件里。因为每次用户账户登录,他需要去验证,机器重启,你必须要放在文件里才能存得住啊。那么由四个和用户组相关的重要文件,这四个文件希望大家对这些文件的格式有一个初步的印象,用的多了,慢慢也就记住了。首先看两个和用户相关的文件,一个是ETC的pass WD,一个是ETC的shadow。
30:03
这两个文件分别来存放用户的属性信息以及口令。我们先来说第一个文件,叫pass WD,大家可能发现这个名字起的就跟一个password那个英文单词一样,就是缩写嘛,那事实上这个文件早期真的是放密码的。不过后来为了安全,把密码放在了新的文件里,叫给迁走了。啊,那这个文件的格式是什么呢?我们把这个文件打开看一眼。这个文件它就是一个普通文本。但是显而易见,这个文本文件是有格式的,其中每一行就是一个用户的信息,中间冒号隔成了很多段。咱们暂时成为列啊,那么冒号隔成了几段,每一段有特殊功能。那对于我们初学来讲,当我们拿到一个新文件以后,我不知道这个文件的格式到底什么意思,那这时候怎么办呢?咱们前面已经讲过了。
31:07
遇到这种新闻的文件不知道那怎么办呀?那是不是我们就可以慢一下了,但是慢的话呢,有个问题它在第几章里有啊。那是不是我们先要用what is看一看,我们发现第五章是不是才是我们想要的东西。因此我们要慢,我。你要不写五,是不是又跑到第一章去了?第一章就不是我们现在要看的东西了。打开这里面就记录了关于此文件的详细说明。那这不写着路径了吗?他说了,这就是个普通文本,用来描述用户登录账户信息的。那么我们有任何的读权限,谁都能读,所以谁都能读的话,你想把密码要放在这儿不就挺危险了吗?所以密码现在就不放在这儿了。
32:00
这里面存放了一些用户信息,包括什么呢?包括下面的这些字段一行。就是一个完整的用户信息,其中每一行里面它用冒号隔开了,隔成了七段,你数数是不是七段。然后每一段都有自己的功能。那其中。那我们可以看到这七个字段分别是内蒙。Password u IG GE cos啊,包括director share。那么这些都是什么意思呢?是下面就有详细说明了,所以实际上这个文件呢,大家有了慢帮助,以后自己看都看懂了,你们能看懂吧,不用我介绍了吧。不说话啥意思?默认了。相信你们还是没懂,所以我还得说一下啊好,那接下来我们来看一下,总共七个段,七个段是什么呢?实际上第一个就是用户名。
33:05
对吧,第二个是什么,第二个是口令。这个口令呢,早期的时候它真的是放口令的。后来基于安全考虑,因为这个文件呀,说实在的,任何人都能看。也不仅是入可以看,入看是可以合理的,但是作为普通用户,如果能看到的话,是不是有点不安全了,比方说王兆号他也去看一下这个文题,你看是不是也能看?那王正号是个普通用户,他也能够看到这个文件内容,如果你这儿放密码什么都泄露了,所以密码现在目前就被搬迁到别的地方去了,不过呢,这个地方因为兼容性的问题,它也得保留,所以这儿还留了这个位置,而且呢,星号或者X,如果是星号和X的话,表示密码被放在了ETC的shadow文件,也就是另外一个文件里去了,所以我们在这看到的都是。
34:01
X或者是有没有星的。这有没有星的?都是X是吧,都是X,那么X呢,表示的是密码被放在了。另外的文件中,这儿就是一个占位符了,相当于兼容了啊,然后后面呢,这个呢,就是用户的ID。用户,我们所属的这个这个用户的ID啊UID,当然咱们最早就说过,ID非常重要,ID如果为零,你就是管理员,所以大家马上就想到了,如果这个文件给改了,我把王账号ID变成零。把root账号的ID变成非零。啥意思?是不是就王就成了原来的入的身份了?哎,那么反尔入的就成了一个普通用户了,听懂了吧,所以这个东西是很容易的,就改个ID的事儿啊,我就不测了啊,大家下来有时间你可以有兴趣可以测一下。
35:01
然后第三个是ID,第四个是这个用户所属的主组的主组的ID,因为我们说了一个账号必须有一个组。而且只有一个组是它的主语。那么所以这要放这个用户所属的主组的ID号。啊,第五列是用户的描述信息。啊,就是描述,就是比方说这个人全名叫什么,这个人他这个这个电话号码是多少啊,这个人的单位是什么部门的啊,这都都可以都可以加啊,加多项的话,逗号隔开就行,那么接下来下面的这个表示它的加木。那所谓加目录就是用户账号登录之后,你看我用户账号登录之后在哪个目录里,这就是他的加,那网账号的加目录,那当然就是在home下。是吧,加。在最后这个就是share类型,那默认呢,我们发现这里面用户你要我们建的王账号,马哥账号就用的是BA share,但事实上我们发现大量的用户用的并不是share用的什么。
36:11
No logging,发现了没有?No logging no logging,那名字就透露了一个含义。是吗?不能登录,也就是说这种no log的账号是登不了系统的,你不能啥输入密码登上登不上来。啊,登不上来,那那有人说那这个账号都不能登,还有啥意义啊。系统。哎,公司里面有一个员工,他不能登录到,不能进你们公司不让进大门,你说这样的员工有用吗。有用吗?比方说有些特殊人员,特殊人员人家就不需要进大门,人家远程控制就可以,一个电话就可以让你干活。那这就是no啊,不需要登录,他可以在后台指挥你干活啊,或者后台默默的给你干活。啊,登录登录谁登录啊,只有员工才登录,只有员工才打卡上班呢,老板什么时候打过卡呀?
37:07
不需要登录是吧,畅通无阻no log,那所以这个no logging的账户呢,他们都是给一些服务用的。他们本身就不需要登录,可以做到开机自动运行程序,以这个人的身份,所以大家可以看一下我们系统中有大量的程序在运行这些程序,比方说我们刚刚装过的po fix,你看这是不是就有一个程序在运行,以谁的身份运行,就是以port fixx这个账户的身份来运行,看到没有?而part这个账户我们刚才曾经看到过,他的账户使用的ID是不是就是noing?理解了吗?所以这种账户它就是给程序用的,不是给你用户来交互登录的,那么开机的时候,这些程序背后自动就运行,它不需要人工交互的登录。
38:00
所以通常就是给服务用的,给程序用的。好了,这就是no log的这样的一个线类型,那么ETC的判这个文件的格式相信大家理解了。就七项啊,接下来还有另外一个叫C文件,C文件呢是放口令,那这里面的内容也不少,那下面咱们来说一说shadow文件的格式,Shadow文件一行也是一样,记录了一个用户的口令相关信息。当然这个用户的口令信息第一列也是用冒号,第二列冒号隔开的,那其中冒号第一个点对应的就是用户的名称。第二列就是他的口令,不过呢,显而易见,这个口令被加密了,当然像这种呢,就相当于是。保留占位符,他没设什么口令。大家可能还发现有些是叹号。
39:03
套号表示的是。口令被锁定。锁定之后,这个用户呢,将无法直接登录。啊,当然实际上呢,Positive呢,它也不需要登录,因为它是no logging,你直接登不了叹号,这是表示禁用此账户的登录能力。嗯,那两个叹号呢,就是双保险。双保险,哎,一个叹号实际上就禁用了俩叹号,那就是你得去掉俩叹号才能登。当然对post讲来讲呢,它也登不上去,因为它是顶知道吧,你即使把叹号去了,它也登不上来。好,那这是刚才我们提到的,接着第二个这是用户的加密口令,当然这个加密口令呢,它每个账户即使密码一样,加密完了以后,它的结果也不一样。这个是背后,因为有盐的视线,叫盐,叫色。
40:02
那这个盐呢,起到的就是打乱你的密码加密规则,让从表面上你看不出两个人密码一样。比方说马哥和王的密码实际上是一样的,都是马哥一丢,但是你从加密的结果上来讲,是不是看不出来它是一样的?对吧,哎,就是因为它加了盐,我们知道盐是什么,不是调味的吗?啊,虽然原材料一样,但是加点盐是不是味味味道就不一样了。对吧,有的口重一些,有的口轻一些是吧。哎,所以加上盐就不一样了,是这个意思,我们后面会单独到时候给大家说说盐怎么去加,那盐在哪呢?实际上就盐在这儿。好。这个第二个Dollar到第三个Dollar之间就是盐。这就是你看他俩的盐是不是不一样?正因为它盐不一样,所以结果就不一样了。如果盐一样,我是能让它生成的结果是一样的,这是可以啊。
41:03
好,这是刚才提到的,接着再往下第三个字段。第三个字段呢,咱们叫。密码的口令生成的时间。那你考罗利什么时候创建的,它就会记录下来这个呢?虽然是以时间为单位,但是它并不是直接的年月日十分秒。它是以天为单位。记录的天是以70年1月1号。到你改口令的有多少天,比方说我今天改的口令,那我就得算算今天到70年1月1号有多少天,把这个天数记录在此处。啊,当然,为什么又是701号啊。哎,上次我们好像在哪见过这个青年一号这个东西了。哪啊,是不是我们敲了一个data塔命令里面就有一个杠S选项,它那个就是七零当时的时间到七分一号的秒数,那7011号不是就Linux UNI,就unix诞生日嘛,是吧?所以这个也好多都是清闻一号啊。
42:12
那么这个18474表示的是我修改密码的时间是距离70年1月1号18474天。四天。当然我们看到幺四还有一个428,这个是马哥的一个用户,那大家可以看到他家他两个账户的口令呢,差了应该是有多少天呀。差了46天吧。46天,因为王账号的口令被我改过,就是上课的时候改过这个口令,实际上就是记录你当时改的。时间啊,当然我现在就想算一算,现在到70年1月1号有多少天,这个怎么算啊。那我们是不是可以用简单的百分号S算出秒来?
43:02
然后我们现在这把这个秒,然后除以什么86400,是不是就是一天的秒数。这不就可以算出有多少天了吗?是吧,再传给BC。算了吧。啊,大家看了吗?18474不就正好今天吗?那换句话说,王的口令啥时候改的,就是今天改的。不过呢,马哥的密码已经存了40多天了,那就是说他那口令是40多天改的。是吧?这就是这样的一个信息,当然如果我现在立即把马端的图片改了。改了以后你再来看一下这个文件的。马哥的时间是不是也变成了18474?就是今天改的知道吧,哎,这就变了。那么接下来后面的这个零代表着口令的最短有效期。
44:00
因为改完口令以后,口令在多长时间之内不能随便更改呢?零表示随时更改,如果把它变成三,那就意味着三天之内普通用户不能随便改自己的口令。只能用三天之后才能改。当然,Root是不受限制啊,Root可以随时改任何人的口径,包括自己的。所以零呢,表示随时可以来。那接着再往下就是五个九。五个九,那刚才我说的是最短的口令的有效期,那么五个九呢,代表的是最长的密码口令有效期最长的是意思是这个口令在长达99999这么多天之内是口令有效的。但是超了这个时间,口令就无效了。当然,由于是以天为单位,大概折算下来不到300年。是吧,那实际上也就是永久了呗,永久了。口令永久有效啊,永久有效,那么我可以把这个时间给它改短一点,比方说改成四十二天。
45:07
四十二天,那就意味着口令在使用,四十二天,就是今天改了口令以后,42天之后口令就过期了。口令过期了,那么他就会提醒你。口令提示你更改,让你改口令啊。在Windows里面,口令的最短容器默认就是四十二天。所以Windows里面如果你建个账号,如果时间比较长的话,你在登录的时候有可能就会看到口令快过期,提醒你该口令。大家见过这个界面吗?没见过是吧,没见过,那因为你用的是盗版电脑吧,啊,实际上不是啊啊,那就是用这个命令。啊,这个命令可以看这一个四十二天。真的是四十二天。但是从来没有见过口令提示我过期啊,那这四十二天是不是不起作用呢?倒也不是,是因为你可以针对某个特殊的用户来单独设置这个用户的口令效期。
46:14
那默认情况下,在这我们点属性,你可以看一下这个用户的有效期,在这儿可以单点。啊,我这边有个菜单,我自己建的,你看这有个对勾,如果这个对勾你把它点上了,它就永久不过期了,所以你们的电脑上的密码为什么不过期,就是因为有对勾。你看看你上面是不是有对勾。当然你可能用的是那个家庭版,那就没这个地方了啊。WIN10,你可以查查你的WIN10的这个计算机管理里面有一个账户管理。好,这是刚才我们提到的。
47:03
是不是有人那电脑上没有计算机管理那个用户管理那一项啊。都有吗?嗯。那没有的话,说明你用的是家庭版。家庭版是没有这个功能的。啊,我这个用的是企业版,企业版才有这个功能。好,这是刚才我们提到的密码有效期。当然了。啊,这个这个这个是振宇同学他用的就可能是家庭版,家庭版就没有那个界面,所以你们装还不装个那个是是是企业版或者什么这个呃,Professional版是吧。当然你要是正版就算了啊,如果到的话呢,随便到这个版,到个高版本。
48:09
反正也盗版了是吧。啊,看来你们都用的是正版是吧。好,那999,当然这个999呢,这个时间是比较长的,如果你真的九九九三百年过去了,他会提前七天警报口令过期。啊,但是你得活上300年之后才能看到这个趋势了啊,提前七天最后。那事实上你真想看的话也行,你把这个时间缩短一点。缩短一点不就行了吗?啊,这个是可以改的啊,提前七天。
49:00
但是七天你如果仍然不改口令。仍然不改口令,它后面还可以再加一些控制。这个控制表示的是如果,比如说我这写个十,这个十表示宽限期,如果十天你把口令还不改过了七了,还不改好十天之后。我宽限你十天,再不改,我把账户给你锁了。也就账户锁了以后,冻结了之后,用户账户旧的那个口令彻底不能登录,那么你就登录不了了。只能通知root帮你解锁,否则就登不上去了啊。还有一个字段,这个叫账户的有效期,注意这个地方都是空的,没有加,我这儿可以加,比方说我写个100。表示账户的口令有效期,这这个账户的有效期是多少多少,那这个账户呢,表示的是最多你能使用多久,当然它也是以距零七元一号多少千来算的啊。
50:02
就是这个账户创建完了以后,最多能使用多久之后就不能用了。比方说有的时候你到某些公司上班啊,尤其外包公司啊,你那边做项目,你可能也就干个一年就不在这儿了,这时候他会给你建一个账户,有效期多少多长时间,诶建上一年,一年以后账户自动就锁了,你就不能登了。哎,这就是账户的有效期,最后呢,还有一个字段,目前没有使用的,空着的啊,就保留下来,没有意义的,这就是咱们shadow文件的格式。那这个文件的属性信息,这个时间都是可以改的,咱们有一个命令可以改,比方说CH这个命令可以把这个时间根据你自己需要来改,比方说我们改王的,如果你不想改,可以先看,因为杠L可以看。看到的内容,他就是把王这个口令的信息做了一个解释,看到了展示出来了,大家看到是不是口令啥时候改的,是不是刚才要改的。
51:06
是吧,然后口令什么时候过期呀,999不是永不过期吗?对吧,那密码有没有一个。呃,宽限期呀,没有宽限期账户会不会过期呀,也不过期,因为都是空的嘛,这都是空的,但是我们可以加呀,啊我们可以改呀,那怎么改呢?直接这么改就行了,往后面直接改,改的时候你看最短密码有效期三天,最长密码有效期四十二天。啊,什么时候改的口令啊,比方说我们就是2020年,因为它的格式必须按照这个格式写啊,比方说我们是一月。嗯,现在是七月是吧,比方说六月。一号1月1号。啊,那这就是。两个月前改的口令。大家想两个月前改的口令密码有效期是四十二天,是不是已经过期了?
52:05
是不是?这不就7月31号了吗,今天。对吧,四十二天有效期,那么他不是提前七天吗。那提前七天通知你,那实际上早就过了。啊,这个宽限期我先不设,这两个我都不设啊,这个账户有效期可以设一下,比方说2021年。这个十月,呃,20号。好了,那现在我们实际上改了什么呢?实际上就是把这个文件的内容进行了修改。啊,大家看是不是改了这些东西了。你看我们现在刚才改了三三对应的哪,是不是就这。那这个这个,呃,42对应的是不是就是这个。最长有效期对吧,然后这个是账户的有效期。是2021年的10月20号。
53:00
啊七我没动,还在这儿。当然这个账户呢,应该口令已经过期了,因为什么四十二天有效,我什么时候改的口令呢,是18414 18414呢,就是20年8月1号改的,那么距离今天已经超过了四十二天。啊,所以提前七天那应该到了,所以这个账户呢,口令登录呢,它就会提醒你过期了,那现在咱们就可以拿忙账号来登录一下,来试一试,我退出重新登录。输入他的口令。看到没?所以你的口令是不是已经过期了,请你立即修改。更新口令。在改的时候还得输一遍旧口令。再输两遍新口令,这个新口令不能设简单了,它要求复杂性,要求。要足够长。啊,这样就改了,改了以后在这边我们回来再看一下。
54:08
啊,这个口令就是刚刚被我改过的。啊,当然这个口令的时间又可以从现在开始往后续了。42天之后才过期啊,这就是更改口令的。这样的一个情况。那。C文件和帕达利文件,那我们就给大家介绍完了啊,注意我们新建的用户默认情况下,新建的用户口令是空的,如果是口令空。他为了确保口令不能为空,直接登录,它就会在新建用户的前面呢,把口令设成两个叹号。表示锁定该用户的登录,所以新建用户口令进入空,它也不能登,但是实际上要想登也简单,你把这个文件打开,改了它,比方说我能不能把王兆华的口令给他设成。
55:05
把这个地方口令给他删了呀,删了的话是不是就成了一个空口令了。空口令他能登录吗?啊,我在这儿能不能把这个王账号,比方说呃,我们改马哥吧,把这个马哥账号的口令给他删清空了。清空了空口令,他能登录吗?那我们来试试封口令能否登录系统?成功了吧,哎,知道吧,所以不是空口令,不允许登啊。是允许登的。好,这是C文件,那接下来我们还有组。组呢,存放的就是这个组的信息了。
56:02
那刚才我们提到了生成用户的。口令,这个口令呢,在生产中大家一定要记住,设的要足够长。不要设太简单。太简单的话,容易被别人猜到。啊,设一个复杂的口令,咱们生活中大家可能也有各个网站的这个用户口令。你们的口令?怎么设的呀,设的复杂不复杂呀,里面是不是有大小写呀,数字啊,字母啊,下划线呀,特殊符号啊。是吧,这个李总设的是123456是吧?啊,明明不是吧啊,你的QQ用123450能登录吗。那所以我们设密码呢,一定是在生产中设一些,尽可能的安全一点啊,当然大家的虚拟机可能设的是这个是吧,123456省事啊。
57:04
口令呢,设可的最好的安全一点,然后大小大小写特殊符号加上。嗯。这样的话呢,破解口令就非常困难了,那在我们这边呢,有一个生成随机口令的一些方法。啊,比方说TRTR命令,这个命令是不是我们已经用过了,这命令是不是就是从DV DV now这个文件设备里面把除了数字字母以外的符号删掉。当然我们只留一部分就行,所以呢,后面再加个had had呢是可以取前几个字母。这个是全12个,也就是说每次执行我从随机四伏里面取12个。作为我的密码,你看每次执行它都不一样,这是不是当新口令挺安全呀?你自己也记不住是吧。啊,所以有些同学在有些工作里面,单位的同事密码设的很复杂,结果自己也记不住,所以就写个条贴在屏幕上。
58:06
每次照着屏幕敲,这个不是笑话,有些事业单位就这么干。就是行政那个政府有的岁数大了,他五六十岁了,他也记不住啊,那那个键盘都二禅敲呢,你让他敲密码,他记不住,所以他就这么把密码切在屏幕上,贴在屏幕上。啊,这个命令呢,也可以,它可以生成。哎,大家看这个生成的是多少。12个,12个,12个的话也加够用,你看每次都是随机的。而且它里面还带加号斜杠。
59:01
所以这样的话呢,当口令就更安全了。哎,随机字符。当然,随机字符,缺点就是你自己也记不住。不行了怎么办啊,拿个小本抄上。然后这个本上面记录的你的密码,结果本丢了是吧,本丢了别人捡着了。所以这个口令这个事儿啊,确实是不好解决的,所以现在很多人都不愿意用口令了,用什么指纹验证。用刷脸是吧,这样来解决。但刷脸实际上指纹啊,这有问题的。所以这个生物验证这个东西表面上很安全,但是一旦被破解了就麻烦了,比方说你的指纹被别人盗取了。现在不是有一种纸膜吗?可以,可以把你的指纹录下来,做成模模型,那就可以冒充你。
60:01
那当然这时候就惨了。你不能说为了。破取对方的破这个这个指膜,你换个指,换个换个手指头,指纹换一换吧,要不指头剁了呗,所以这个就比较麻烦了,要不就别人盗取了你的脸膜,难道你去整容吗?呃,这边有一个网站啊,这个网站可以,当然网上到处都有这个网站,很多这个网站可以生成随机口令。那所以呢,如果说你想生成口令,你也不用自己去,你自己在这写就行了,比方说大小写字母,数字,特殊符号,要不要,不要的话呢,你就选要多少位,然后说我们选什么十位啪一点,这时候就生成一个随机口令了。是吧,每次生成都不一样,这是不是就可以当口令?当然你随成的口令,你相信这个网站吗?是吧?这个网站是不是记录了你生成的口令?
61:03
那你要是在自己内部用可以,你不在联网上可以。联网的话呢,就不安全了。另外呢,这儿还有一个叫group相关的两个文件,这两个文件呢和组相关,组相关,那我们组相对来讲呢,和用户账户来比,组用的就相对少一些了。组呢,对应的也有两个文件,一个叫ETC的group,一个是ETC的GC,这两个文件的格式呢,我们大体了解一下就行了。先来看一下ETC的group。ETC group存放的是组信息,一行就是一个组的信息。记,第一个是组的名称,第二个组的口令,当然这个组的口令也不放在这儿了,放在了另外一个文件中,叫G。所以这呢是一个占位符,然后这儿代表着组的ID,组的ID最后一个呢,表示组的成员。
62:05
就是哪些账号,你看大家注意到这儿了吗。你看这是不是有个组叫mail,这个组里面有谁有两个用户是他的成员?啊和exim这两个呢,都属于缪组的成员。当然,这个组的成员指的是附加组。附加组,也就是说这两个用户把没有组不是组组是把它当成了附加组。从属组。明白吧,哎,这就是组的。当然,大家可能也有点儿奇怪,组这个地方怎么还有口令啊?大家在Windows里对主摄入口令吗?听说过Windows里对组来设口令这个概念吗?好像不怎么听说。Windows里对组没有口令,Windows里对用户才有口口令,那么组的口令到底干嘛用的呢?组的口令可以起到这样的功能,我们把一个用户可以加到某个组里。
63:05
那就相当于赋予了这个人的权限,因为他会继承这个组的权限,那么加组,把用户加到组里,谁来加?那就是管理员来加。但是我们还可以提供另一种方法,就是让这个用户自己往组里加,加的话怎么加?就是你只要知道组的口令就可以了。你只要知道这个组的口令,我就可以把自己人为的加到这个组里,明白了吗?这就是。主的口令所在,不过呢?这个一般来讲咱们不用,因为这个太危险,那一旦暴露了密码,他是不是就把自己加到组里了啊。所以公司里面你说把一个人想调到哪个部门里,这是说自己知道口令就能加的吗?这显而易见,不,不应该,这是不是应该是必须是领导批准之后才能加是吧?啊不是说你想加哪加哪哎。所以这个东西密码很少用,当然还有一个文件,就是放组的口令的,就是G。
64:04
那我们刚才看到一个shadow文件,那现在多了个G,那这是不是就是组的口令,但是说到shadow呢,这个单词是什么意思啊。筛到这个意思是什么意思?是阴影的意思啊,那为什么他把这个组的口令其实也叫shadow,用户的口令也是shadow。因为密码吗?密码不放在阴影里,难道你还放在光天化日之下吗?是吧,不就这意思,为了安全嘛啊,所以起的名字也起了这个意思,那么这个里面设的这个机械的格式呢,跟。Group有些是类似的,比方说这个是组的名称,组的密码,当然我们一般不组没有设密码。第三项呢,组的管理员列表,组的管理列表什么意思呢?就是我们可以这加几个账户,比方说王马哥逗号隔开,那么一旦加上以后,王和马哥是可以管理入的组的成员关系的,换句话说,他可以把人加到组里,也可以把它踢出去。
65:08
这就是组的管理员,明了吧?哎,当然一般来讲空着空着那就是没有组的管理员,那就是入来干这活了。最后这个是组的什么?组的所谓的成员,这个最后一个字段和刚才说的ETC group的功能是一模一样。所以如果你要手工的把一个用户加到组里的话,一定要确保这两个文件都得有。因为他们最后一个字段的功能是一样的,你看这是不是一模一样,人家。还记得吧,如果不一样,就会导致这个组成员关系混乱,错误啊。当然我们一般也不会手工改这两个文,这几个文件,因为改这个文件的话容易造成错误,格式错误,所以我们管管理用户也好,管理组也好,虽然我们知道了这四个文件的格式,我们一般也不会去改它。改的话容易改错了,一般都是通过命令来自动的去间接改这个文件的。
66:05
那么我们去查看用户的时候,查看组的时候,我们直接去操纵这些文件是可以的,事实上还可以用另外一个命令,这个命令叫get int,后面跟上四个文件的名称,它允许你去看这四个文件的内容。你可以这么这么写,当然一般来讲我们就写一个就行了,不是写两个就就写一个,你看你写partd就看partb,你写group就看group,你写shadow去看理解了吗?哎,它可以相当于直接读取,而且它还有个功能,就是可以过滤出我们想要的那个用户或者组,比方说我只想看王,那我就加王。是不是就可以挑出王内行?对吧,哎,那你要是想看组,比方说我们就想看那个包组。啊或者谬组,你看就只看谬。
67:04
对了吧,这样的话是不是就挺省事,你可以相当于过滤了,只看哪个,这就是四个文件的格式。那么对四个文件格式了解了之后,接下来我们就可以来操作用户和组了,不过呢,就需要我们掌握一些命令,这个命令的用法,我们稍微休息一会儿,待会儿回来啊。
我来说两句