644

我知道有/etc/group列出所有用户组的文件。

我想知道是否有一个简单的命令可以列出所有用户组名称,尽管解析了世界可读/etc/group文件。我愿意创建一个列出 Linux 帐户组名的管理员网页。

4

3 回答 3

912

要列出所有已分配用户的本地组,请使用以下命令:

cut -d: -f1 /etc/group | sort

有关更多信息-> Unix 组剪切命令排序命令

于 2012-12-27T19:29:12.420 回答
287

如果您希望系统知道所有组,我建议使用getent group而不是解析/etc/group

getent group

原因是在联网系统上,组不仅可以从/etc/group文件中读取,还可以通过 LDAP 或黄页获得(已知组的列表来自本地组文件加上通过 LDAP 或 YP 接收的组)。

如果您只想要组名,您可以使用:

getent group | cut -d: -f1
于 2014-02-24T20:22:25.003 回答
55

在 Linux、macOS 和 Unix 上显示您所属的组,请使用:

id -Gn

这相当于groups在 Unix 上已经过时的实用程序(根据Unix 手册)。

在 macOS 和 Unix 上,id -p建议使用该命令进行正常交互。

参数说明:

-G, --groups- 打印所有组 ID

-n, --name- 打印名称而不是数字,对于-ugG

-p- 使输出可读。

于 2015-04-13T22:04:48.420 回答