本文系统梳理了Linux虚拟机中查看用户组的命令,从基础到实用技巧全覆盖,基础命令包括groups(快速查看当前用户所属组)、cat /etc/group(显示所有用户组详细信息,包含组名、GID、成员列表)及id(查看用户UID、GID及所属组),实用技巧则涵盖用grep过滤特定组(如grep "sudo" /etc/group)、getent group查询系统数据库(支持LDAP等动态源)及groupmems -g 组名查看组成员,内容兼顾命令原理与操作场景,助力用户高效管理Linux用户组权限。
在Linux系统中,用户组是权限管理和资源分配的核心概念,无论是系统管理员还是开发者,掌握查看用户组的方法都是必备技能,本文将详细介绍在虚拟机Linux环境中,如何通过命令行查看用户组信息,从基础命令到进阶技巧,帮你彻底搞懂用户组管理。
为什么需要查看用户组?
用户组(Group)是Linux中用户账户的集合,通过将用户划分到不同组,可以简化权限管理,将多个用户加入www组,统一设置目录读写权限,而不需要为每个用户单独配置,查看用户组信息,通常是为了:
- 确认用户所属组,排查权限问题;
- 管理组成员,添加或删除用户;
- 审计系统安全,检查异常组权限。
查看用户组的核心命令
Linux提供了多种命令查看用户组信息,下面从基础到进阶逐一讲解,每个命令都包含功能说明、语法、示例及输出解析。

查看/etc/group文件:最直接的方式
Linux系统中,所有本地用户组的详细信息都存储在/etc/group文件中,这是查看用户组最基础的方法,无需额外安装工具。
功能说明
/etc/group是文本文件,每行代表一个用户组,格式为:
组名:组密码占位符:GID:组成员列表
- 组名:用户组的名称,如
root、sudo、users; - 组密码占位符:早期Linux支持组密码,现通常为
x(表示密码存储在/etc/gshadow中); - GID:组标识符(Group ID),唯一标识一个组,如
root的GID为0; - 组成员列表:逗号分隔的组成员用户名(仅直接成员,不包含通过其他组加入的用户)。
语法与示例
-
查看所有组:
cat /etc/group
输出示例(截取部分):
root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:adm,syslog sudo:x:27:ubuntu # 组名sudo,GID27,成员包括用户ubuntu users:x:100: # 组名users,GID100,无直接成员
-
分页查看(避免输出刷屏):
less /etc/group
在
less界面中,按q退出。
注意事项
/etc/group文件对所有用户可读(权限644),无需root权限即可查看;- 如果系统使用LDAP、NIS等远程用户数据库,
/etc/group可能不包含所有组信息,此时需用getent命令(见后文)。
groups命令:快速查看当前用户的所属组
groups是专门查看用户所属组的轻量级命令,适合快速确认当前用户的组信息。
功能说明
- 不带参数时,显示当前用户的所属组;
- 带用户名参数时,显示指定用户的所属组。
语法与示例
-
查看当前用户的组:
groups
输出示例(假设当前用户为
ubuntu):ubuntu : ubuntu sudo # 当前用户属于ubuntu(主组)和sudo组
-
查看指定用户的组:
groups root
输出:
root : root
注意事项
- 输出格式为“
用户名 : 组名1 组名2 ...”,其中第一个组是用户的主组(登录时默认组); - 如果用户不属于任何组,可能只显示主组(如新建用户未指定组时,默认主组与用户名同名)。
id命令:查看用户ID及所属组(详细信息)
id命令功能强大,不仅能查看用户ID(UID)、组ID(GID),还能显示用户所属的所有组(包括主组和附加组)。
功能说明
id:默认显示当前用户的UID、GID及所有组;id -n:显示组名(默认显示GID数字);id -G:仅显示所有组的GID(用空格分隔);id -g:仅显示主组的GID;id -un/id -gn:分别显示用户名和主组名(与id -n效果类似,但更明确)。
语法与示例
-
查看当前用户的详细信息:
id
输出示例:
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),27(sudo),4(adm) # 解释:UID=1000(用户ubuntu),GID=1000(主组ubuntu),附加组包括sudo(GID27)、adm(GID4)
-
查看指定用户的组(仅GID):
id -G www-data
输出(假设
www-data属于33、100组):33 100
-
查看指定用户的主组名:
id -gn www-data
输出:
www-data
注意事项
id命令比groups更详细,适合需要GID或精确组信息的场景;- 输出中的
groups=部分会列出所有组(主组+附加组),顺序无关紧要。
getent命令:从系统数据库查看用户组(支持远程组)
如果Linux系统使用了LDAP、NIS、Samba等远程用户数据库(而非仅本地/etc/group),/etc/group可能不包含所有组信息,此时需用getent命令,它会查询系统配置的所有数据库(

