0% found this document useful (0 votes)
56 views82 pages

Using Openldap: Doc. V. Rc0.1 - 2/06/09

This document provides an overview of using OpenLDAP to manage a directory service. It describes the basic components of OpenLDAP including daemons, clients, and utilities. It then discusses common directory operations like searching, adding/modifying/deleting records, and authentication from both the server and client sides. Specific OpenLDAP daemons and tools are explained in detail.

Uploaded by

nekicova
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views82 pages

Using Openldap: Doc. V. Rc0.1 - 2/06/09

This document provides an overview of using OpenLDAP to manage a directory service. It describes the basic components of OpenLDAP including daemons, clients, and utilities. It then discusses common directory operations like searching, adding/modifying/deleting records, and authentication from both the server and client sides. Specific OpenLDAP daemons and tools are explained in detail.

Uploaded by

nekicova
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 82

#3

Using OpenLDAP
Doc. v. rc0.1 - 2/06/09

Wildan Maulana | wildan [at] tobethink.com

About Me
Freelance Consultant - Software Developer System Integrator Founder of OpenT !n" #abs OSS $vangel!st Ma!n Developer of OpenT !n" SAS More Info %
Blog % ttp%&&w!ldanm'wordpress'com Y! % aw"!ng()*+ Gtalk % w!ldan'm Mobile Phone % ,-*./..0122*02

Overv!ew
T e bas!c funct!onal d!v!s!on of t e Open#DA3 tools % daemons4 cl!ents4 and ut!l!t!es T e bas!c d!rectory server operat!ons 5u!ld!ng an !n!t!al d!rectory tree !n an #DIF f!le #oad!ng t e data !nto t e d!rectory 6or"!ng w!t t e d!rectory records Searc !ng t e d!rectory Sett!ng passwords and aut ent!cat!ng aga!nst t e d!rectory

A 5r!ef Survey of t e #DA3 Su!te


Daemon #!brar!es Cl!ents ut!l!t!es

#DA3 from t e Server S!de


S#A3D T e 5!nd!ng Operat!on T e Searc Operat!on More Operat!ons % Add!t!ons4 Mod!f!cat!ons4 and Delet!ons Infre7uent Operat!ons S#A3D Summary S#893D spec!al daemon for repl!cat!ng d!rector!es :deprecated;

S#A3D
T e S#A3D server andles all cl!ent !nteract!ons4 !nclud!ng aut ent!cat!on :called binding !n #DA3 parlance;4 process!ng AC#s4 perform!ng searc es4 and andl!ng c anges4 add!t!ons4 and delet!ons of t e data and also manages t e databases t at store #DA3 content

T e 5!nd!ng Operat!on
Typ!cally4 t ere are two d!fferent ways by w !c a cl!ent can aut ent!cate to a server% t roug a S!mple 5!nd4 and t roug an SAS# 5!nd' Typ!cally4 to aut ent!cate a user4 S#A3D loo"s up t e D< :and t e D<=s userPassword attr!bute; !n t e d!rectory and ver!f!es t e follow!ng% )' T e suppl!ed D< e>!sts !n t e d!rectory' *' T e D< !s allowed to connect under t e present cond!t!ons :suc as from t e or!g!nat!ng I3 address4 or w!t t e currently-!mplemented secur!ty features;' +' T e password suppl!ed matc es t e value of t e D<=s userPassword attr!bute'

T e Searc Operat!on
In order to searc t e d!rectory we need to "now t e follow!ng t !ngs% Base DN% 6 ere !n t e d!rectory to start from Scope% ?ow deep !n t e tree to loo" Attributes% 6 at !nformat!on we want retr!eved Filter% 6 at to loo" for $>ample % 5ob wants to get a l!st of all of t e people !n !s organ!@at!on4 $>ample'Com4 w o ave ema!l addresses t at beg!n w!t t e letter m

