用户及用户组管理

一、 用户的及用户组管理

Linux是多用户多任务操作系统,也就是说,Linux系统支持多个用户在同一时间内登录,不同用户可以执行不同的任务,并且互不影响。不同用户具有不同的的权限,每个用户互不干扰,每个用户在权限允许的范围内完成不同的任务。
如果想使用Linux系统的资源,就必须向系统管理员申请一个账户,然后通过这个用户进入系统(账户与用户是一个概念)。通过建立不同属性的用户,一方面可以合理地利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。
每个用户都有唯一的用户名和密码。在登录系统时,只有正确输入用户名和密码,才能进去系统和自己的主目录。

二、用户及用户组

·用户:用户是能够获取系统资源的权限的集合;每个用户都会分配一个特有的id号-UID。
·用户组:一个具有相同特征用户的逻辑集合,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有10个用户的话,就需要授权10次,显然这种方法比较麻烦;另一种方法是建立一个组,授予这个组查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。

1.UID和GID

登录Linux系统时,虽然输入的是自己的用户名和密码,但其实linux并不认识你的用户名称,他只认识用户名对应的ID号。Linux系统将所以用户的名称与ID的对应关系都储存在/etc/passwd文件中(用户名并无实际作用,仅是为了方便用户的记忆而已)。
Linux系统中,每个用户的ID细分为2种,分别是用户ID(user ID,简称 UID)和组ID(Group ID,简称 GID),这与文件拥有者和拥有组两种属性相对应。(用户在登录系统时是通过UID来区分用户,而不是通过用户名来区分)

2.用户与组的关系

•一对一:一个用户可以存在一个组中,是组中的唯一成员;
•一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限;
•多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限;
•多对多:多个用户可以存在多个组中,也就是以上的3种关系的扩展;

2.1 创建用户-useradd

useradd
useradd命令用于建立用户账户。并保存在/etc/passwd文件中。配置文件 /etc/login.defs (密码策略位置文件)也影响着创建新用户的各项参数。
用法:

useradd -D#查看创建用户的默认值
useradd[选项]用户名#根据选项创建用户

语法:useradd [options] user_name。

