2 linux用户组实战
因为用户组与用户是一对多的关系,用户肯定是要从属于某个组的,所以我们先从用户组操作起来
2.1 查询用户组
2.1.1 用户组组信息的查询
执行 :
#cat 命令,查看某个文件的内容 /etc(配置文件目录)/group(配置文件)
[root@localhost ~]# cat /etc/group
用户组的所有信息都存放在/etc/group文件中。
此文件的格式是由冒号(:)隔开若干个字段,这些字段具体如下:
组名:口令:组标识号:组内用户列表
具体解释:
组名:
组名是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
口令:
口令字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*,有口令默认是x。
因为涉及到对组的管理所以linux的组也是有自己的密码的
组标识号 主键ID(可以重复的):
组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。别称GID.
组内用户列表:
是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。
2.1.2 用户组密码的查询
执行
[root@localhost ~]# cat /etc/gshadow
由冒号(:)隔开若干个字段,这些字段具体如下:
用户组名:用户组密码:*用户组管理者*:支持的账号名称
具体解释:
用户组名:
是用户组的名称,由字母或数字构成。
用户组密码:
这个段可以是空的或!,如果是空的或有!,表示没有密码。
用户组管理者:
这个字段也可为空,如果有多个用户组管理者,用,号分割。
组成员:
如果有多个成员,用,号分割。
当你每次创建的时候 为了保证这个账户归属某个组 所以 创建一个账户的同时 / 创建一个与用户同名的组
root 账户 root组
2.2 添加用户组
groupadd
语法 :
groupadd [选项] 组名
命令功能:
添加群组。
选项和参数:
-g GID:后面接某个特定的 GID ,用来直接给予某个GID;
-h :显示此帮助信息并退出
-r :创建一个系统群组。
-o :允许创建有重复 GID 的组
实例:
1)创建一般群组(GID 从 1000 ! 1000以下代表是系统组)
[root@localhost ~]# groupadd group1
[root@localhost ~]# cat /etc/group | grep group1
group1:x:1000:
| N个命令的管道连接符 ,它的意义就是在于 ,将前一个命令的结果作为原始数据传入下一个命令 ,此处我们将 cat /etc/group 命令的执行结果 ,通过 | 传入给 grep 命令 ,
grep命令的作用是,在指定内容中查找给定的关键字,因为我们要用grep查找 group1 关键词 ,所以通过上面命令的执行将包含group1 关键词的那行查询出来;
2)创建一个自定义GID的组名
GID : 和我们之间数据库的主键ID一样,用来定位一个组的有效标识,但是linux的GID可以重复(使用-o 参数指定即可);
GID的编号 : 0~999 传统上是保留给系统帐号使用。自定义的组是1000以上的,刚才我们创建的group1组的ID就是1000;
[root@localhost ~]# groupadd -g 1003 group3
[root@localhost ~]# cat /etc/group | grep group3
group3:x:1003:
此处需要注意一个问题,因为我们自定义的组ID已经指定到了1003, 所以按照ID递进原则之后我们如果创建group3组的话,ID不会是我们没有用到的1002 ,而是 1003+1 --> 1004
[root@localhost ~]# cat /etc/group | grep group4
group4:x:1004:
3)创建系统群组
[root@localhost ~]# groupadd -r sysop1
[root@localhost ~]# cat /etc/group | grep sysop1
sysop1:x:995:
注意
系统群组的ID是 0-999 所以此处分配了一个 995的ID
此时大家就要考虑一个问题了,如果系统保留ID用没了,但是我还是想创建系统群组怎么办呢?
这个时候我们可以使用 -o 参数来设定GID相同的群组
[root@localhost ~]# groupadd -r -o -g 995 sysop2
[root@localhost ~]# cat /etc/group | grep sysop2
sysop2:x:995:
根据观察我们可以看出,sysop2和sysop1使用了相同的GID;
2.3 修改用户组
groupmod
命令格式:
groupmod [选项] 组名
命令功能:
修改群组相关参数。
选项和参数:
-g GID :将组 ID 改为 GID
-h :显示此帮助信息并退出
-n NEW_GROUP :改名为 NEW_GROUP
-o :允许使用重复的 GID
实例:
修改 sysop2 组的名称为 sysug1 并且修改这个组的ID为 996
[root@localhost ~]# groupmod -g 996 -n sysug1 sysop2
groupmod:GID “996”已经存在
[root@localhost ~]# groupmod -g 997 -n sysug1 sysop2
groupmod:GID “997”已经存在
[root@localhost ~]# groupmod -g 998 -n sysug1 sysop2
groupmod:GID “998”已经存在
[root@localhost ~]# groupmod -g 999 -n sysug1 sysop2
groupmod:GID “999”已经存在
[root@localhost ~]# groupmod -g 994 -n sysug1 sysop2
注意 系统的GID是很紧张的!
2.4 删除用户组
groupdel
命令格式:
groupdel 组名
命令功能:
删除用户组时,用户组必须存在,如果有组中的任一用户在使用中的话,则不能删除。
实例:
删除群组名为 sysop1 *sysug1* 的群组和
[root@localhost ~]# groupdel sysop1
[root@localhost ~]# groupdel sysug1