1. 概述
在Linux环境下,用户组可以让多个用户具有相同的权限,也就是说,一个用户可以属于多个用户组,并同时拥有这些用户组的权限,这就有了主组(也称初始组)和附加组的概念,使用 groups
命令可以查看该用户的用户组。
codedancing@Ubuntu:~$ groups
codedancing adm cdrom sudo dip plugdev lpadmin sambashare docker
/etc/passwd
文件中每个用户信息分为 7 个字段,其中第 4 字段(GID)指的就是每个用户所属的主组,也就是说,当用户一登陆系统,立刻就会拥有这个用户组的相关权限,每个用户的主组只有一个。
# /etc/passwd
codedancing:x:1000:1000:CodeDancing,,,:/home/codedancing:/bin/bash
# /etc/group
codedancing:x:1000:
docker:x:999:codedancing
codedancing 用户组是添加 codedancing 用户时默认创建的用户组,在 root 管理员使用 useradd 命令创建新用户时,若未明确指定该命令所属的主组,useradd 命令会默认创建一个同用户名相同的群组,作为该用户的主组。
codedancing 用户组是 codedancing 用户的主组,不需要在 /etc/group 的第 4 个字段额外标注,docker 用户组是 codedancing 的附加组,所以 docker 用户组的第四个字段会添加 codedancing 这个用户。
2. 用户组管理
1)groupadd
groupadd 用于添加用户组。
格式:
groupadd [-g GID] groupname
-g
:用于指定 GID,默认为使用当前最大的 GID 加 1
codedancing@Ubuntu:~$ sudo groupadd group1
codedancing@Ubuntu:~$ grep group1 /etc/group
group1:x:1001:
2)groupmod
groupmod 用于修改系统已存在的用户组。
格式:
groupmod [options] gr