次のコマンドを使用して、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 を 1 つのファイルにリストします。
shahrukh
abc
xyz
....
....
....
答え1
フィルターの後に属性を指定すると、それらの属性のみが表示されます。
例えば:
ldapsearch -x -LLL uid=* uid > result
これにより、多数の行が生成される可能性があります。その後、不要な部分を削除するためにuid: 12345
パイプ処理が必要になる場合があります。(または、 と を使用すると、必要なものを正確に抽出できますが、 + が最も抵抗の少ないパスだと思います)。sed
perl
Net::LDAP
ldapsearch
sed
答え2
最も簡単な方法は、結果をgrepにパイプしてカットすることです。例は次のとおりです。
ldapsearch -x -LLL uid=* | grep uid: | cut -d: -f2 > results