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 那些用户先。