T e Searc Operat!on A*
6e ave % Base DN% dcBe>ample4dcBcom Scope% $nt!re subtree Attributes% ma!l4 cn4 telep one<umber T e Searc f!lter % :ma!lBmC; T !s s!mple f!lter !s composed of four parts%
First4 t e f!lter !s enclosed !n parent eses' 3arent eses are used for group!ng elements w!t !n t e f!lter' For any f!lter4 t e ent!re f!lter s ould always be enclosed !n parent eses' Second4 t e f!lter beg!ns w!t an attr!bute descr!pt!on% ma!l' Third !s t e matc !ng rule' T ere are four matc !ng rules% e7ual!ty :B;4 appro>!mate matc :DB;4 greater t an or e7ual to :EB;4 and less t an or e7ual to :FB;' ?ow t ese are used :and w et er t ey can be used; !s determ!ned to a large degree by t e d!rectory sc ema' In t !s case t e f!lter performs str!ng matc !ng' Finall 4 we ave t e assert!on valueGt e str!ng or pattern t at we want results to matc ' In t !s case !t !s composed of t e c aracter m and t e w!ldcard c aracter :C;' T !s !nd!cates t at t e str!ng must start w!t !4 and can t en ave @ero or more c aracters follow!ng !t'

T e Searc Operat!on A+ More F!lter $>ample


5ob wants to restr!ct t e l!st to only people w ose off!ces ave room numbers of +HH or above
(& (| (mail = m*) (mail = n*) ) (roomNumber >= 300) )

More Operat!on % Add!t!ons4 Mod!f!cat!ons4 and Delet!ons


In our !llustrat!on of 5ob=s searc for ema!l addresses we covered only b!nd!ng and searc !ng' Of course4 #DA3 supports add!ng4 mod!fy!ng4 and delet!ng4 as well' All t ree of t ese also re7u!re t at t e user f!rst b!nd' And all t ree of t ese are also subIect to AC# restr!ct!ons'

T e Add!t!on Operat!on
An ent!re record for a user to be added m!g t loo" somet !ng l!"e t !s%
dn: uid=bjensen,dc=exam le,dc=com cn: !arbara "ensen mail: bjensen#exam le$com uid: bjensen objec%&lass: erson objec%&lass: or'ani(a%ional)erson objec%&lass: ine%*r')erson

T e Mod!f!cat!on Operat!on
Mod!f!cat!on acts on a part!cular record4 spec!f!ed by D<' Any number of c anges can be done on a s!ngle record !n one mod!f!cat!on re7uest' An add 9e7uest A replace re7uest A delete re7uest

T e Delete Operat!on
F!nally4 an ent!re #DA3 record can be deleted' #!"e mod!f!cat!ons4 delet!on operates on a part!cular record4 t e record=s D<' Dur!ng a delete operat!on4 t e ent!re record !s removed from t e d!rectoryGt e D< and all attr!butes' Only records t at do not ave c !ldren can be deleted from t e d!rectory' If an entry as c !ldren4 t e c !ldren must be removed from t e d!rectory :or relocated to anot er part of t e tree; before t e parent entry can be removed'

Infre7uent Operat!ons
Mod!fyD< Compare $>tended Operat!on

Mod!fyD<

T e Mod!fyD< operat!on prov!des a way to c ange Iust t e 9D< or t e ent!re D<' C ang!ng t e latter e7uates to mov!ng t e record to anot er part of t e d!rectory tree'

T e Compare Operat!on
A Compare operat!on ta"es a D< and an attr!bute value assert!on :attribute " #alue;4 and c ec"s to see !f t at attr!bute assert!on !s true or $alse' For e>ample4 !f t e cl!ent suppl!es t e D< cn"Matt%dc"e&a!ple%dc"co! and t e attr!bute value assert!on cn"Matthew4 t en t e server w!ll return true !f t e record as an attr!bute cn w!t t e value Matthew4 or $alse ot erw!se' T !s operat!on can be faster :and also more secure; t an fetc !ng a record and do!ng t e compar!son on t e cl!ent s!de'

