我最近一直在创建新用户并将他们分配到某些组。我想知道是否有一个命令可以显示分配给某个组的所有用户?我尝试过使用“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)