新闻详情

新闻详情

首页 / 资讯中心 / 详情

linux-command 命令详解:groups——一行命令查看用户所属的全部组

发布时间:2026/10/1 2:06:25来源:尧图网络
linux-command 命令详解:groups——一行命令查看用户所属的全部组
文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载groups是 GNU coreutils 工具集中的一条小型命令用于打印指定用户或当前用户所属的全部用户组名称。在 Linux 运维、权限排查和容器镜像调试场景中它是快速确认某账号能访问哪些资源、处于哪些权限域的最直接手段。读完本文你将掌握groups的完整语法、输出格式解读、与id -Gn的等价关系以及其背后/etc/passwd主组与/etc/group附加组的数据模型并能借助本仓库中 useradd、usermod、gpasswd 等配套文档完成组管理的闭环操作。命令是什么groups命令的核心能力只有一个打印指定用户所在组的名称。它不需要任何特权即可查询当前用户查询其他用户时也只需要该用户信息可读即可。作为GNU coreutils包中的成员它与 id、users 等命令一样是几乎所有 Linux 发行版默认自带的基础工具相关的权威帮助信息可通过man -s 1 groups或info coreutils groups invocation查看。命令语法概要groups [OPTION]... [username]...语法非常简单[OPTION]...可选选项目前仅支持帮助与版本信息两类。[username]...可选的一个或多个用户名不提供时默认为当前用户。主要用途打印指定用户所在组的名称便于快速确认用户所属的主组与所有附加组。不提供任何参数时输出当前登录用户所属的全部组。一次可传入多个用户名批量查看多个账号的组归属适合脚本化巡检。选项详解groups的命令行选项极少只有两个--help 显示帮助信息并退出。 --version 显示版本信息并退出。这两个选项在 GNU coreutils 系列命令如 id、users中行为完全一致--help输出命令的简要用法后正常退出--version输出版本号后正常退出二者均不需要额外参数。参数说明参数是否必选说明username可选可以是一到多个用户名不提供时默认为当前用户需要注意的是参数是用户名如linux、root而不是组名或数字 UID如果需要基于 UID 查询可配合id命令使用。返回值返回0表示成功返回非0值表示失败。在 Shell 脚本中可据此判断查询是否成功例如参数中指定的用户不存在时命令会返回非零值并输出错误信息。实战示例查看指定用户所属的组原文档给出的经典示例[rootlocalhost ~]# groups linux linux : linux adm dialout cdrom plugdev lpadmin admin sambashare输出格式解读主组与附加组从上面的输出可以观察到固定的格式用户名 : 组列表冒号后以空格分隔的组列表中第一个组是该用户的主组初始组其余为附加组补充组。例如linux用户的主组是linux同时附加于adm、dialout、cdrom、plugdev、lpadmin、admin、sambashare等组。这也印证了groups输出的是组名称而非组 ID与id -G输出数字 GID 形成互补。同时查询多个用户一次传入多个用户名即可批量输出每行一个用户[rootlocalhost ~]# groups root linux root : root linux : linux adm dialout cdrom plugdev lpadmin admin sambashare不指定参数查询当前用户[rootlocalhost ~]# groups root : root不传参数时默认输出当前登录用户所属的全部组适合在日常登录后快速自检身份上下文。groups 与 id -Gn完全等价原文档明确说明该命令等价于id -Gn。拆解这条等价关系有助于理解二者的适用场景参见本仓库 id 命令文档-G, --groups打印全部组 ID有效组与附加组。-n, --name打印名称而不是数字。-r, --real打印真实 ID 而不是有效 IDgroups输出的是真实组归属。也就是说groups user # 等价于 id -Gn user两者的差别仅在细节groups输出带用户名 :前缀并以冒号分隔id -Gn默认只输出以空格分隔的组名列表不带前缀更适合在脚本中直接赋值给变量例如groups$(id -Gn)。在只关心组名列表时优先用id -Gn在希望输出带用户标注、便于人读时用groups。另外 id 命令文档 还指出id -Gn组合需要配合-n才会显示名称而groups原生就输出名称这也是它更直观的原因。深入原理/etc/passwd 主组与 /etc/group 附加组的数据模型原文档指出每个用户属于/etc/passwd中指定的一个组和在/etc/group中指定的其他组。这句话概括了 Linux 组的完整数据模型结合本仓库的配套文档可以展开如下。主组初始组从哪来主组是用户在系统数据库中记录的默认组定义在/etc/passwd文件中第 4 个字段即 GID它决定用户创建文件时的默认属组。创建用户时由useradd的-g, --gid GROUP选项指定见 useradd 命令文档若未指定多数发行版默认创建一个与用户名同名的组并作为主组对应-U, --user-group行为。这也是示例中linux用户第一个组恰好为linux的原因。附加组补充组从哪来附加组定义在/etc/group文件中每行最后一个字段以逗号分隔的用户列表常见来源有三种创建用户时通过useradd -G GROUP1[,GROUP2,...]一次性指定多个附加组见 useradd 命令文档已有用户通过usermod -aG group user追加到组-a表示追加必须与-G配合使用否则-G会覆盖原有附加组见 usermod 命令文档通过gpasswd -a user_name group_name添加gpasswd的优势是只增不减、不会清空既有附加组见 gpasswd 命令文档。因此groups输出的组列表中除第一个主组外其余全部来自/etc/group中记录的附加组条目。组的完整生命周期groups只能看组的增删改由以下命令负责它们都直接操作/etc/group与/etc/gshadow两个系统文件groupadd创建新工作组可用-g指定 GID、-r创建系统组groupmod修改组定义包括-n改名、-g改 GID、-U/-a -U调整成员列表groupdel删除工作组注意若该组是某些用户的主组必须先删除这些用户或改变其主组后才能删除若仅为附加组则可以直接删除这些用户中对应的组信息也会一并清除。理解这一闭环后groups的输出变化就能与上述命令的每次执行一一对应例如gpasswd -a mary users之后再次运行groups mary即可看到users出现在附加组列表中。注意事项groups等价于id -Gn输出均为真实组归属不区分有效组与真实组。每个用户属于/etc/passwd中指定的一个主组以及在/etc/group中指定的其他附加组groups输出即二者的并集。该命令是GNU coreutils包中的命令跨发行版行为一致相关的帮助信息请查看man -s 1 groups与info coreutils groups invocation。groups只接受用户名或默认当前用户不接受组名、UID 数字等参数若需按数字 ID 查询请改用id命令并参考其-G、-n、-r选项。输出中冒号后的第一个组是主组其余为附加组判断用户默认属组时以第一个为准。相关命令与延伸阅读id打印真实及有效 UID/GID 信息id -Gn与groups等价useradd创建新用户并指定主组/附加组groups输出的源头之一usermod修改用户基本信息-aG追加附加组groupadd / groupmod / groupdel组的创建、修改与删除gpasswd工作组文件/etc/group与/etc/gshadow的管理工具追加成员不覆盖既有附加组users打印当前主机所有登录用户名称注意与groups区分前者管登录会话后者管组归属。赞分享文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载相关推荐Pokerogue-App命令行帮助查看所有可用命令的方法Pokerogue App命令行帮助查看所有可用命令的方法 你是否在使用Pokerogue App时想要快速了解有哪些命令可以使用本文将详细介绍如何查看PLinux arch 命令详解一条命令快速识别主机硬件架构linux-command 命令手册Linux arch 命令详解一条命令快速识别主机硬件架构linux command 命令手册 arch 是 GNU coreutils 包提供的极简系统文档教程Linux command 命令详解绕过 Shell 函数与别名、稳定调用内部命令Linux command 命令详解绕过 Shell 函数与别名、稳定调用内部命令 本篇技术指南围绕 Linux 命令大全搜索工具linux command文档教程上一篇JXADF安全架构解析基于Spring Security的企业级权限控制实现下一篇GHelper终极指南如何用轻量级工具彻底解放华硕笔记本性能创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