T e $>tended Operat!on
F!nally4 Open#DA3 !mplements t e #DA3 v'+ $>tended Operat!on4 w !c ma"es !t poss!ble for a server to !mplement custom operat!ons' T e e>act synta> of an $>tended Operat!on w!ll depend on t e !mplementat!on of t e e>tens!on' T e supported $>tended Operat!ons are l!sted !n t e root DS$ under t e supported'&tension attr!bute' Ta"e a loo" at t e root DS$ at t e end of Sl!de A*' In t at record t ere are two e>tended operat!ons%
)'+'-')'0')'0*H+')'))')% T !s Modi$ Password e>tens!on !s def!ned !n 9FC +H-* : ttp%&&www'rfc-ed!tor'org&rfc&rfc+H-*'t>t;' T !s e>tens!on prov!des an operat!on for updat!ng a password !n t e d!rectory' )'+'-')'0')'0*H+')'))'+% T !s (ho A! )* e>tens!on !s def!ned !n 9FC 01+* : ttp%&&www'rfc-ed!tor'org&rfc&rfc01+*'t>t;' T !s e>tens!on ma"es !t poss!ble for t e currently act!ve D< to f!nd out about !tself from t e server'

S#A3D Summary

S#893D

Creat!ng D!rectory Data


T e #DIF F!le Format Anatomy of an #DIF F!le 9epresent!ng Attr!bute Jalues !n #DIF $>ample'Com !n #DIF Def!n!ng t e 5ase D< 9ecord Structur!ng t e D!rectory w!t Organ!@at!onal 8n!ts Add!ng 8ser 9ecords Add!ng System 9ecords Add!ng Kroup 9ecords T e Complete #DIF F!le

T e #DIF F!le Format


dn: uid=bjensen,dc=exam le,dc=com cn: !arbara "ensen mail: bjensen#exam le$com uid: bjensen objec%&lass: erson objec%&lass: or'ani(a%ional)erson objec%&lass: ine%*r')erson
T !s format !s t e standard way of represent!ng #DA3 d!rectory entr!es !n a te>t f!le' It !s an e>ample of a record wr!tten !n t e +DAP Data )nterchange For!at ,+D)F-4 vers!on )' T e #DIF standard def!nes a f!le format not only for represent!ng t e contents of a d!rectory4 but for represent!ng certa!n #DA3 operat!ons4 suc as add!t!ons4 c anges4 and delet!ons' In t e sect!on on t e ldapmod!fy cl!ent4 we w!ll use #DIF to spec!fy c anges to records !n t e d!rectory server4 but r!g t now we are !nterested !n creat!ng a f!le t at represents t e contents of our d!rectory'

Anatomy of an #DIF F!le


9ecords are separated by empty l!nes4 and eac record must beg!n w!t a D<%
# +irs% ,ocumen%: -*n .iber%/- b/ "$0$ 1ill dn: documen%2den%i3ier=004,dc=exam le,dc=com documen%2den%i3ier: 004 documen%5i%le: *n .iber%/ documen%6u%7or: cn="o7n 0%uar% 1ill,dc=exam le,dc=com objec%&lass: documen% objec%&lass: %o # 0econd ,ocumen%: -5rea%ise on 8uman Na%ure- b/ ,a9id 8ume dn: documen%2den%i3ier=00:,dc=exam le,dc=com documen%2den%i3ier: 00: documen%5i%le: 5rea%ise on 8uman Na%ure documen%6u%7or: cn=,a9id 8ume,dc=exam le,dc=com objec%&lass: documen% objec%&lass: %o

T e Document ObIect Class


#DA3 d!rector!es can model a var!ety of d!fferent types of obIects' T e document obIect class4 used !n t e prev!ous e>ample4 represents documents :suc as boo"s4 papers4 and manuals; !n t e d!rectory' T e sc ema for t e document obIect class and t e related documentSer!es obIect class !s conta!ned !n cos!ne'sc ema and def!ned !n sect!on +'* of 9FC 01*0 :ftp%&&ftp'rfc-ed!tor'org&!nnotes&rfc01*0't>t; #et=s loo" at t e l!st of attr!butes for t e document and documentSer!es obIect classes%

