本章学习目标:
Linux操作系统是多用户、多任务系统——即允许多个用户同时登陆Linux系统并启动多个任务(有的用户是远程登录)。用户帐号和用户组是进行身分鉴别和权限控制的基础,身分鉴定的目的是规定什么人可以步入系统,而权限控制的目的则是规定步入系统的用户能做什么操作。
多用户系统
一个安装好的并且没有启动的Linux系统是静态的系统,静态的Linux系统通常由根分区上的文件、目录和交换分区组成,内容不会发生改变。而启动的Linux系统成为动态的西永,动态的Linux系统通常由根分区上的文件、目录和虚拟显存(含交换区和化学显存)中的进程组成,动态系统里的显存会时刻发生变化。
动态的Linux系统(多用户运行级别)准许早已注册的用户登入
所谓的多用户系统就是指一台计算机启动后,允许多个用户同时登陆并使用计算机,最常见的反例就是好多用户通过网路远程登录到一台运行Linux的计算机
用户和组的概念用户的概念
有的人喜欢说“用户”,有的人喜欢说“账号”,再Linux系统中,她们是指同一个概念:使用Linux系统的人,他的信息必须事先早已在Linux系统中登记好,
在Linux中,创建(即登记)一个用户时须要提供如下信息:
1、用户名:也叫帐号,合法的帐号由AZ,az,09,-和_组成,帐号厚度介于132.在Linux系统中用户名是惟一的,用户名主要用于身分鉴定。
2、口令:或称为密码,主要用于身分鉴定,一个好的口令最好同时包含大小写字母、数字和其他字符,厚度建议小于6注意:密码中字符的大小写是由分辨的
3、用户ID号:简称为UID,如同人的身分证号,
4、组:每一个用户只能归属于一个主要组群,并且可以同时归属于多个附加组群。给用户分组主要是易于管理同一类用户的权限,比如赋于一个组某种权限,这么这个组所有的用户手动拥有该权限
5、家目录:使用户登陆以后默认步入的目录,假若不非常指定,用户的家目录就是/home/,比如创建用户Gremmie102,这么默认的家目录就是/home/Gremmie102。root用户的家目录有些非常,默认是/root
6、登录shell:用户登陆Linux的过程中,会手动执行一系列的程序,其中最后执行的那种程序成为shell程序。shell以为“壳”,可以想像为包裹在Linux系统外边的壳,用户登陆以后就仍然在这个壳中,用户输入的任何命令都由Shell代为执行
7、备注:对用户的描述,这个可以省略
那些用户信息主要保存在文件/etc/passwd中,加密之后的密码保存在文件/etc/shadow中。/etc/passwd每一行对应一个用户,格式如下。
用户名:密码:UID:GID:备注:家目录:登陆shell
每位参数之间用“:”分开,其中的“密码”都用x来表示,GID是该用户的主要组群的组号。
比如/etc/passwd文件中由如下一行:
从前面这一行可以获得这种信息:用户名是Gremmie3,密码的位置出现x是表示加密后的密码串错置于/etc/shadow中,用户ID号是1000,隶属主要部族1000号,用户的家目录是/home/Gremmie2003,登陆Shell是bin/bash,没有备注信息。
同样/etc/shadow也是一行对应一个用户,格式如下:
帐号:密码:最后一次修改密码的日期:密码有效期最少天数:密码有效期最多的天数:密码更改警告期:密码禁用期:帐号过期日期:保留数组
1、密码:经过加密过后的密文。这些加密算法是不可逆的,也就是说不能从密文反推出原始密码。在用户登入校准密码时,Linux系统采用相同的加密方式对用户登入时输入的密码进行加密得到密文,之后通过比较两份密文是否相同来判定密码输入是否正确,这儿图中的叹号则表示还未设置密码
2、上一次修改密码的日期:具体表现为从1970年1月1日以来的天数。诸如在2022年3月26日更改过密码,这么这儿就是19077.
3、密码有效期最少天数:即先前更改密码以后要过多少天以后才准许再度更改密码。倘若为0或则空表示没有显示,即可随时更改密码。
4、密码有效期最多天数:即多少天前必须更改密码,假如过了有效期最多天数还没有更改密码,这么下一次用户登入时提示用户必须更改密码;为空则表示没有限制,同时也没有密码更改警告期;假如密码有效期最多天数大于密码有效期最少天数,这么用户不能更改密码。
5、密码更改警告期:即开始不断地通知用户要更改密码,倘若为0或则空则不通知
6、密码警用期:过了密码有效期最多天数假如一直没有更改密码,则步入密码禁用期,在禁用期内,用户登入时要求强行更改密码。过了禁用期,这么帐号就完全冻结了linux查看进程,冻结的帐号经过解冻以后就可以继续使用
7、账号过期日期:表示为从1970年1月1日以来的天数,为空则表示没有限制。帐号过期以后不能再使用了。诸如准备让帐号在2022年3月26日失效,这么这儿的值就是19077.
参数之间的关系表示为:
Linux系统的用户分为3类,分别是超级用户root、系统用户和普通用户。在安装系统时默认创建超级用户root,root的权利没有限制,它的UID和GID都是0.
超级用户的作用是管理系统,比如创建用户、给硬碟分区、配置网路等。系统用户主要拿来启动服务或则用作一些特殊权限控制,系统用户的权限收到限制,系统用户也是在安装Linux或则应用软件时手动创建的,它们得到UID大于1000,系统用户不能登入。普通用户也是由超级用户root创建并分配给Linux系统的使用者实验名称:linux用户管理,权限有限制实验名称:linux用户管理,使用者用普通用户登陆以完成她们的日常工作,普通用户的UID通常小于等于1000.
组的概念
Linux下组群的概念如下:
一个用户必须且只能属于一个主要组群,而且可以属于0个或则多个附加组群,一个组群可以包含0个或则多个用户。诸如我是北京医科学院的一个中学生,我只能属于21生物信息班(主要部族),但我可以同时加入计算机设和音乐社(附加组群)。
用户和组的管理
用户和组的管理包括创建、删除、修改属性、修改密码等。具体操作可以采用可视化的图形界面形式,也可以采用命令形式,这儿重点介绍前者。Linux下的命令句型为:
“命令”是拿来操纵“目标”的,这么如何操纵呢?这是由“选项”规定的。因为可能存在多个选项,所以选项采用“-[参数]”或者“-[参数]”的方式,比如创建用户Gremmie102的命令为:useradd-u1007-d/home/zbc–shell/bin/bashGremmie102
命令是useradd,目标是Gremmie102,选项是-u1007-d/home/zbc–shell/bin/bash
文件/etc/login.defs定义了组群和用户的默认属性,在创建用户和组的时侯,假如没有给出相对应的参数,这么就去默认值。主要参数如下:
序号参数默认值说明
PASS_MAX_DAYS
99999
密码有效期最多多少天
PASS_MIN_DAYS
密码有效期最少多少天
PASS_WARN_AGE
密码警告十七,密码到期前7天发出警告
PASS_MIN_LEN
密码最小宽度,即密码必须少于5个字符
UID_MIN
1000
创建用户时默认选择的UID最小值
UID_MAX
60000
创建用户时默认选择的UID最大值
GID_MAX
1000
创建组群时默认选择的GID最小值
GID_MIN
60000
创建组群时默认选择的GID最大值
组的管理
我们可以借助groupadd--help、groupdel--help、groupmod--help来查询相关的命令说明
创建组
(1)创建组群class1:groupaddclass1
(2)创建组群grade2且指定GID为555:groupadd-g555grade2
(3)创建早已存在的组群root的别称组群administrators:groupadd-g0-oadministrators
注意:只能创建不存在的组群。新建的组信息保存在/etc/group中linux操作系统介绍,可以采用more或cat命令查看,比如
cat/etc/group
删掉组群
删掉组群class1:groupdelclass1
注意:只能删掉早已存在的空组群,也就是组里没有用户成员
更改组群的属性更改组群sales的组号(GID)为1650:groupmod-g1650sales更改组群sales的组群名为sales1:groupmod-nsales1sales用一条命令完成上述两个任务:groupmod-g1650-nsales1sales
注意:只能更改早已存在的组群属性。
查看组群的信息
查看文件/etc/group的内容即可,可以采用cat、more、tail等命令进行查看
(1)查看文件/etc/group的末尾10行:tail/etc/group
(2)翻页显示/etc/group的信息:more/etc/group
用户管理
同样,我们可以用useradd--help、userdel--help、usermod--help来查询命令信息
创建用户
我们经常用到这几个选项
-d,--home-dirHOME_DIRhomedirectoryofthenewaccount
-m,--create-homecreatetheuser’shomedirectory
-g,--gidGROUPnameorIDoftheprimarygroupofthenewaccount
-s,--shellSHELLloginshellofthenewaccount
在你的创建的classmates中加入一个称作bingdundun的用户
useradd-m-gclassmatesbingdwendwen
useradd-m-gclassmates-s/bin/bashbingdwendwen
删掉用户
userdel-rbingdundun删掉用户bingdundun
userdel-rbingdundun删掉用户bingdundun,连同家目录一起删掉
userdel-f-rbingdundun强行删掉用户bingdundun,虽然此用户早已登陆
注意,只能删掉早已存在的用户
更改用户属性
uesermod-d/opt/bingdundun-s/bin/tcsh
更改用户的家目录和登陆的shell
usermod-ggrade1-Gclass2-abingdundun
更改用户的主要族裔为grade1,同时再加入附加组群class2
usermod-lbingdundunGremmie
更改bingdundun的用户名为Gremmie
usermod-u1020bingdundun
更改用户bingdundun的UID为1020
usermod-d/opt/bingdundun-s/bin/tcsh-ggrade1-Gclass2-a-lGremmie-u1020-mbingdundun
合并上述操作
用户密码管理
passwd-lbingdundun
锁住bingdundun,被锁的用户不能登入
passwd-ubingdundun
解锁后的用户可以继续登陆
passwdbingdundun
更改bingdundun的密码
注意:用户的密码只有root和用户本人可以更改
passwd-dnanjinglele
删掉用户nanjinglele的密码,这样nanjinglele就可以不用密码直接登陆了
passwd-n10-x20-w3-i5bingdundun
更改用户bingdundun的密码老化时间,密码有效期最少天数10,最大天数20,过期前3天会发出警告,密码禁用期5天。
查看用户信息
idGremmie
查看Gremmie的UID、主要组群和附加组群的GID
more/etc/passwd
这儿有个小细节,我将Gremmie装入了sudo系统组群中,这样Gremmie就可以使用sudo的权限
批量添加用户
fornameinshueyrhonrhonnanjinglele
do
echo“$nameispending”
useradd-m-gclassmates-s/bin/bashnameecho"nameecho"nameecho"name:beijing2022"|chpasswd
done
加了冰墩墩,也别忘了雪容融,还有上海砳砳,哈哈哈哈。写个for循环吧,由于不好passwd,此次换chpasswd来批量设置初始密码。这个命令的用法是:echo“user:password”|chpasswd
遇见的一些错误
切换用户时要分辨好大小写,非常是登陆云服务器root身分的时侯
每一步都要打对,,哭了
这儿我要用Gremmie的身分,用sudo的命令来雪融融的主目录创建一个Gremmie.is.visiting的文件
这儿-u前面应当时xuerongrong,不是Gremmie,弄错了。。。
这儿的错误在于,组群2021bioinformatics根本不存在,缘由是哪些呢?
我在创建组群的时侯,创建成了2022bioinfomatics少了一个r。。。
成功创建以后就是应当是这样
学习笔记就到这儿,希望可以帮到你们,也谢谢我中学的邵老师对我的敦敦教诲,我的超人!
有遗漏或补充请大鳄私聊或在评论区强调,
谢谢阅读~