登录
首页 >  文章 >  linux

查看Linux所有用户组命令详解

时间:2026-04-08 23:36:34 158浏览 收藏

本文全面解析了Linux系统中用户组管理的核心操作与常见误区:从可靠获取全量用户组(推荐`getent group`而非仅依赖`cat /etc/group`或误用`groups`),到精准查询用户所属组(`id -nG`更健壮)、区分主组与附加组的存储机制,再到`usermod -g`与`-G`的关键差异(后者会完全覆盖而非追加),以及不同发行版下新用户默认组策略的差异与最佳实践——强调显式指定组比依赖默认行为更安全可控,尤其适用于批量运维场景。

Linux如何查看所有用户组_Linux管理用户所属关系【入门】

如何列出系统中所有用户组

直接查看 /etc/group 文件就能获得完整组列表,每行一个组,格式为 groupname:x:GID:member1,member2。用 cat /etc/group 最快,但信息密杂;更推荐 getent group,它能同时读取本地文件和网络目录服务(如 LDAP),结果更可靠。

常见误区是只用 groups 命令——它只显示当前用户的所属组,不是全量列表。

查看某个用户属于哪些组

groups id -nG 都可以。前者输出带空格分隔的组名,后者更简洁,且不依赖 shell 内置命令,适合脚本调用。

  • 如果用户不存在,groups 会静默失败(返回非零退出码但无提示),id 则明确报错 id: ‘xxx’: no such user
  • 注意:主组(primary group)不会在 /etc/group 的成员字段里列出,它由 /etc/passwd 中该用户的第 4 字段(GID)决定

为什么 usermod -gusermod -G 容易混淆

usermod -g 修改的是用户的主组(即 /etc/passwd 第 4 字段),一次只能设一个;usermod -G 设置的是附加组(supplementary groups),会**完全覆盖**原有附加组列表,不是追加。

例如:usermod -G docker,plugdev alice 会让 alice 只属于这两个组,之前加的 sudonetdev 全部丢失。真要追加,得先查出原列表:id -nG alice,再拼接后重设。

新用户默认加入哪些组

取决于发行版和 adduser(Debian/Ubuntu)或 useradd(RHEL/CentOS)的行为:

  • adduser 默认创建同名组作为主组,并把用户加进 sudo(Ubuntu)或 wheel(RHEL)等特权组
  • useradd 默认**不加任何附加组**,仅设主组;要自动加组,得配 /etc/adduser.conf(Debian)或 /etc/default/useradd 里的 GROUPSADD_EXTRA_GROUPS

实际管理中,别依赖默认行为——尤其批量建用户时,useradd -G 显式指定比事后补加更可控。

今天关于《查看Linux所有用户组命令详解》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>