关于linux:是否有命令列出所有Unix组名?

Is there a command to list all Unix group names?

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

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


你试过这个命令吗

1
groups

用于整个组列表

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

更多信息->UNIX组,切割命令,排序命令


如果您希望系统了解所有组,我建议使用getent,而不是解析/etc/group。在联网系统上,组不仅可以读取/etc/group文件,还可以通过LDAP或黄页获取,即已知组的列表来自本地组文件加上通过LDAP或YP接收的组。

getent group将以/etc/group文件使用的相同格式为您提供所有组的列表。

如果您只需要组名,那么getent group | cut -d: -f1将完成该任务(与上面相同)。


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

1
id -Gn

相当于在Unix上被废弃的groups实用程序(根据Unix手册)。

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

参数说明:

-G, --groups - print all group IDs

-n, --name - print a name instead of a number, for -ugG

-p - Make the output human-readable.