如何列出LDAP所有使用者的uid?

如何列出LDAP所有使用者的uid?

我使用以下命令來取得 LDAP 所有使用者的清單ldapsearch -x -LLL uid=* > result

以下命令的結果採用以下格式

dn: uid=shahrukh,ou=People,dc=example,dc=com
uid: shahrukh
cn: shahrukh
sn: shahrukh
loginShell: /bin/bash
uidNumber: 1086
gidNumber: 1086
homeDirectory: /home/ldap/shahrukh

這些記錄有完整的清單。

我想將一個文件中的所有 uid 列入候選名單,以便僅列出 uid 的值。

shahrukh
abc
xyz
....
....
....

答案1

您可以在篩選器後指定屬性,它只會顯示這些屬性。

例如:

ldapsearch -x -LLL uid=* uid > result

這可能會給你一堆uid: 12345行。然後,您可能需要透過管道將其刪除,sed以刪除您不需要的部分。 (或者,如果你這樣做perlNet::LDAP你可以精確地提取你想要的東西 - 但我認為ldapsearch+sed是阻力最小的路徑)。

答案2

最簡單的方法是將結果透過管道傳輸到 grep,然後進行剪切。例子是

ldapsearch -x -LLL uid=* | grep uid: | cut -d: -f2 > results

相關內容