命令常用选项:
-u 指定用户的UID(不要小于500-o 配合“-u”属性,允许UID重复
-d 指定用户的主目录(即home目录。必须写绝对路径),并自动创建用户的主目录。
-g 指定用户的初始组,一般以和用户名相同的组作为用户的初始组
-G 指定用户的附加组。我们把用户加入其他组,一般都使用附加组
-s 指定用户的登录shell,默认是/bin/bash
-D 显示或更改默认配置
-c 指定/etc/passwd文件中各用户信息中第五个字段的描述性内容,可随意配置
-r 创建系统用户,也就是UID1-499之间,供系统程序使用的用户。由于系统用户主要用于运行系统所需的服务的权限配置,因此系统用户的创建默认不会创建主目录

useradd -o -u 100 user1	-o  允许uid 重复
useradd -m user1	创建时给用户创建家目录
useradd -M user1	创建时不创建用户的家目录

2.2 修改用户-usermod

userdel命令修改系统账户及账户相关的各项属性。
usermod命令的操作修改的是/etc/passwd和shadow这两个文件中的内容
用法:

usermod [options] 用户账号
-g :把组群的GID改成gid
-n :修改组群名字
-o :强制修改组的gid为重复的号码
-p :修改组群的密码
-d :修改登录时的命令
-s :修改用户的shell环境
-l  :修改用户名
-u  :修改用户的ID
-L  :锁定账户
-U :解锁用户,用户锁定后/etc/shadow中密钥自动加了一个叹号,解锁后去除

2.3 删除用户-userdel

userdel(user delete)命令是系统管理员命令,用于删除指定的用户以及与该用户相关的文件。(userdel命令用于删除指定的用户以及用户相关的文件,实际上是对系统的用户账号文件进行了修改,实际上是修改了系统的用户账户文件/etc/passwd /etc/shadow以及/etc/group)
如果想同时删除该用户的主目录以及其中所有内容,要使用-r参数递归删除。不建议直接删除已经进入系统的用户,如果需要强制删除,请使用 userdel -f 命令。
若输入删除操作命令时,没有加入参数选项,则仅仅会删除用户账号,而不删除相关文件
用法:

userdel [options] LOGIN
-f :强制删除用户,即使用户当前已登录
-R :CHROOT_DIR 目录中应用更改并使用CHROOT_DIR目录中的配置文件
userdel [-r] 用户名	#-r参数表示连用户的宿主目录一并删除
	######若不带参数-r,出现以下问题:再创建同名账号时,会出现报错信息,提示我们用户已存在,或被占用进程。虽然在虚拟机中,我们可以直接重启解决,但是实际工作当中当然不能随意重启。
    #####这时候,我们只需要进入宿主目录使用rm -rf删除宿主目录
接着,用userdel -f强制删除即可
    ###如果此时依旧提示占用进程,则用ps -u 加用户名查看进程
再用kill +进程号关闭进程即可

2.4 用户账号文件-/etc/passwd、/etc/shadow

• 保存用户名称、宿主目录、登录shell等基本信息
• 文件所处位置:/etc/passwd
• 其中每一行都对应着一个用户的账户信息
在这里插入图片描述
其格式和具体含义如下

用户名:用户密码:用户UID:用户GID:用户备注信息:用户主目录:登录shell
root用户名,用户名字符可以是大小写字母、数字、减号、点以及下划线。其他符号不合法
x加密的密码,在此字段用“x”表示,具体密码需要到对应的/etc/shadow文件中查看
0用户UID,用来对用户进行识别,从而判断用户类型
0用户组GID,对应/etc/group中的组信息,将用户分组管理
root备注信息,会注释出用户的家庭信息等属性
/root用户的家目录,即用户登录时所处目录,此字段可自定义
/bin/bash默认shell,用以将用户下达的指令传达给内核

• 保存用户的密码、账号有效期等信息
• 文件位置:/etc/shadow(影子文件)——只有root用户有权限读取
• 每一行对应一个用户的密码记录
由于/etc/passwd文件是所有用户都可读的,如果用户的密码太简单活规律比较明显的话,一台普通的计算机就能够很容易地将它破解,因此对安全性要求较高的linux系统都把加密后的口令字分离出来,单独存放在一个文件中,这个文件就是/etc/shadow文件。只有超级用户拥有该文件的读权限,这就保证了用户密码的安全性。
/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生,格式也类似;

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

在这里插入图片描述

字段序号字段的含义
1用户名,与文件/etc/passwd中的用户名具有相同的意义
2加密的密码,若是此字段显示的为“*”或“!”,说明该账户为不能登录账号
3此字段表示最后一次修改密码的时间
4最小修改时间间隔:如果设置为0,则随时可进行密码的修改
5密码的有效期;强制用纸定期修改密码,提高系统的安全性
6密码需要更改前的警告天数;当用户密码快要过期时,发出警告信息提醒用户进行密码修改
7密码过期后的宽限天数;若时在密码过期后设置的宽限天数内仍未修改密码,则禁用该用户
8用户过期日期;过期后该用户将不再是一个合法用户,无法登录系统
9保留字段;目前为空,以备将来发展之用

3.1创建用户组-groupadd

用法:

groupadd [选项] 组名
-g GID:指定组ID
-r:创建系统群组

3.2 修改用户组-groupmod

用法:

groupmod [选项] 组名
-g GID:修改组ID
-n 新组名:修改组名
3.3 删除用户组-groupdel

使用groupdel命令删除群组,其实是删除/etc/group文件和/etc/gshadow文件中有关目标群组的数据信息。
用法:

groupdel 组名
-g GID:修改组I
-n 新组名:修改组名

此命令仅适用于那些“不是任何用户初始组”的族群,换句话说,如果有群组还是某用户的初始群组,则无法使用groupdel命令成功删除。

3.3 用户组配置文件解析

3.3.1 /etc/group文件

用户组的所有信息都存放在在/etc/group文件中
在这里插入图片描述
其格式和内容如下:

用户组名:用户组密码:用户组GID:用户组内用户列表
字段序号字段的含义
1用户组名,与文件/etc/passwd中的用户名具有相同的意义
2用户组密码,位保证安全性此字段用"x"表示,具体密码保存在/etc/gshadow
3用户组GID,系统通过GID来识别用户组,判断用户组类别
4用户组中用户列表,此字段会将用户组中所有用户罗列出来

3.3.2 /etc/gshadow文件

组用户的密码信息存储在/etc/gshadow文件中
在这里插入图片描述
其格式和内容如下:

用户组名:用户组密码:用户组管理员:用户组中附加用户
字段序号字段的含义
1用户组名,与文件/etc/group中的用户名具有相同的意义
2用户组密码,通常情况下不设置组密码,该字段可以为空或者"!"
3用户组管理员,该字段可以为空,具有多个用户管理员的话,需要通过","分隔
4用户组中附加用户,此字段会将用户组在附加用户罗列出来

3.4 用户附加组

群组可以让多个用户具有相同的权限,也就是说,一个用户可以所属多个群组,并同时拥有这些切一半左右的权限,这就引出了初始组和附加组。
/etc/passwd文件中,其中第四字段(GID)指的就是每个用户的初始组

3.4.1 newgrp

用户在创建文件后,默认生效的是初始用户组的组身份生效,因为初始组是用户一旦登陆就获得的组身份。也就是说,用户的有效组默认是初始组,因此所创建文件的属组是用户的初始组。newgrp可以改变用户的初始组。
格式如下:

newgrp groupname

3.4.2 su和su -

su - 在切换用户身份的同时,连当前使用的环境变量也切换成指定用户,一般我们切换用户,都使用su -

3.4.3 whomai和who am i

whoami命令和who am i命令是不同的两个命令,前者用来打印当前执行操作的,后者则用来打印登录当前linux系统的用户名。

4. passwd

用useradd命令创建新用户时,并没有设定用户密码,因此无法用来登录系统。而passwd可以解决这个问题。
格式:

passwd [选项] 用户名
-S:查询用户密码的状态,也就是/etc/passwd文件中此密码的内容,仅root用户可用
--stdin:将管道符输入的数据用作用户的密码
-l:暂时锁定用户,该选项会在/etc/shadow文件中指定用户的加密密码串前添加"!",使密码失效,仅root用户可用
-u:解锁用户
-n:设置用户修改密码后,多长时间不能再次修改密码
-x:设置该用户的密码有效期
-w:设置用户密码过期前的警告天数
-i:设置用户密码的失效日期

在这里插入图片描述

5. gpasswd

可以用gpasswd给群组设置一个群组管理员,代替root用户对群组进行管理,减少root操作
格式:

gpasswd [选项] 组名

常用选项

 :选项为空时,表示给群组设置密码
-A:设置用户为群组管理员
-M:将用户加入群组
-r:移除群管理员密码
-R:使群组密码失效
###**以上选项仅管理员用户可用**
-a:将用户加入群组
-d:将用户移除群组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值