如何從網域中的Linux電腦取得群組成員清單?桑巴AD/DC

如何從網域中的Linux電腦取得群組成員清單?桑巴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 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*)'

AFAIC說不可能使用以前的方法來查找「網域使用者」群組的所有使用者。但是,您可以搜尋所有用戶,然後過濾它們。這是我第一次使用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)) )' 

再見

相關內容