第十九章 Linux系统用户组管理详解

一、用户组介绍

1.什么是用户组

在Linux系统中,每个用户都有自己的用户ID,称为UID,每个用户组也有自己的用户组ID,称为GID,UID和GID在Linux系统中是不可重复的。Linux系统就是通过UID和GID来对用户和组进行管理的,而对于管理员来说,往往会设置用户名和组名,这样使得用户和用户组的使用管理更人性化。

Linux系统下的每一个目录、文件,都会有其属于的用户和用户组,我们称其为属主和属组。由此课件,用户和用户组与Linux系统的运行息息相关。在实际操作使用系统时,我们往往关注用户较多与关注用户组。

2.组的分类

Linux 组分为两类:
1.基本组 		#一个用户只能拥有一个基本组  

2.附加组		#当基本组的权限不够用户使用的,就出现了附加组   一个用户允许拥有多个附加组  

二、用户组配置文件

1.跟组相关的文件

[root@jindada ~]# ll  /etc/group
-rw-r--r-- 1 root root 573 Jul 21 11:04 /etc/group
[root@jindada ~]# ll  /etc/gshadow
---------- 1 root root 449 Jul 21 11:04 /etc/gshadow

2.用户组的基本信息

# 以冒号为分隔符  分为4列
[root@jindada ~]# cat /etc/group		#用户组的基本信息文件 
root:x:0:
bin:x:1:
daemon:x:2:
mail:x:12:postfix

第一列:	root		#组的名称 
第二列:	x			#组的密码占位符
第三列:	0			#组的GID  
第四列:				#用户名  哪些用户使用此组作为附加组  多个用逗号分割 

3.用户组的组密码文件

# 以冒号为分隔符  分为四列
[root@jindada ~]# cat /etc/gshadow
root:::
bin:::
daemon:::
mail:::postfix

第一列:	root		#组的名称  
第二列:	!或者空		#用户组的密码信息  空或者!是没有密码  
第三列:	空			#用户组的管理者  
第四列:	空			#用户名  哪些用户使用此组作为附加组  多个用逗号分割

三、用户组管理命令-groupadd

1.含义

groupadd命令来自于英文词组“group add”,其功能是用于创建新的用户组。每个用户在创建时都有一个与其同名的基本组,后期可以使用groupadd命令创建出新的用户组信息,让多个用户加入到指定的扩展组中,为后续的工作提供了良好的文档共享环境。

语法格式:groupadd [参数] 用户组

2.常用参数

-g 指定新建工作组的id
-r 创建系统工作组
-K 覆盖配置文件“/ect/login.defs”
-o 允许添加组ID号不唯一的工作组

3.常见示例

创建一个新的用户组

[root@jindada ~]# groupadd   user_group01
[root@jindada ~]# tail  -1  /etc/group
user_group01:x:1007:

创建一个新的用户组,并指定GID号码

[root@jindada ~]# groupadd  -g 666  user_group02
[root@jindada ~]# tail  -1  /etc/group
user_group02:x:666:

创建一个新的用户组,设定为系统工作组

[root@jindada ~]# groupadd   -r  user_group03
[root@jindada ~]# tail  -1  /etc/group
user_group03:x:664:

四、用户组管理命令-groupmod

1.含义

groupmod命令用于更改群组的识别码或名称时。不过大家还是要注意,用户名不要随意修改,组名和 GID 也不要随意修改,因为非常容易导致管理员逻辑混乱。如果非要修改用户名或组名,则建议大家先删除旧的,再建立新的。

语法格式:groupmod [参数]

2.常用参数

-g 修改用户组的ID GID
-o 重复使用群组识别码
-n 设置欲使用的群组名称

3.常用示例

更改指定用户组的GID

[root@jindada ~]# groupmod   -g 6666  user_group01
[root@jindada ~]# grep  'user_group01'  /etc/group
user_group01:x:6666:

更改指定用户组的名称

[root@jindada ~]# groupmod   -n  new_group  user_group01
[root@jindada ~]# grep  'new_group'  /etc/group
new_group:x:6666:

五、用户组管理命令-groupdel

1.含义

groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。

userdel修改系统账户文件,删除与 GROUP 相关的所有项目。给出的组名必须存在。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

语法格式:groupdel [参数] [群组名称]

2.常用参数

-h 显示帮助信息
-R 在chroot_dir目录中应用更改并使用chroot_dir目录中的配置文件

3.常见示例

使用groupdel命令删除new_group工作组

[root@jindada ~]# groupdel   new_group
[root@jindada ~]# grep  'new_group'  /etc/group

删除作为某个用户的附加组的用户组 ,删除没有影响

[root@jindada ~]# groupdel  user01

[root@jindada ~]# grep  '1002'  /etc/group
user05:x:1002:jindada01
[root@jindada ~]# grep  '1002'  /etc/passwd
user05:x:1001:1002::/home/user05:/bin/bash
test:x:1002:1003::/home/test:/bin/bash
[root@jindada ~]# id user05 
uid=1001(user05) gid=1002(user05) groups=1002(user05)

删除一个组作为某个用户的基本组 ,是不能删除的

解决:

	给这里面的用户重新找个基本组 
	
	把用户也一并删除掉 

[root@jindada ~]# groupdel   user05
groupdel: cannot remove the primary group of user 'user05'
[root@jindada ~]# usermod  -g  1003  user05
[root@jindada ~]# id user05 
uid=1001(user05) gid=1003(test) groups=1003(test)
[root@jindada ~]# groupdel   user05
posted @ 2020-07-22 19:02  年少纵马且长歌  阅读(504)  评论(0编辑  收藏  举报