创建新用户时用 -g 指定唯一存在的主组、-g 指定多个逗号分隔的附加组,可一步完成权限配置;主组决定新建文件默认所属,附加组扩展权限如 sudo 或 docker;需确保组已存在、加 -m 创建家目录,验证用 groups 命令。

创建新用户时直接指定主组和附加组,关键在于用对 -g 和 -G 这两个参数,一步到位,不用后续再用 usermod 调整。
主组用 -g,附加组用 -G,两者可同时使用
主组(primary group)是用户默认归属的组,通常决定新建文件的默认所属组;附加组(supplementary groups)则用于扩展权限,比如加入 sudo 获得管理员能力、加入 docker 获得容器操作权限。
常见组合写法示例:
指定主组为 devs,同时加入 sudo 和 docker 两个附加组:
sudo useradd -m -g devs -G sudo,docker -s /bin/bash alice不创建同名主组(避免冗余),直接指定已有组为初始组:
sudo useradd -m -g webdev -G nginx,deploy -s /bin/bash deployer主组和附加组都为空时,系统会自动创建与用户名同名的主组,但不会自动加任何附加组
注意几个实操要点:
-
-g后面只能跟一个组名,且该组必须已存在(可用getent group 组名验证) -
-G后面可跟多个组名,用英文逗号分隔,中间不能有空格 - 如果主组不存在,命令会失败,不会自动创建——需先用
groupadd devs创建 - 加了
-m才会自动建家目录/home/用户名,否则用户可能无法正常登录
验证是否生效:
groups alice # 输出应包含:alice : devs sudo docker
这样设置后,用户一创建就具备对应组权限,符合最小权限原则,也省去反复调整的麻烦。











