使用 usermod -ag 是最安全、最常用的做法,能确保只添加新组而不删除用户原有附加组;操作前需确认目标组和用户存在,-ag 可一次性加入多个组,漏掉 -a 会导致原有附加组被清空,修改后需重新登录生效。

用 usermod -aG 是最安全、最常用的做法,能确保只添加新组,不删掉用户原本所属的任何附加组。
确认目标组存在再操作
加组前先检查组是否已创建,避免命令失败:
- 查指定组是否存在:
getent group docker或grep '^docker:' /etc/group - 若不存在,先创建:
sudo groupadd docker - 顺便确认用户存在:
id alice
用 -aG 一次性加入多个附加组
-a(append)表示追加,-G 指定附加组列表,中间用英文逗号分隔、不加空格:
本文档主要讲述的是Android linux内核介绍;Android内核是基于Linux 2.6内核的(目前最新开发版本是2.6.31),它是一个增强内核版本,除了修改部分Bug外,它提供了用于支持Android平台的设备驱动,希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
- 加两个组:
sudo usermod -aG sudo,www-data alice - 加三个或更多组:
sudo usermod -aG docker,libvirt,adm alice - 批量处理多个用户:
for u in dev1 dev2 dev3; do sudo usermod -aG project "$u"; done
别踩坑:-G 单独用会清空原有附加组
漏掉 -a 参数是高频误操作:
- ❌ 错误写法:
sudo usermod -G sudo alice→ 用户将只属于sudo组,其他所有附加组全被清除 - ✅ 正确写法:
sudo usermod -aG sudo alice→ 保留原有组,仅新增sudo
验证与生效
修改后需重新登录才能获得新权限(图形界面建议完全登出再进):
- 查看当前组成员关系:
groups alice或id alice - 测试权限(如加入
sudo组后执行sudo whoami) - 临时切换组(不重启登录):
newgrp docker,但仅对当前 shell 有效










