1.前言
用户组的概念可以参见:https://blog.csdn.net/qq_32224047/article/details/107302750
2.用户组与附加组的区别:
在使用useradd命令创建用户的时侯可以用-g 和-G 指定用户所属组和附属组。
基本组:如果没有指定用户组,创建用户的时候系统会默认同时创建一个和这个用户名同名的组,这个组就是基本组,不可以把用户从基本组中删除。在创建文件时,文件的所属组就是用户的基本组。
附加组:除了基本组之外,用户所在的其他组,都是附加组。用户是可以从附加组中被删除的。
用户不论为与基本组中还是附加组中,就会拥有该组的权限。一个用户可以属于多个附加组。但是一个用户只能有一个基本。
例子:
如教师A,他的主要职责是讲课,那么他的主组应该是讲师组,他可以有附加组,如教研组
- 主组(讲师组--主要职责是讲师)
- 附件组(教研组--不是主要职责)
3.创建用户组
语法:groupadd [选项] {groupName}
选项:
g GID | 指定新用户组的GID |
-o | 通常与-g同时使用,使新用户组可以与系统已有的组ID相同 |
系统底层会将两个GID相同用户组识别为同一个用户组,这样做的目的是让两个用户组的权限相同。识别规则,后者遵循前者。
示例:
新建一个用户组
#groupadd group1
此命令向系统中增加了一个新组group1,新组的组标识号,在当前已有的最大组标识号的基础上加1
# groupadd -g 101 group2
此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。
创建一个普通的用户组,并将该组添加为tom账户的附加组
# bash
usermod -aG group1 tom
创建一个与上面案例GID相同的用户组
# bash
groupadd -g 1000 -o group2
查看组信息:
[root@mylinux2 etc]# cat /etc/group
4.修改用户组
语法:groupmod [选项] {groupName}
选项:
-g GID | 指定新用户组的GID |
-o | 通常与-g同时使用,使新用户组可以与系统已有的组ID系统。 |
-n | 用来修改组名 group -n newGroupName oldGroupName |
示例:
将组group2的组标识号修改为102。
# groupmod -g 102 group2
新建一个group3,并将其组名修改成big1902
# bash
groupadd group3
groupmod -n big1902 group3
5.删除用户组
语法:groupdel {groupName}
示例:
# bash
groupdel big1902
注:
如果删除的用户组,已经被用户追加为附加组,对应的所有用户的该附加组会被撤销掉。
如果被删除的用户组,已经被用户指定为主组,则该用户组无法被删除。(可以理解为像Windows中文件被占用时不能被删除。)
6.用户组的切换
某用户属于多个用户组时,想要访问其他用户组中的内容时,必须切换用户组才行。
newgrp {GroupName}
前提是该账户确实是拥有多个用户组