如何获取以给定组作为主要组的用户列表

如何获取以给定组作为主要组的用户列表

getent group xyz

xyz我得到了以下成员的用户列表xyz我得到了作为主要组的或者作为次要群体。

xyz如何获取主要组的用户列表?

我的用户在 LDAP 中,所以我不是在寻找涉及解析的解决方案/etc/group

答案1

我认为您没有比检索每个成员用户的信息更好的了:

groupinfo="$(getent group xyz)"
groupinfo="${groupinfo#*:*:}"
gid="${groupinfo%%:*}"
members="${groupinfo##*:}"
(IFS=,; set -f; for member in $members; do
 getent passwd $member | grep -E "([^:]+:){3}$gid:"
 done)

如果您的 LDAP 服务器允许您使用 枚举所有用户getent passwd,您可以在确定 gid 后解析它:

groupinfo="$(getent group xyz)"
groupinfo="${groupinfo#*:*:}"
gid="${groupinfo%%:*}"
getent passwd | grep -E "([^:]+:){3}$gid:"

相关内容