Hvis du jobber i et middels til stort selskap, samhandler du sannsynligvis daglig med LDAP.
ENTEN DETTE er på En windows-domenekontroller eller På En Linux OpenLDAP-server, ER LDAP-protokollen veldig nyttig for å sentralisere godkjenning.
men etter hvert SOM LDAP-katalogen din vokser, kan du gå deg vill i alle oppføringene du må administrere.Heldigvis er Det En kommando Som hjelper deg med å søke etter oppføringer i ET LDAP-katalogtre : ldapsearch.
i denne opplæringen skal vi se hvordan du enkelt kan søke LDAP ved hjelp av ldapsearch.
Vi skal også gjennomgå alternativene som tilbys av kommandoen for å utføre avanserte LDAP-søk.
Innholdsfortegnelse
- SØK LDAP ved hjelp av ldapsearch
- Søk LDAP med administratorkonto
- Å Kjøre LDAP-Søk med Filtre
- Finne alle objekter i katalogtreet
- Finne brukerkontoer ved hjelp av ldapsearch
- Og Operatør som bruker ldapsearch
- eller operatør som bruker ldapsearch
- Negasjonsfiltre ved hjelp av ldapsearch
- Finne LDAP-serverkonfigurasjon ved hjelp av ldapsearch
- Bruke Jokertegn i LDAP-søk
- Ldapsearch Avanserte Alternativer
- LDAP Extensible Match-Filtre
- Standardoperatører For Superlading
- Konklusjon
SØK LDAP ved hjelp av ldapsearch
den enkleste måten å søke LDAP på er å bruke ldapsearch med alternativet «-x «for enkel godkjenning og angi søkebasen med»- b».
hvis du ikke kjører søket direkte på LDAP-serveren, må du spesifisere verten med alternativet» – H».
$ ldapsearch -x -b <search_base> -H <ldap_host>
som et eksempel, la oss si at Du har En OpenLDAP-server installert og kjører på 192.168.178.29-verten på nettverket ditt.
hvis serveren din godtar anonym godkjenning, vil DU kunne utføre ET LDAP – søk uten å være bundet til administratorkontoen.
$ ldapsearch -x -b "dc=devconnected,dc=com" -H ldap://192.168.178.29
som du kan se, hvis du ikke angir noen filtre, ldap-klienten vil anta at du vil kjøre et søk på alle objektklasser i katalogtreet.
som en konsekvens vil du bli presentert med mye informasjon. Hvis du vil begrense informasjonen som presenteres, skal vi forklare LDAP-filtre i neste kapittel.
Søk LDAP med administratorkonto
i noen tilfeller vil DU kanskje kjøre LDAP-spørringer som administratorkonto for å få ytterligere informasjon presentert for deg.
for å oppnå dette må du gjøre en bind-forespørsel ved hjelp av administratorkontoen TIL LDAP-treet.
for å søke LDAP ved hjelp av administratorkontoen, må du utføre «ldapsearch» – spørringen med» – D «- alternativet for bind DN og «- W » for å bli bedt om passordet.
$ ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W
la oss for eksempel si at administratorkontoen din har følgende navn: «cn=admin, dc=devconnected, dc=com».
FOR å utføre ET LDAP-søk som denne kontoen, må du kjøre følgende spørring
$ ldapsearch -x -b "dc=devconnected,dc=com" -H ldap://192.168.178.29 -D "cn=admin,dc=devconnected,dc=com" -W
Når du Kjører et ldap-søk som administratorkonto, kan du bli utsatt for brukerkrypterte passord, så sørg for at du kjører spørringen privat.
Å Kjøre LDAP-Søk med Filtre
Å Kjøre ET VANLIG LDAP – søk uten filtre er sannsynligvis bortkastet tid og ressurs.
Mesteparten av tiden vil DU kjøre ET LDAP – søk for å finne bestemte objekter i LDAP-katalogtreet.
for å søke ETTER EN LDAP-oppføring med filtre, kan du legge til filteret på slutten av ldapsearch-kommandoen : til venstre angir du objekttypen og til høyre objektverdien.
Eventuelt kan du angi attributtene som skal returneres fra objektet (brukernavn, brukerpassord etc.)
$ ldapsearch <previous_options> "(object_type)=(object_value)" <optional_attributes>
Finne alle objekter i katalogtreet
for å returnere alle objekter som er tilgjengelige i LDAP-treet, kan du legge til «objectclass» – filteret og et jokertegn » * » for å angi at du vil returnere alle objekter.
$ ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W "objectclass=*"
når du utfører denne spørringen, vil du bli presentert med alle objekter og alle attributter som er tilgjengelige i treet.
Finne brukerkontoer ved hjelp av ldapsearch
la Oss for eksempel si at du vil finne alle brukerkontoer i LDAP-katalogtreet.
som standard vil brukerkontoer mest sannsynlig ha» konto » strukturell objektklasse, som kan brukes til å begrense alle brukerkontoer.
$ ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W "objectclass=account"
som standard vil spørringen returnere alle tilgjengelige attributter for den gitte objektklassen.
som angitt i forrige avsnitt, kan du legge til valgfrie attributter til søket ditt hvis du vil begrense søket.
hvis du for eksempel bare er interessert i bruker CN, UID og hjemmekatalog, vil du kjøre FØLGENDE LDAP-søk
$ ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W "objectclass=account" cn uid homeDirectory
awesome, du har utført EN LDAP søk ved hjelp av filtre og attributt velgere!
Og Operatør som bruker ldapsearch
for å ha flere filtre adskilt av » og «operatører, må du legge ved alle forholdene mellom parentes og ha et»& » tegn skrevet i begynnelsen av spørringen.
$ ldapsearch <previous_options> "(&(<condition_1>)(<condition_2>)...)"
la oss for eksempel si at du vil finne alle oppføringer har en «objectclass» som er lik «konto» og en «uid» som er lik «john», du vil kjøre følgende spørring
$ ldapsearch <previous_options> "(&(objectclass=account)(uid=john))"
eller operatør som bruker ldapsearch
for å få flere filtre adskilt av «eller» operatører, må du legge ved alle forholdene mellom parentes og ha et «|» tegn skrevet i begynnelsen av spørringen.
$ ldapsearch <previous_options> "(|(<condition_1>)(<condition_2>)...)"
hvis du for eksempel vil finne alle oppføringer som har en objektklasse av typen «konto» eller eller skriv «organisatorisk rolle», vil du kjøre følgende spørring
$ ldapsearch <previous_options> "(|(objectclass=account)(objectclass=organizationalRole))"
Negasjonsfiltre ved hjelp av ldapsearch
I noen tilfeller vil du negativt matche noen av oppføringene i din ldap-katalogtreet.
for å ha en negativ match filter, må du legge din tilstand(e) med en «!»karakter og har forhold adskilt ved å omslutte parentes.
$ ldapsearch <previous_options> "(!(<condition_1>)(<condition_2>)...)"
hvis du for eksempel vil matche alle oppføringer SOM IKKE har et «cn» – attributt med verdi «john», skriver du følgende spørring
$ ldapsearch <previous_options> "(!(cn=john))"
Finne LDAP-serverkonfigurasjon ved hjelp av ldapsearch
en avansert bruk av ldapsearch-kommandoen er å hente konfigurasjonen AV LDAP-treet.
hvis Du er kjent Med OpenLDAP, vet du at det er et globalt konfigurasjonsobjekt som sitter øverst i LDAP-hierarkiet.
i noen tilfeller vil DU kanskje se attributter FOR LDAP-konfigurasjonen din, for eksempel for å endre tilgangskontroll eller for å endre root-administratorpassordet.
for å søke ETTER LDAP-konfigurasjonen, bruk kommandoen «ldapsearch» og spesifiser «cn=config» som søkebase for LDAP-treet ditt.
for å kjøre dette søket må du bruke alternativet «-Y «og angi» EKSTERN » som godkjenningsmekanisme.
$ ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config
Merk: denne kommandoen må kjøres direkte på serveren, ikke fra EN AV LDAP-klientene dine.
som standard vil denne kommandoen returnere mange resultater når den returnerer backends skjemaer og moduler.
hvis du vil begrense søket til databasekonfigurasjoner, kan du angi objektklassen «olcDatabaseConfig» med ldapsearch.
$ ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config "(objectclass=olcDatabaseConfig)"
Bruke Jokertegn i LDAP-søk
En annen effektiv måte å søke gjennom EN LISTE OVER LDAP-oppføringer på, er å bruke jokertegn som stjernen («*»).
jokertegnet har samme funksjon som stjernen du bruker i regex : det vil bli brukt til å matche ethvert attributt som starter eller slutter med en gitt substring.
$ ldapsearch <previous_options> "(object_type)=*(object_value)"$ ldapsearch <previous_options> "(object_type)=(object_value)*"
som et eksempel, la oss si at du vil finne alle oppføringer som har et attributt» uid «som begynner med bokstaven»j».
$ ldapsearch <previous_options> "uid=jo*"
Ldapsearch Avanserte Alternativer
i denne opplæringen lærte du om grunnleggende ldapsearch-alternativer, men det er mange andre som kan være interessert i deg.
LDAP Extensible Match-Filtre
Extensible LDAP match-filtre brukes til å overbelaste eksisterende operatører (for eksempel likestillingsoperatoren) ved å angi hvilken type sammenligning du vil utføre.
Standardoperatører For Superlading
for å overlade EN LDAP-operatør må du bruke syntaksen»:=».
$ ldapsearch <previous_options> "<object_type>:=<object_value>"
For eksempel, hvis du vil søke etter alle oppføringer har en «cn» som er lik «john», vil du kjøre følgende kommando
$ ldapsearch <previous_options> "cn:=john"# Which is equivalent to$ ldapsearch <previous_options> "cn=john"
som du sikkert har lagt merke til, kjører søket på «john» eller PÅ «JOHN» returnerer det samme eksakte resultatet.
som en konsekvens, kan det være lurt å begrense resultatene til» john » eksakt samsvar, noe som gjør søket store og små bokstaver.
ved hjelp av ldapsearch kan du legge til flere filtre atskilt med»: «- tegn.
$ ldapsearch <previous_options> "<object_type>:<op1>:<op2>:=<object_value>"
for eksempel, for å få et søk som er saksfølsomt, vil du kjøre følgende kommando
$ ldapsearch <previous_options> "cn:caseExactMatch:=john"
hvis DU ikke er kjent med LDAP match-filtre, her er en liste over alle operatørene som er tilgjengelige for deg.
Konklusjon
i denne opplæringen lærte du hvordan du kan søke i ET LDAP-katalogtre ved hjelp av ldapsearch-kommandoen.
Du har sett det grunnleggende om å søke grunnleggende oppføringer og attributter samt bygge komplekse matchende filtre med operatorer (og, eller og negative operatorer).
du lærte også at det er mulig å overbelaste eksisterende operatører ved å bruke utvidbare samsvarsalternativer og angi den egendefinerte operatøren som skal brukes.
hvis Du er interessert I Avansert Linux Systemadministrasjon, har vi en komplett seksjon dedikert til den på nettsiden, så sørg for å sjekke det ut!