如何从域中的 Linux 计算机获取组成员列表?Samba AD/DC

如何从域中的 Linux 计算机获取组成员列表?Samba AD/DC

如果我在以 Samba AD/DC 运行的计算机上运行以下命令,则不会出现任何问题。它有效。 sudo samba-tool group listmembers 'domain users'

问题是我想从域中的另一台 Linux 计算机读取相同(和其他组)的用户列表。我在 Linux 中以域用户身份登录,安装了 PAM winbind。

我试过了wbinfo,它有效,但我无法用它获取组成员列表。getent给我域中的组和用户。但我仍然找不到列出组成员的正确方法。

有什么建议吗?

答案1

我认为您需要使用 ldapsearch 而不是 smb-tools。效果如下;

ldapsearch -LLL -b "dc=example,dc=com" "(&(cn=*)(memberUid=user))" dn

答案2

您已经非常接近目标了,只是您的命令缺少了一条重要信息。您需要在命令中添加“-H ldap://samdom.example.com”,其中“samdom.example.com”是您的 DNS 域。

答案3

感谢@CryptoJones,我观察了LDAP。下面是我为使其正常工作所做的事情。

首先,本例中使用的两台计算机都是 Debian 10。Samba 和所有其他软件都作为 Debian 包安装。Samba AD/DC 配置遵循 Samba 官方网站中的示例。

我的 AD/DC 创建了域“windom.borghi.lan”,其名称为“dc1.windom.borghi.lan”。我从机器“linte.windom.borghi.lan”调用 AD,我以域用户“WINDOM\nicola”的身份登录。

在机器“linte”中我安装了两个包:

$> sudo apt-get install libsasl2-modules-gssapi-mit
$> sudo apt-get install libsasl2-modules-gssapi-heimdal

然后,要查询我的域组“g-leggiTutto”的所有成员,我执行以下操作:

linte WINDOM\nicola> ldapsearch  -H ldap://dc1 -Y GSSAPI -b "dc=windom,dc=borghi,dc=lan" '(memberOf=CN=g-leggitutto*)'

据我所知,使用以前的方法来查找“域用户”组的所有用户是不可能的。但是,您可以搜索所有用户,然后过滤它们。这是我第一次使用 LDAP,可能有更好的方法。

linte WINDOM\nicola> ldapsearch  -H ldap://dc1 -Y GSSAPI -b "dc=windom,dc=borghi,dc=lan" '(sAMAccountName=*)'

然后我过滤掉群组条目和计算机条目并得到了合理的结果。

linte WINDOM\nicola> ldapsearch  -H ldap://dc1 -Y GSSAPI -b "dc=windom,dc=borghi,dc=lan" '(&(sAMAccountName=*)(!(objectClass=group))(!(objectClass=computer)) )' 

再见

相关内容