当前位置: 首页 > news >正文

主组与附加组

主包主包,为什么我改不了test4的组啊?

root@btc-VMware20-1:/nihao/zaijian# id test4
uid=1001(test4) gid=1002(hahaha) 组=1002(hahaha),1003(hello)
root@btc-VMware20-1:/nihao/zaijian# gpasswd -d test4 hahaha
正在将用户“test4”从“hahaha”组中删除
gpasswd:用户“test4”不是“hahaha”的成员
root@btc-VMware20-1:/nihao/zaijian# id test4
uid=1001(test4) gid=1002(hahaha) 组=1002(hahaha),1003(hello)

非常好的问题,这种情况在 Linux 用户与组管理中 非常常见,但往往让人容易困惑。
让我们一步一步来分析你遇到的状况 👇


📋 你的当前状态

你执行的命令和输出:

id test4
uid=1001(test4) gid=1002(hahaha) 组=1002(hahaha),1003(hello)

然后:

sudo gpasswd -d test4 hahaha

结果:

正在将用户“test4”从“hahaha”组中删除
gpasswd:用户“test4”不是“hahaha”的成员

再查看:

id test4
uid=1001(test4) gid=1002(hahaha) 组=1002(hahaha),1003(hello)

🧠 问题的本质

gpasswd -d test4 hahaha 报错说用户不是组成员,
id 又显示用户确实在这个组中。
究竟怎么回事?

实际上,这是因为:

🧩 test4 的主组(primary group)正是 hahaha

你可以从这行看到:

uid=1001(test4) gid=1002(hahaha)

这里的 gid=1002(hahaha) 说明:

test4 的主组(Primary Group)是 hahaha


🚧 关键点:主组 vs 附加组

在 Linux 中:

类型 定义 可以用 gpasswd 删除吗?
🟥 主组 (Primary group) 用户账户的默认组,由 /etc/passwd 中定义 ❌ 不可以删除
🟩 附加组 (Supplementary group) 用户额外加入的组,由 /etc/group 管理 ✅ 可以删除(用 gpasswd -d

✅ 举个例子:

假设 /etc/passwd 中有:

test4:x:1001:1002::/home/test4:/bin/bash

这里的第四个字段 1002 表示:

gid = 1002 (hahaha)

所以 test4 的主组是 hahaha

/etc/group 里可能包含:

hahaha:x:1002:
hello:x:1003:test4

注意,hahaha 组的成员列表中并没有 test4
因为作为该组的主组成员,不需要在 /etc/group 中再列一遍。

🟡 当你执行:

gpasswd -d test4 hahaha

gpasswd 会查 /etc/grouphahaha 的成员项,发现根本没有 test4
所以提示:

gpasswd:用户“test4”不是“hahaha”的成员

id 之所以还能显示 hahaha,是因为它同时从 /etc/passwd(主组) 和 /etc/group(附加组)中取信息。


✅ 正确理解

组名 类型 来源文件 能用 gpasswd -d 移除?
hahaha 主组 /etc/passwd (gid=1002) ❌ 不行
hello 附加组 /etc/group (hello:x:1003:test4) ✅ 可以

✅ 如何修改主组(如果真的想把主组从 hahaha 改掉)

如果你想让 test4 不再属于 hahaha
你必须更改他的主组:

sudo usermod -g 新主组名 test4

例如:

sudo usermod -g hello test4

然后再执行:

sudo gpasswd -d test4 hahaha

这时就能成功,因为 hahaha 不再是主组,而只是一个附加组。


💡 总结

状况 原因 解决方案
gpasswd -d 报「不是成员」 用户的主组即该组 不能删除主组,需先更改主组
id 显示仍在组里 主组自动计入组成员 正常现象
想从该组中移除 usermod -g 改主组,再 gpasswd 删除

✅ 推荐操作顺序(如果确实想让 test4 不再有 hahaha

sudo usermod -g hello test4    # 更改主组
sudo gpasswd -d test4 hahaha   # 删除附加组关系
id test4                       # 验证结果

是否希望我帮你用图表画出
「主组 vs 附加组」的结构关系?(非常直观,一眼就能看懂为什么会出现这个问题)

http://www.jsqmd.com/news/273914/

相关文章:

  • Pytest自动化测试执行环境切换的两种解决方案
  • 阿里出品2026版Java架构师面试指南,涵盖Java所有核心技能
  • FBM237-P0917QZ输出模块
  • 2026 垂直生命线系统防护厂家权威推荐榜单:水平生命线系统/垂直生命线系统/水平生命线系统装置/垂直生命线系统装置源头厂家精选。
  • 2026年Java岗最全面试攻略,面试必刷,跳槽大厂神器
  • FBM242-P0916JY外置开关模块
  • 2026南宁市英语雅思培训辅导机构推荐;2026权威出国雅思课程排行榜 - 苏木2025
  • 深入解析:【MySQL】视图
  • 2026Java面试常见知识点总结!
  • 2026南宁市英语雅思培训辅导机构推荐2026权威出国雅思课程排行榜 - 苏木2025
  • 192S06M0132B控制系统模块
  • 2026年评价高的反渗透超纯水设备,电子行业超纯水设备,超纯水设备厂家采购决策指南 - 品牌鉴赏师
  • 专业气体分析仪采购指南:七大技术类别厂家推荐与对比 - 品牌推荐大师
  • VME-HDD-4G单插槽软盘/硬盘模块
  • 2026年1月广东定制密封圈 /车削密封件 /超高压密封/ 聚氨酯密封 /非标密封厂家企业哪家好 - 2026年企业推荐榜
  • 2026四川口碑实木楼梯品牌深度选型指南 - 2026年企业推荐榜
  • 【大数据毕设全套源码+文档】基于Python的王者荣耀战队的数据分析系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • Linux系统编程:内核协议栈,我把网络IO移到用户态后,延迟从毫秒级降到微秒级
  • 2026年1月中国大巴车租赁、包车、租车、商务车租赁、旅游包车公司行业竞争格局深度分析报告 - 2026年企业推荐榜
  • 网络安全基础核心框架一篇搞定:专为零基础设计的极简入门指南
  • 封箱机怎么选?2026年实力厂家质量评测来袭,覆顶缠膜机/行李包装机/自动套膜机/打包缠膜一体机,封箱机销售厂家怎么选购 - 品牌推荐师
  • 搞定Z世代求职者,你的招聘“操作系统”该升级了
  • 红色展厅展馆设计公司哪家好?盛世笔特经验丰富 - 工业品牌热点
  • 小白必看的10个网络安全基础核心概念,从零构建你的知识骨架
  • 2026年Q1四川照明灯具定做厂家综合比较 - 2026年企业推荐榜
  • 绘制你的第一张网络安全知识地图:一看就懂的体系化入门路径
  • 拉萨市英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜2026 - 老周说教育
  • Keil:函数级优化技巧全解
  • HLS第一个入门工程(简单加法器)
  • 合规审计日志场景:企业网盘测评日志功能对比 - 速递信息