如何找出 Linux 中的某个组中有哪些用户?

如何找出 Linux 中的某个组中有哪些用户?

我最近一直在创建新用户并将他们分配到某些组。我想知道是否有一个命令可以显示分配给某个组的所有用户?我尝试过使用“groups”命令,但是每当我使用此命令时,它都会显示“groups:找不到”

答案1

我更喜欢使用获取命令 ...

由于 getent 使用与系统相同的名称服务,因此 getent 将显示所有信息,包括从 LDAP 等网络信息源获得的信息。

因此,对于一个团体,您应该使用以下...

getent group name_of_group

在哪里组名替换为您要查找的组。请注意,这仅返回补充组成员身份,不包括将此组作为主要组的用户。

您还可以执行很多其他查找...passwd这是另一个有用的查找,您需要列出主要组。

答案2

您可以使用 grep:

grep '^group_name_here:' /etc/group

这仅列出补充组成员身份,而不列出将此组作为主要组的用户。而且它只能查找本地组,而不是来自 LDAP 等网络服务的组。

答案3

更容易做groups [username]

如果您想列出所有本地用户及其本地组,您可以这样做

cat /etc/passwd | awk -F':' '{ print $1}' | xargs -n1 groups

如果您收到“组:找不到命令”,则很可能您已将环境路径编辑得更糟,要重置路径,请执行以下操作PATH=$(getconf PATH)

答案4

groups命令打印用户的组成员身份。您可以使用lid命令列出组中的用户,例如:

# lid -g <groupname>

更新:在基于 Debian 的发行版上,命令名称不同于libuser-lid.这两个命令都是由libuser@chris-down 提到的包提供的。

$ sudo libuser-lid -g lpadmin
kadir(uid=xxxx)

相关内容