050 groupadd命令

命令说明

groupadd 用于创建新的用户组,便于按部门/项目/权限批量管理用户;组信息写入 /etc/group,GID 默认自动分配。

语法

groupadd [选项]... 组名

常用参数

参数说明
-g GID指定组 ID,如 -g 2000 developers
-o允许使用已存在的 GID(配合 -g,不推荐)
-r创建系统组(GID < 1000,RHEL)
-f组已存在时不报错退出(脚本友好)
-p设置组密码(极少用,现代系统用 sudo/组权限替代)
-R 根目录在指定 chroot 根目录下操作 /etc/group
-P 前缀对带前缀的组文件路径操作(制作镜像时用)

使用示例

$ groupadd developers

创建 developers 普通组

$ groupadd -g 3000 ops

指定 GID 创建 ops 组(跨机器统一 UID/GID 场景)

$ groupadd -r docker

创建系统组 docker

$ groupadd -f www-data

确保组存在,已存在也不报错

$ usermod -aG developers zhangsan

把用户加入新建组

$ gpasswd -a lisi developers

另一种加组方式(gpasswd 管理组成员)

$ getent group developers

查看组信息与成员

$ groupdel developers

删除组(组内若有用户为主组则删不掉)

实用技巧

  • 典型用法:建组 → 用户加入 → 目录 chgrp 到该组 + chmod g+rws,实现团队共享目录(setgid 保证新文件继承组)。
  • GID 规划:多机环境(NFS、Hadoop、GlusterFS)统一 UID/GID 可避免权限错乱,常用 -g 固定。
  • 组的“成员”写在 /etc/group 第 4 列只是附加组成员;主组关系记录在 /etc/passwd 的 GID 字段。
  • gpasswd 可给组设管理员(gpasswd -A 用户 组),组管理员能自行加人,适合大组织下放权限。
  • 删除组前确认没有用户以它为主组:grep :GID: /etc/passwd,否则 userdel 那些用户先。