在 Linux 系统中,查看群组(Groups)的方法有多种,具体取决于你想查看的是当前用户所属的群组、系统中所有存在的群组列表,还是某个特定用户所属的群组。
以下是常用的命令和操作方法:
查看当前用户所属的群组
这是最常用的场景,用于确认当前登录用户有哪些权限。
groups
或者
id
groups:直接列出当前用户所属的所有群组,以空格分隔。id:显示更详细的信息,包括用户 ID (uid)、主群组 (gid) 以及附加群组 (groups)。
示例输出:
$ groups user1 adm cdrom sudo dip plugdev lpadmin lxd sambashare $ id uid=1000(user1) gid=1000(user1) groups=1000(user1),4(adm),24(cdrom),27(sudo),...
查看系统中所有已创建的群组
如果你想列出系统中定义的所有群组名称:
查看 /etc/group 文件
/etc/group 是存储群组信息的配置文件。
cat /etc/group
或仅查看群组名称:
cut -d: -f1 /etc/group
使用 getent 命令(推荐)
getent 可以从多个数据库(如本地文件、LDAP、NIS 等)中获取信息,因此更通用。
getent group
或仅列出群组名称:
getent group | cut -d: -f1
查看特定用户所属的群组
如果你想查看某个其他用户(而非当前用户)属于哪些群组:
groups 用户名
或
id 用户名
示例:
$ groups root root : root $ id john uid=1001(john) gid=1001(john) groups=1001(john),27(sudo)
查看群组详细信息(如成员列表)
如果你想查看某个群组有哪些成员,以及该群组的 GID 等信息:
getent group 群组名
示例:
$ getent group sudo sudo:x:27:john,alice,bob
sudo:群组名x:密码占位符(通常为空或使用x表示密码在/etc/gshadow中)27:GID(群组 ID)john,alice,bob:该群组的附加成员列表
查看用户属于哪个主群组
每个用户都有一个主群组(Primary Group),通常在创建用户时自动创建。
id -gn 用户名
或
id -g 用户名 # 返回主群组的 GID
| 需求 | 命令 |
|---|---|
| 查看当前用户群组 | groups 或 id |
| 查看所有群组列表 | getent group 或 cat /etc/group |
| 查看某用户群组 | groups 用户名 或 id 用户名 |
| 查看某群组详情 | getent group 群组名 |
💡 提示:如果你需要修改用户所属群组,可以使用
usermod -aG 群组名 用户名命令(注意-a表示追加,避免覆盖原有群组)。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/477611.html