9epresent!ng Attr!bute Jalues !n #DIF


dn: documen%2den%i3ier=003,dc=exam le,dc=com documen%2den%i3ier: 003 documentTitle: An essay on the nature and conduct of the passions and affections with illustrations on the moral sense. documen%6u%7or: cn=+rancis 8u%c7ison,dc=exam le,dc=com objec%&lass: documen% objec%&lass: %o dn: documen%2den%i3ier=00;,dc=exam le,dc=com documen%2den%i3ier: 00; documentTitle:: bW9u W!"b#9ne$%% documen%6u%7or: cn=<$ =$ .eibni(,dc=exam le,dc=com objec%&lass: documen% objec%&lass: %o dn: documen%2den%i3ier=00>,dc=exam le,dc=com documen%2den%i3ier: 00> documen%5i%le: ?ssa/s in )ra'ma%ism documen%6u%7or: cn==illiam "ames,dc=exam le,dc=com description:& file:'''home'mbutcher'lon()description.t*t objec%&lass: documen% objec%&lass: %o

9epresent!ng Attr!bute Jalues !n #DIF


dn: documen%2den%i3ier=00@,dc=exam le,dc=com documen%2den%i3ier: 00@ documentTitle+lan()en: ,n #eneration and -orruption documentTitle+lan()la: .e #eneratione et -orruptione documen%6u%7or: cn=6ris%o%le,dc=exam le,dc=com objec%&lass: documen% objec%&lass: %o

$>ample'com #DIF
T ere are two popular ways of def!n!ng t e roots of an organ!@at!onal d!rectory tree% T e f!rst !s to create a root entry t at !nd!cates t e off!c!al name of t e organ!@at!on and t e geograp !c locat!on :usually Iust t e country; of t e organ!@at!on' ?ere are a few e>amples% o=6rius .%d$,c=AB o=6cme <m!8,c=,? o=?xam le$&om,c=A0 In eac of t ese t ree e>amples4 o represents t e organ!@at!on name4 and c !s t e two-c aracter country code' T e second popular model !s to use t e organ!@at!on=s doma!n name' For e>ample4 !f t e company A!r!us as reg!stered t e a!rus'co'u" doma!n name4 t en t e root D< would be composed of t ree doma!n component :dc; attr!butes% dc=airius,dc=co,dc=uC dc=acme,dc=de dc=exam le,dc=com

Def!n!ng t e 5ase D< 9ecord


Our base D< loo"s l!"e t !s%
dn: dc=exam le,dc=com descri %ion: ?xam le$&om, /our %rus%ed nonDexis%en% cor ora%ion$ dc: exam le o: ?xam le$&om objec%&lass: %o objec%&lass: dc*bjec% objec%&lass: or'ani(a%ion

/andlin( !e0uests for !ecords ,utside the .irectory Tree


=7a% i3 a searc7 reEues% comes in%o our ?xam le$&om direc%or/ 3or dc=comF *r G7a% i3 Ge 'e% a reEues% 3or dc=o%7er?xam le,dc=comF 57ese are records no% ex ec%ed %o be in our direc%or/$ Asin' %7e re3erral direc%i9e in %7e sla d$con3 3ile, /ou can direc% reEues%s o3 %7is sor% %o ano%7er ser9er %7a% mi'7% ro9e more au%7ori%a%i9e on %7e ma%%er$ 57e s/n%ax 3or %7e direc%i9e is re3erral Hlda AI.>, 3or exam le: re3erral lda :JJroo%$o enlda $or'$

Structur!ng t e D!rectory w!t Organ!@at!onal 8n!ts


Open#DA3 does not prov!de a default O8 subtree structure4 so you w!ll need to create your own' T !s can be done !n many ways4 but ere we w!ll see t e two prom!nent t eor!es of ow O8s s ould be structured' T eory )% D!rectory as Organ!@at!onal C art

T eory *% D!rectory as IT Serv!ce

$>press!ng t e O8s !n #DIF


<ow we are ready to wr!te out our c osen O8s !n #DIF' 6e w!ll create t ree O8sG8sers4 Kroups4 and SystemGas follows%
# 0ub%ree 3or users dn: ou=Asers,dc=exam le,dc=com ou: Asers descri %ion: ?xam le$&om Asers objec%&lass: or'ani(a%ionalAni% # 0ub%ree 3or 'rou s dn: ou=<rou s,dc=exam le,dc=com ou: <rou s descri %ion: ?xam le$&om <rou s objec%&lass: or'ani(a%ionalAni% # 0ub%ree 3or s/s%em accoun%s dn: ou=0/s%em,dc=exam le,dc=com ou: 0/s%em descri %ion: 0 ecial accoun%s used b/ so3%Gare a objec%&lass: or'ani(a%ionalAni%

lica%ions$

6!t our O8s !n place we are ready to add a t !rd t!er to our d!rectory tree' 5efore we start creat!ng !nd!v!dual records let=s get an overv!ew of w at t !s ne>t t!er w!ll loo" l!"e' ?ere !s t e d!rectory tree structure w!t a group4 a system account4 and a pa!r of users%

Add!ng 8ser 9ecords


# !arbara "ensen: dn: uid=barbara,ou=Asers,dc=exam le,dc=com ou: Asers uid: !arbara sn: "ensen cn: !arbara "ensen 'i9enName: !arbara dis la/Name: !arbara "ensen mail: barbara#exam le$com user)assGord: secre% objec%&lass: erson objec%&lass: or'ani(a%ional)erson objec%&lass: ine%*r')erson

Add!ng 8ser 9ecords


An !netOrg3erson record t at ut!l!@es more of t e ava!lable attr!butes m!g t loo" l!"e t !s%
# 1a%% !u%c7er dn: uid=ma%%,ou=Asers,dc=exam le,dc=com ou: Asers # Name in3o: uid: 1a%% cn: 1a%% !u%c7er sn: !u%c7er 'i9enName: 1a%% 'i9enName: 1a%%7eG dis la/Name: 1a%% !u%c7er # =orC 2n3o: %i%le: 0/s%ems 2n%e'ra%or descri %ion: 0/s%ems 2n%e'ra%ion and 25 3or ?xam le$&om em lo/ee5/ e: ?m lo/ee de ar%men%Number: 004 em lo/eeNumber: 004D0KDLK mail: mbu%c7er#exam le$com mail: ma%%#exam le$com roomNumber: 304 %ele 7oneNumber: M4 >>> >>> ;3:4 mobile: M4 >>> >>> @NKL s%: 2llinois l: &7ica'o s%ree%: 4:3; &icero 69e$ # 8ome 2n3o: 7ome)7one: M4 >>> >>> LKN@ 7ome)os%al6ddress: 4:3; 7ome s%ree% O &7ica'o, 2. O @0@LLD4:3; # 1isc: user)assGord: secre% re3erred.an'ua'e: enDus,enD'b objec%&lass: erson objec%&lass: or'ani(a%ional)erson objec%&lass: ine%*r')erson

Add!ng System 9ecords


# 0 ecial 6ccoun% 3or 6u%7en%ica%ion: dn: uid=au%7en%ica%e,ou=0/s%em,dc=exam le,dc=com uid: au%7en%ica%e ou: 0/s%em descri %ion: 0 ecial accoun% 3or au%7en%ica%in' users user)assGord: secre% objec%&lass: accoun% objec%&lass: sim le0ecuri%/*bjec%

Add!ng Kroup 9ecords


# .,6) 6dmin <rou : dn: cn=.,6) 6dmins,ou=<rou s,dc=exam le,dc=com cn: .,6) 6dmins ou: <rou s descri %ion: Asers G7o are .,6) adminis%ra%ors uniEue1ember: uid=barbara,dc=exam le,dc=com uniEue1ember: uid=ma%%,dc=exam le,dc=com objec%&lass: 'rou *3AniEueNames

6 at L!nd of Kroup S ould I 8seM


?ow do you dec!de w et er to use a group.$Na!es group.$/ni0ueNa!es4 or organi1ational2oleM 5y default4 !t !s best to use group.$Na!es4 as !t !s treated as t e default group!ng obIect class by Open#DA3' T e organi1ational2ole obIect class !s !ntended to be used as a way of def!n!ng w at a person does w!t !n an organ!@at!on' T e group.$/ni0ueNa!es obIect class was !ntended for a d!fferent use from group.$Na!es4 but !mplementat!on-w!se4 t ey funct!on !dent!cally on Open#DA3'

T e Complete #DIF F!le basics.ldif

# 57is is %7e roo% o3 %7e direc%or/ %ree dn: dc=exam le,dc=com descri %ion: ?xam le$&om, /our %rus%ed nonDexis%en% cor ora%ion$ dc: exam le o: ?xam le$&om objec%&lass: %o objec%&lass: dc*bjec% objec%&lass: or'ani(a%ion # 0ub%ree 3or users dn: ou=Asers,dc=exam le,dc=com ou: Asers descri %ion: ?xam le$&om Asers objec%&lass: or'ani(a%ionalAni% # 0ub%ree 3or 'rou s dn: ou=<rou s,dc=exam le,dc=com ou: <rou s descri %ion: ?xam le$&om <rou s objec%&lass: or'ani(a%ionalAni% # 0ub%ree 3or s/s%em accoun%s dn: ou=0/s%em,dc=exam le,dc=com ou: 0/s%em descri %ion: 0 ecial accoun%s used b/ so3%Gare a lica%ions$ objec%&lass: or'ani(a%ionalAni% ##

## A0?I0 ## # 1a%% !u%c7er dn: uid=ma%%,ou=Asers,dc=exam le,dc=com ou: Asers # Name in3o: uid: ma%% cn: 1a%% !u%c7er sn: !u%c7er 'i9enName: 1a%% 'i9enName: 1a%%7eG dis la/Name: 1a%% !u%c7er # =orC 2n3o: %i%le: 0/s%ems 2n%e'ra%or descri %ion: 0/s%ems 2n%e'ra%ion and 25 3or ?xam le$&om em lo/ee5/ e: ?m lo/ee de ar%men%Number: 004 em lo/eeNumber: 004D0KDLK mail: mbu%c7er#exam le$com mail: ma%%#exam le$com roomNumber: 304 %ele 7oneNumber: M4 >>> >>> ;3:4 mobile: M4 >>> >>> @NKL s%: 2llinois l: &7ica'o s%ree%: 4:3; &icero 69e$

3
# 8ome 2n3o: 7ome)7one: M4 >>> >>> LKN@ 7ome)os%al6ddress: 4:3; 7ome s%ree% O &7ica'o, 2. O @0@LLD4:3; # 1isc: user)assGord: secre% re3erred.an'ua'e: enDus,enD'b # *bjec% &lasses: objec%&lass: erson objec%&lass: or'ani(a%ional)erson objec%&lass: ine%*r')erson # !arbara "ensen: dn: uid=barbara,ou=Asers,dc=exam le,dc=com ou: Asers uid: barbara sn: "ensen cn: !arbara "ensen 'i9enName: !arbara dis la/Name: !arbara "ensen mail: barbara#exam le$com user)assGord: secre% objec%&lass: erson objec%&lass: or'ani(a%ional)erson objec%&lass: ine%*r')erson # .,6) 6dmin <rou : dn: cn=.,6) 6dmins,ou=<rou s,dc=exam le,dc=com cn: .,6) 6dmins ou: <rou s descri %ion: Asers G7o are .,6) adminis%ra%ors uniEue1ember: uid=barbara,dc=exam le,dc=com uniEue1ember: uid=ma%%,dc=exam le,dc=com

;
objec%&lass: 'rou *3AniEueNames # 0 ecial 6ccoun% 3or 6u%7en%ica%ion: dn: uid=au%7en%ica%e,ou=0/s%em,dc=exam le,dc=com uid: au%7en%ica%e ou: 0/s%em descri %ion: 0 ecial accoun% 3or au%7en%ica%in' users user)assGord: secre% objec%&lass: accoun% objec%&lass: sim le0ecuri%/*bjec%

8s!ng t e 8t!l!t!es to 3repare t e D!rectory


slapadd 6 en s ould slapadd be 8sed M 6 at Does slapadd Do M #oad!ng t e #DIF F!le slap!nde> slapcat Operat!onal Attr!butes slapacl slapaut slapdn slappasswd Stor!ng and 8s!ng 3asswords !n Open#DA3 Kenerat!ng a 3assword w!t slappasswd slaptest

slapadd
T e slapadd program !s used to load d!rectory data4 formated as #DIF f!les4 d!rectly !nto Open#DA3' It !s e>ecuted from w!t !n an operat!ng system s ell :for e>ample a command prompt or s ell scr!pt;' T e slapadd program does not use t e #DA3 protocol to connect to a runn!ng server' Instead4 !t wor"s d!rectly w!t t e Open#DA3 bac"end' For t at reason4 w en you run slapadd you must f!rst s ut down t e d!rectory server' Ot erw!se4 you may end up w!t confl!cts between t e slapd server process and t e slapadd process as t ey bot try to e>clus!vely manage t e same databases'

6 en S ould slapadd be 8sed M


slapadd !s !ntended to be used to load large amounts of d!rectory data4 generally for t e purpose of creat!ng a new d!rectory4 or restor!ng a d!rectory from a bac"up' 5ecause !t re7u!res t at t e d!rectory be ta"en offl!ne4 t !s ut!l!ty !s not generally a good cand!date for perform!ng rout!ne updates' T e ldapadd program !s a muc better cand!date for t at sort of operat!on'

6 at Does slapadd Do M
T e slapadd ut!l!ty reads t e slapd'conf f!le :and any !ncluded f!les;4 loads t e appropr!ate bac"end databases4 and t en reads #DIF data :usually from a f!le;' As !t reads t e data4 !t ver!f!es t at all of t e records are correctly constructed :t at t e D<s are !n a tree t at t e server manages4 t at t e records use t e r!g t attr!butes for t e!r obIect classes4 t at all re7u!red f!elds are t ere4 t at t e record !s formatted correctly4 and so on;4 and t en !t loads t e records !nto t e appropr!ate bac"end' S!nce slapadd does not connect over t e #DA3 protocol4 !t does not re7u!re any aut ent!cat!on to t e d!rectory' It does4 owever4 re7u!re wr!te access to t e d!rectory database f!les' So slapadd !s usually run from t e s ell of e!t er t e user t at runs t e d!rectory :often ldap or slapd; or from t e root account'

#oad!ng t e #DIF F!le


Stop t e slapd server Test t e #DIF f!le w!t slapadd #oad t e d!rectory w!t slapadd 9estart t e slapd server

Stopp!ng T e Server
Gildan#* en57inC.abs:PO sudo Je%cJini%$dJsla d s%o

9unn!ng slapadd !n Test Mode


O sudo sla add D9 Du Dc D3 Je%cJlda Jsla d$con3 Dl J%m Jbasics$ldi3
T !s command uses f!ve flags% 3# $lag% T !s puts t e program !nto NverboseN mode4 w ere !t w!ll pr!nt out e>tra !nformat!on about w at !s appen!ng :and4 !f t e process fa!ls4 w at led to t e fa!lure;' 8sually !t !s a good !dea to run slapadd !n verbose mode4 espec!ally w en load!ng an untested #DIF f!le' 3u $lag% T !s tells slapadd to run !n test :or dry-run; mode' 6 en t !s !s enabled4 slapadd w!ll evaluate t e f!le as !f !t were go!ng to load t e f!le !nto t e d!rectory4 but !t won=t actually put any records !n t e d!rectory' 3c $lag% T !s tells slapadd to "eep process!ng t e f!le even !f !t !ts a bad record' 8s!ng t !s flag4 we can run t roug t e f!le once and get a l!st of all of t e records t at are not correctly formatted' 3$ $lag % T !s flag4 w !c ta"es as an argument t e pat to t e server=s conf!gurat!on f!le4 spec!f!es w !c conf!gurat!on f!le s ould be used' In most cases you can om!t t !s4 and slapadd w!ll Iust loo" !n t e default place :usually 4etc4ldap4slapd5con$; 3l $lag% T !s po!nts to t e #DIF f!le we want to load' In t !s case we are load!ng t e bas!cs'ld!f f!le4 w !c !s located !n t e system=s &tmp d!rectory'

9unn!ng slapadd !n Test Mode A*


O sudo sla add D9 Du Dc D3 Je%cJlda Jsla d$con3 Dl basics$ldi3 added: -dc=exam le,dc=comadded: -ou=Asers,dc=exam le,dc=comadded: -ou=<rou s,dc=exam le,dc=comadded: -ou=0/s%em,dc=exam le,dc=comadded: -uid=ma%%,ou=Asers,dc=exam le,dc=comadded: -uid=barbara,ou=Asers,dc=exam le,dc=comadded: -cn=.,6) 6dmins,ou=<rou s,dc=exam le,dc=comadded: -uid=au%7en%ica%e,ou=0/s%em,dc=exam le,dc=comQ#################### 400$00R e%a none ela sed

none 3as%S

<o errors' 6e are ready to proceed to t e t !rd step% !mport!ng t e records !nto t e d!rectory'

Import!ng t e 9ecords 8s!ng slapadd

slap!nde>

slapcat

Operat!onal Attr!butes

slapacl

slapaut

slapdn

slappasswd

Stror!ng and 8s!ng 3asswords !n Open#DA3

Kenerat!ng a 3assword w!t slappasswd

slaptest

3erform!ng D!rectory Operat!ons 8s!ng t e Cl!ents


Common Command-#!ne Flags Common Flags Sett!ng Defaults !n ldap'conf A S!mple Searc 9estr!ct!ng 9eturned F!eld 9e7uest!ng Operat!onal Attr!butes Searc !ng 8s!ng a F!le Add!ng 9ecords from a F!le Add!ng a 9ecord w!t ldapmod!fy Mod!fy!ng $>!st!ng 9ecords Mod!fy!ng t e 9elat!ve D< Delet!ng $nt!re 9ecords

ldapsearc

ldapadd ldapmod!fy

ldapdelete ldapcompare ldapmoddrn Mod!fy!ng t e Super!or D< w!t ldapmoddrn ldapppasswd ldapw oam!

Common Command-#!ne Flags

Common Flags

Sett!ng Defaults !n ldap'conf

ldapsearc

A S!mple Searc

9estr!ct!ng 9eturned F!elds

9e7uest!ng Operat!onal Attr!butes

Searc !ng 8s!ng a F!le

ldapadd

Add!ng 9ecords from a F!le

ldapmod!fy

Add!ng a 9ecord w!t ldapmod!fy

Mod!fy!ng $>!st!ng 9ecords

Mod!fy!ng t e 9elat!ve D<

Delet!ng $nt!re 9ecords

ldapdelete

ldapcompare

ldapmoddrn

Mod!fy!ng t e Super!or D< w!t ldapmodrdn

ldappasswd

ldapw oam!

Summary

OPA

9ererence
Matt 5utc er4 Master!ng Open#DA34 3ACLT 3ubl!s !ng

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy