00:00
好,接下来呢,我们要介绍的就是另外一大块儿内容了,这是Linux里边关于用户管理相关的一些命令啊,其实我们知道Linux系统呢,它本身是一个多用户多任务的分时操作系统啊,所以它里边。可能会有很多人都用同一台机器要进行操作,甚至有可能还是同时登录同时操作,所以这个人一多啊,我们当然就要进行很好的管理才行了,要不然不就乱了吗?所以必须对于不同的用户给予他们一个相应的身份啊,那也就是说给他一个特别的账号,这个账号呢,我们可以设置自己的密码,然后就会有着不同的权限。用户想要登录系统的时候,那就用自己给分配的这个账号去登录系统,然后就可以获取到不同的系统资源了,诶这就是我们这个用户管理的一个基本的思想,所以接下来我们所要学习的这些命令都必须是以系统的超级管理员root的身份去进行一个操作啊,要不然的话,那一般的用户当然是不可能去对于其他的普通用户进行管理。
01:13
接下来首先最简单的管理用户的操作,当然就是先增加一个新用户了,比方说我们在实际呃,在这个公司里边啊,在进行开发的过程当中,我们组里边来了一个新人,那这个时候呢,他当然要对于我们当前的某个服务器可能需要有相应的权限,那这个时候呢,我们就创建一个新的用户,把它加进。这个命令也非常简单,直接就是user a加进来就可以了,后面跟着的就是用户的名称。那另外还有一种添加的方式呢,是加上一个杠G选项后面跟着的是组名,也就是说我们当前这个用户呢,他可以分组啊,就是我直接加添加这个用户的时候,直接就把它归到哪一个分组里面去了,这这种方式也是可以。
02:00
那关于这个用户组的管理呢,后面下面一节我们还会再去详细介绍,这里就不详细展开了,好,那接下来呢,我们就在命令行里边去实际操作一下,看看怎么样去添加用户,首先我们先回忆一下当前系统里边到底有几个用户,诶,那首先当然就是我们登录进来的这个身份啊,是root用户,当前的系统超级管理员,除了root之外,另外还有一个用户叫做。At硅谷,哎,那是我们安装系统的时候就已经创建了一个普通用户,那root它的主目录呢,就是杠root这样一个路径。而普通用户,之前我们说过,他们的主目录登录进来之后,都应该在杠后下边有自己对应的,相对应的每一个用户有一个主目录,比方说艾特硅谷,那么我们就可以到后下边去。看到这里就有一个艾特硅谷目录,这就是艾特硅谷这个用户的主目录。我们现在已经有这样的两个用户了,接下来呢,我们再去创建一个普通用户,那就是user a。
03:06
创建啊,我们现在创建一个比方说就叫做托尼吧,来了一个托尼老师。接下来我们看一看有什么变化。当前的home目录下边就多了一个叫做托尼的文件夹。这就是我们当前托尼这个新用户,他的主目录,如果我们以托尼的身份登录进来的话,他就会进入到托尼这个目录下面去。啊,所以我们就会发现了,对于Linux系统而言,所有新创建的用户,普通用户。那么他们都会在后。目录下边去创建一个自己的主文件夹,或者叫主目录。这是关于呃,创建一个新用户的最简单最通常的做法,那当然了,对于他的这个主目录啊,也是可以改变他的名字,我们可以直接使用这个。MV命令,直接去给他做一个重命名,也可以在创建的时候直接就对当前用户的主文件夹做一个重命名,哎,这个相当于要加一个对应的选项了啊,比方说我们现在再去添加一个新用户。
04:15
又来了一个叫David的老师啊,那当前呢,我们就给他改一个主文件夹的名字,不要叫David的老叫什么呢?加一个杠D选项。后面跟着的就是它的对应的主文件夹,主目录的位置和名称啊,我们还是放在后面,下边不要叫David了,就叫DA吧,DA啊,所以接下来我们再来看一眼的话,后面下边多的这个目录就叫做Dave,而不再是David。这里我们需要注意的是,当前的用户名字还是叫David啊,就是我们如果要是登录啊,退出去之后,在外面登录的话,还是名字给的是David,而进来之后它的主文件夹叫做DA。这两者是不一样的啊,用户名和它的主目录。
05:04
这就是创建一个用户的过程啊,那当然了,创建了用户,当前他还没密码,那没密码这是不安全的,所以我们还得给新创建的用户设置一个密码。设置密码的命令呢,也非常简单,Password啊,好,密码英文不就是password吗?呃,Password吗?所以接下来我们敲的就是password,要简写WD啊,所以它是pas swd,后边跟上我们要设置密码的用户就可以了,比方说托尼,给托尼设置一个密码啊,我们要更改用户Tony的密码,新的密码123456,诶,我们看到这里密码是不会显示出来的,我们直接输完了之后回车就可以。好,这里它显示了一个说这是一个无效的密码,因为密码少于八个字符,因为我们设的太简单了,出于安全性的考虑,最好不要这么设,但是呢,就我我们这里边设成这个其实也是没问题的啊,Linux是认这个密码的。
06:00
接下来呢,你要重新输入密码,注意这个并不是说之前那个已经不能用了啊,你重新再输一次刚才输过的123456就可以了,我还是输入123456,哎,当然你如果要输一个八个字符以上的更好啊。诶,现在就已经更新了,所以接下来如果说我们想要去以Tony的身份做一个重连的话,其实也是可以的啊,比方说我现在啊,直接去新建一个连接,比方说当前的这个连接就是哈杜100。只不过我们当前以的这个身份是Pony的身份,那当然了,下面的主机还是哈100,我们现在需要去重新设置一下用户的身份验证,那用户名是托尼啊,那下面的密码123456,好,接下来我们直接可以去做一个连接。哎,那我们看直接现在就连进来了啊,因为我没有改当前的这个外观啊,所以它是黑屏,我们看现在的。用户连进来的就是托尼,那现在它的主目录是什么呢?当然就是后下边的托尼了。
07:06
那同样道理,我们这里还可以再给一个。Password对David去做一个密码的设置啊,比方说这个我们给的多一点啊,12345678诶。那我们看现在他还是说这个无效密码,尽管字符够多了,但是过于简化系统化了啊,还是不安全,没关系,12345678,我们输进去,现在输好了之后,我们同样可以去新建一个连接,这个我们还是叫做哈杜。100啊,那接下来后边给一个当前这个用户是David,那主机名这个不要加上,把它删掉。同样,接下来给一个用户身份的验证,我们给的是David。12345678,好,接下来做一个连接,哎,我们看这个就完全没有问题,它连接进来之后,它的主目录是什么呢?当然就是后下边的D。
08:00
哎,这就是我们所说的这个每一个用户啊,不同用户去登录去连接,现在我们这就是一个多用户的多任务的这样一个分时连接啊,每个用户登录进来都可以进行操作的这样一个状态。好,当然了,接下来我们就啊,不需要还是把这个托尼和戴维的登录上去啊,如果想要做别的操作的时候,我们再切过来就可以了啊。这个我们就直接可以退出了,那我们看当前就已经登出,相当于就注销掉当前用户了啊,我们可以把这个关掉。接下来我们还是以root的身份在这里去做一些用户的管理操作。那前面我们已经创建了新的用户,那我们怎么样去查看一下,诶,当前某一个用户到底存在不存在呢?诶比如说我们刚才啊,已经把这个托尼用户创建出来,而且设了这个密码了,呃,理论上肯定是存在的,我们都用它去登录了嘛,那假如说我们没有登录过,想快速知道它有没有这个用户怎么办呢?哎,可以用这样一个命令ID。
09:00
ID就是身份嘛,看看这个身份到底有没有,哎,那就是托尼,我们看一下。当前就可以显示它的UIDID,我们就想到了这是user ID用户的ID,他的ID是1001,名字是托尼。然后还有一个GID,这个JID是什么呢?诶JD其实就是它的用户组的group ID,用户组的ID也是1001,诶,那么这个组也叫做Tony啊,呃,对应的后面我们看到组等于1001TONY,所以这其实就是当前Tony这个用户他所有的所属信息,关于用户组后面我们再说啊,那同样对应的还有David。David,我们知道,哎,那对应的它是1002对吧,编号是依次往后去追加的。那既然有了Tony和David,那我们就感兴趣的是,那之前不是有一个主目录叫Dave吗?那Dave这个用户存在吗?诶,我们看没有这样一个用户,他只是David的这个用户的主文件夹的名称而已啊,这就是用ID去这个命令啊,去验证一个用户是否存在。
10:12
然后那我们就想到了,那你这只能是单个的去验证啊,我现在就想看到当前系统里边到底一共有多少用户,能不能一下子把这个列表都展示出来。也是可以的,只不过这个呢,我们就要去查看一个文件了,我们可以看到这个文件就是在配置文件里边,ETC下边有一个叫做。就像我们设置密码的那个名名称一样啊,Pas swd password啊,在这个配置文件里边我们就可以看,查看当前系统里边到底创建了哪些用户,我们可以看,当然这个配置文件本身也是可以改的啊,因为我们是超级管理员嘛,但是一般我们不要改,所以用cat这种方式去查看就可以了啊,那你如果想要用这个分屏的这种方式,More或者less的话,也是可以的啊,比方说less。
11:00
ETC,然后PASSWD,哎,我们看到接下来我们就可以逐个去查看最上面我们看到的,诶,那就是root。这个就有了,然后下面我们看到有一堆其他的用户,这些用户好像我们都从来没见过,没什么用,这些是干啥的呢?诶注意啊,这里的大多数非常多的这些用户。大部分都是系统中默认创建出来的,比方说b demon a DM啊,对应的这些还有think,你看还有这个shut shut down hot啊,没有,呃,各种各样的都是跟系统服务相关的,这些用户就是单独创建出来用来运行相应的系统服务的。所以说这些用户呢,一般被称为系统用户,或者叫伪用户,就是它并不能作为真正用户的身份去登录,它就是用来去运行系统里边的服务啊,所以这些用户呢,我们也不要去删它,要万一删了的话,有可能系统就不能正常运行了啊,所以就是一般情况下不要改啊。
12:06
那当然了,我们更感兴趣的是刚才创建出来的那些用户,那那些用户在哪呢?其实我们看后面这个数字也能看得出来,这里有零,零,这是啥呢?一一,很显然这就是当前这个UID嘛,啊,那后面跟着的肯定就是它的组ID了啊,JID啊,所以当前root默认第一个用户零,它的编号是零啊,那后面就是1234,这就有了啊,当然中间可能有一些编号是空着的啊,系统给预留出来的,那我们真正刚才自己创建出来的普通用户在哪呢?诶,直接shift加J跳到最后去看,到and这里去看,诶,我们看到了at硅谷。哎,后面我们那个托尼不是从1001开始的吗?是因为艾特硅谷自定义的普通用户就是从1000开始的,他的UID是1000,那后面托尼1001 david1002就全列在最后面啊,那当然了,后面还有还有什么呢?诶这里我们看到啊,对应的这里就是它的。
13:05
主目录它的加目录,那这里at硅谷,Home下面的at硅Tony home下面to Tony,那如果是David的话,我们改了它的主目录名称,所以是home下面的DA。后面还有一个b dash,这什么意思呢?哎,这就是当前每一个用户用来登录系统,跟系统进行交互的方式,它通过哪一个进程去进行交互呢?当然都是一个我们当前的这个shell了,我们当前使用的shell就是bash对吧?Bash啊,或者有些人可能把它叫做BASHE啊啊,那一般情况我们直接把它叫做bash就可以了。啊,那那前面你看到这些很多系统用户,他们的这个跟系统交互的方式都是都log啊,当前是不用去登录的啊,他他自己本身默认就是运行系统服务的。这就是我们可以查看到当前系统里边的所有用户。好,按Q可以退出。
14:01
呃,那除了当前我们查看所有的用户呢,啊,那有同学可能就想到了,我能不能在当前的这个绘画里边直接去切换另外一个用户身份呢。诶,当然是可以的啊,一种方式就是你重新去连接嘛,对吧,新创建一个连接,以托尼的身份,以David的身份连接,当然是没有问题,或者呢,我也可以在当前这个会话窗口里边,把当前root用户做一个lockout,把它这个相当于注销掉,然后再重新以别的用户的身份去登录,也是可以的。那有没有更加快速的,我不用注销root也能直接切过去呢?因为你当前这个root他不是超级管理员吗?理论上他的身份不是随便跳转吗?想跳到谁跳到谁吗?哎,是可以的啊,这个命令呢,非常强大,叫做Su。就是Switch user。所谓的切换用户。这样的一个操作。Switch user。后面只要跟上你想跳转的用户名称就可以了啊,所以这里边其实非常简单,就是后面啊,我想跳成艾特硅谷,那直接跟上艾特硅谷,我们看接下来前面当前登陆的状态就变成了艾特硅谷了啊,当前的这个位置还在后下边。
15:16
如果我们直接去CD到波浪线跳转到自己的主目录的话,现在WD一下,我们看到跳转到的就是后下边的at硅谷啊啊那。当然了,从这个root用户跳转到其他用户的话,这个我们是不需要输入密码直接就过来了,那假如说我们以一个普通用户的身份,现在要跳转到Tony,诶,我们看它是提示你必须要输入密码。普通用户,你们彼此都是平等的嘛,你不知道密码,当然是不能跳转了,所以这里我输入123456,诶,现在我就又以托尼的身份跳转到这里了。在托尼这里,我看当前的目录是艾特硅谷对吧?哎,那如果我LS一下,你会发现它其实是无法打开的。权限不够,哎,这个其实很好理解,因为你是托尼的身份吧,你跟艾特硅谷两者都是平等的,那你怎么能随便看别人的东西,改别人的东西呢?诶,所以这个权限是不够的啊,关于这个权限后面我们可以再详细展开说啊,那当然了,这个Tony如果说我们现在要CD到他的主目录的话,就会看到跳转到的就是后下边的Tony目录了啊,David这个用户也是同样的啊,这个都非常的简单。
16:28
那假如说我们想要再跳转回root,那怎么办呢?诶,一种方式是我可以速。就是Su啊SUSO直接到root用户去,当然这个你必须要输入root的密码才可以,那那这里我可以直接CTRLC把它先先退出来,我不输密码不跳转,那因为我之前就是从入跳转过来的嘛,能不能快速的切回去呢?啊,其实也可以啊,就当前其实我们这个用户的切换跳转,它是会画的一个层层嵌套,就本来我开启的是一个当前root的用户的一个连接会话,在这个连接会话里呢,我做了一个跳转之后,嵌套了一个艾特硅谷这个用户的会话。
17:11
然后基于这个艾特,硅谷又做了一次跳转,又嵌套了一个当前托尼用户的会话。所以接下来呢,我其实可以层层返回,层层退出托尼的会话,如果我把它结束掉,直接exit退出,那么就会回退到艾特硅谷这个用户的会话,同样艾特硅谷这个会话再退出,就会退到原来root登录的状态那个会话里面。我们可以看一下就在这儿啊,直接exit诶我们看现在直接就退回到艾特硅谷这个用户来了。这个就完全没有问题了,当然如果你在这里的话,直接LS的话。你会发现啊,当前我如果是在这个艾特硅谷目录下的话,当然它就可以直接打开了。你如果想要去看,我们回退到上一层菜单,如果想要看托尼它的主目录的话,同样它的权限也是不够的。
18:05
那如果我们再退一层exit,再做一个退出exit,那现在就回退到最一开始的root,登录进来之后的那个绘画,那现在当然他就有所有的权限去查看了。当前Pony的目录也是可以看的啊,那艾特硅谷的目录也是可以看,这是超级管理员嘛。那这个过程大家可能就会发现,哇,这个跳来跳去这就有点麻烦了,诶那假如说我跳着跳着根本就不知道当前是哪个用户了,也不知道他这个层级关系了,那怎么办呢?诶那另外还有一个命令,你可以知道当前用户的身份是什么。这个命令就叫做who啊,当然了,后面可以直接加上一个非常简单的操作,WHOAMI,问一下我是谁?一个非常终极的哲学问题,我到底是谁啊,Who mi,那我们看到当前当然就是root用户了,这个who mi其实还可以简写,因为你看到这个root,它其实后面我们会看到啊,这相当于这是一个类似于进程的监控信息啊,所以它其实呢,可以直接把这个户外卖连在一起,户外卖。
19:12
这个显示的就只是当前登录的用户的名称。这里需要大家注意的是,如果我切换到另外一个用户,比方说切换到David。切换过来之后,如果我直接敲who mi连在一起的话,哎,当前显示的这是单位,但是如果我敲分开的who mi的话。大家其实会发现它还是root。因为我当前还是基于root用户创建的一个会话这个进程,其实还是root登录进来的,哎,所以大家会发现啊,它原始的是root的话,那你在这里不管跳转多少次啊,比方说我再跳转到托尼那里去。这里输入123456。然后我们看一下who mi。
20:01
我们看到还是root哦,那当然你如果要是连在一起去敲的话,那就变成了Tony了,所以这个大家要区分开来啊,啊,就这两个命令展示的时候,如果中间有空格拆开,这其实可以认为查看的是最原始登录进来的,我们创建会话的时候,最外层的这个用户到底是谁?啊,那如果说是直接放在一起的户外卖的话,考察的就是当前具体这个绘画目前使用的身份到底是谁啊?所以我是谁?这是一个值得思考的哲学问题啊,大家一定要把这个命令搞清楚。
我来说两句