MySQL 8.0与Navicat 17安装连接全指南 2026/10/1 18:12:57

MySQL 8.0与Navicat 17安装连接全指南

1. 安装前的准备:搞清楚 MySQL 和客户端之间的关系先说个真实的场景。前几天组里来了个新人,电脑是刚配的 Windows 11,公司那边给的需求是“本地装个 MySQL,再用 Navicat 连上去写 SQL”。他下载的时候没细看,装了一个…

阅读更多 →
Awesome Fabric 开发资源全景指南:Hyperledger Fabric 从架构、开发环境到 SDK 的完整学习路径 2026/10/1 18:12:57

Awesome Fabric 开发资源全景指南:Hyperledger Fabric 从架构、开发环境到 SDK 的完整学习路径

文档区块链 【免费下载链接】awesome-blockchain-cn 收集所有区块链(BlockChain)技术开发相关资料,包括Fabric和Ethereum开发资料 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-blockchain-cn 点击查看 免费下载 本文以 Hyperledger Fabric/RE…

阅读更多 →
老服务器变身AI网关:Windows Server 2012 + Tomcat 80端口 + DeepSeek部署指南 2026/10/1 18:12:57

老服务器变身AI网关:Windows Server 2012 + Tomcat 80端口 + DeepSeek部署指南

先把结论放前面:这套方案本质上是“老服务器 轻量中间件 大模型API”的组合拳,核心难点不在 DeepSeek 本身,而在 Windows Server 2012 这个老系统的资源约束和 80 端口抢占问题上。如果你也有一台退役边缘的 Windows 服务器,想塞…

阅读更多 →
面向对象视角重审Java多线程:从Thread对象到并发工具的本质 2026/10/1 18:12:57

面向对象视角重审Java多线程:从Thread对象到并发工具的本质

先聊一个我面试时经常抛给候选人的问题:"线程在Java里到底是什么?"十个人里有八个会回答"线程是程序执行的一条路径"或者"是CPU调度的最小单位",这些答案背得滚瓜烂熟,但一追问"那Thread类算怎…

阅读更多 →
TPshop频道搜索新闻UI自动化:从元素定位到稳定断言的全流程实战 2026/10/1 18:12:57

TPshop频道搜索新闻UI自动化:从元素定位到稳定断言的全流程实战

做APP端UI自动化测试,最难受的不是脚本写不出来,而是那种看着毫无难度的用例,真跑到你面前各种花式翻车。就比如TPshop项目实战里的"根据频道搜索新闻",从用户视角看就是点一个频道、输入关键词、看结果,最多…

阅读更多 →
Handy:免费本地离线语音转文字工具深度解析 2026/10/1 18:12:50

Handy:免费本地离线语音转文字工具深度解析

Handy:免费本地离线语音转文字工具深度解析 【免费下载链接】Handy A free, open source, and extensible speech-to-text application that works completely offline. 项目地址: https://gitcode.com/GitHub_Trending/handy11/Handy Handy 是一款免费、开源…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