모든 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원하지 않는 비트를 제거하기 위해 파이프를 연결해야 할 수도 있습니다 . ( perl또는 Net::LDAP원하는 것을 정확하게 추출할 수 있다면 ldapsearch+가 sed저항이 가장 적은 경로라고 생각합니다).

답변2

가장 쉬운 방법은 결과를 grep으로 파이프한 다음 잘라내는 것입니다. 예는 다음과 같습니다

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

관련 정보