如何列出 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以删除你不想要的部分。(或者,如果你使用perland来执行此操作,Net::LDAP你可以精确地提取你想要的内容 - 但我认为ldapsearch+sed是阻力最小的路径)。

答案2

最简单的方法是将结果通过管道传输到 grep,然后剪切。示例是

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

相关内容