是否有一个命令可以列出所有的Unix组名?

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

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

对该问题的评论 (4)
解决办法

要列出所有分配有用户的本地组,使用这个命令。

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

欲了解更多信息- > Unix组, 剪切命令, 排序命令.

评论(4)

如果你想让系统知道_所有的组,我建议使用getent而不是解析/etc/group。在网络系统中,组不仅可以从/etc/group文件中读取,还可以通过LDAP或Yellow Pages获得,也就是说,已知组的列表来自本地组文件和通过LDAP或YP获得的组。

getent group将给你一个与/etc/group文件相同格式的_所有_组的列表。

如果你只想知道组的名称,getent group | cut -d: -f1就可以完成工作(与上面相同)。

评论(3)

在Linux、macOS和Unix上,要显示你所属的组,请使用。

id -Gn

相当于Unix上已经淘汰的groups工具(根据Unix手册)。

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

参数的解释。

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

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

-p - 使输出结果可供人类阅读。

评论(5)