是否有命令列出所有Unix组名?

时间:2012-12-27 19:09:32

标签: linux

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

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

3 个答案:

答案 0 :(得分:828)

您是否尝试过此命令

groups

整个群组列表使用

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

更多信息 - > Unix groupsCut commandsort command

答案 1 :(得分:248)

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

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

如果您只想要群组名称,getent group | cut -d: -f1将完成这项工作(与上述相同)。

答案 2 :(得分:44)

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

id -Gn

相当于已在Unix上废弃的groups实用程序(根据Unix manual)。

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

参数说明:

  

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

     

-n--name - 为-ugG

打印名称而不是数字      

-p - 使输出具有人类可读性。