ÀÌ Àý¿¡¼´Â scratch·ÎºÎÅÍ slapd µ¥ÀÌŸº£À̽º¸¦ »ý¼ºÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ³íÀÇÇÑ´Ù. µ¥ÀÌŸº£À̽º´Â µÎ°¡Áö ¹æ¹ýÀ¸·Î »ý¼ºÇÒ ¼ö ÀÖ´Ù. ù°, LDAP¸¦ ÀÌ¿ëÇÏ¿© ¿Â¶óÀλ󿡼 µ¥ÀÌÅͺ£À̽º¸¦ »ý¼ºÇÒ ¼ö Àִµ¥ °£´ÜÈ÷ slapd¸¦ ±¸µ¿ÇÏ°í ¼±ÅÃÇÑ LDAP Ŭ¶óÀ̾ðÆ®¸¦ ÀÌ¿ëÇÏ¿© ¿£Æ®¸®¸¦ Ãß°¡ÇØÁÖ¸é µÈ´Ù. ÀÌ ¹æ¹ýÀº ºñ±³Àû ÀÛÀº µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇؼ´Â ´õÇÒ ³ªÀ§¾øÀÌ ÁÁ´Ù (¿ä±¸¿¡ µû¶ó ¼ö¹é ¶Ç´Â ¼öõ°³ÀÇ ¿£Æ®¸®).
µÎ ¹ø°´Â À妽º »ý¼º µµ±¸¸¦ ÀÌ¿ëÇÏ¿© ¿ÀÇÁ¶óÀλ󿡼 µ¥ÀÌÅͺ£À̽º¸¦ »ý¼ºÇÏ´Â °ÍÀε¥ LDAP ¹æ¹ýÀ» ÀÌ¿ëÇÒ ¶§ ¸Å¿ì ¿À·£ ½Ã°£ÀÌ ¼Ò¿äµÉ ¼ö ÀÖ´Â ¹æ´ëÇÑ ¿£Æ®¸® »ý¼º ¶Ç´Â µ¥ÀÌÅͺ£À̽º°¡ »ý¼ºµÇ´Â µ¿¾È ¿¢¼¼½ºµÇÁö ¾Ê±â¸¦ ¿øÇÒ °æ¿ì ÁÁÀº ¹æ¹ýÀÌ´Ù.
OpenLDAP ¼ÒÇÁÆ®¿þ¾î ÆÐÅ°Áö¿¡´Â LDAP ¼¹ö ÀÛµ¿Áß¿¡ ¿£Æ®¸®¸¦ Ãß°¡Çϴµ¥ »ç¿ëÇÏ´Â ldapadd À¯Æ¿¸®Æ¼¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. ¿Â¶óÀλ󿡼 µ¥ÀÌÅͺ£À̽º¸¦ »ý¼ºÇÏ·Á°í ÇÑ´Ù¸é ¿£Æ®¸® Ãß°¡¸¦ À§ÇØ ldapadd µµ±¸¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ù ¹ø° ¿£Æ®¸®¸¦ Ãß°¡ÇÑ ÈÄ ´õ ¸¹Àº ¿£Æ®¸®¸¦ Ãß°¡Çϱâ À§ÇØ ldapadd¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. slapd¸¦ ±¸µ¿Çϱâ Àü¿¡ slapd.conf ÆÄÀÏ¿¡ ´ÙÀ½ ¿É¼ÇÀÌ ¼³Á¤µÇ¾î ÀÖÀ½À» È®ÀÎÇØ¾ß ÇÑ´Ù.
suffix <dn>
3Àý¿¡ ¼³¸íÇÑ ¹Ù¿Í °°ÀÌ ÀÌ ¿É¼ÇÀº ¾î¶² ¿£Æ®¸®°¡ ÀÌ µ¥ÀÌŸº£À̽º¿¡ µé¾îÀÖ´ÂÁö¸¦ ¸»ÇØÁִµ¥ À̸¦ »ý¼ºÇÏ·Á°í ÇÏ´Â ÇÏÀ§ Æ®¸®ÀÇ ·çÆ® DNÀ¸·Î ¼³Á¤ÇØ¾ß ÇÑ´Ù:
suffix "o=TUDelft, c=NL"
À妽º ÆÄÀÏÀÌ »ý¼ºµÇ¾î ³õÀÌ´Â µð·ºÅ丮 ÁöÁ¤À» È®½ÇÈ÷ ÇØÁÖ¾î¾ß ÇÑ´Ù:
directory <directory>
¿¹:
directory /usr/local/tudelft
¿£Æ®¸®¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Â Çã°¡±ÇÀ» °¡Áø ´©±º°¡·Î slapd ¿¡ ¿¬°áÇÒ ¼ö ÀÖµµ·Ï ¼³Á¤ÇÒ ÇÊ¿ä°¡ Àִµ¥ ÀÌ´Â µ¥ÀÌÅͺ£À̽º Á¤ÀÇ¿¡¼ ´ÙÀ½ µÎ ¿É¼ÇÀ» ÅëÇØ ÀÌ·ç¾îÁø´Ù:
rootdn <dn>
rootpw <passwd> /* ¾ÏÈ£ÈµÈ Æнº¿öµå¸¦ »ç¿ëÇÏ´Â °ÍÀ» ±â¾ïÇضó !!! */
ÀÌ ¿É¼ÇµéÀº µ¥ÀÌÅͺ£À̽ºÀÇ ½´ÆÛÀ¯Àú ¿£Æ®¸®(¾î¶² ÀÛ¾÷À̵ç ÇÒ ¼ö ÀÖ´Â ¿£Æ®¸®)¸¦ ÀÎÁõÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Â DN°ú password¸¦ ÁöÁ¤ÇÑ´Ù. ¿©±â¼ ÁöÁ¤ÇÑ DN°ú password´Â ½ÇÁ¦ À̸§À» °®´Â ¿£Æ®¸®°¡ Á¸ÀçÇϵçÁö ¶Ç´Â ¿£Æ®¸®°¡ ÁöÁ¤µÈ Æнº¿öµå¸¦ °®´ÂÁö »ó°ü¾øÀÌ ´Ã ÀÛµ¿ÇÑ´Ù. ÀÌ´Â ¾ÆÁ÷ ¾î¶² ¿£Æ®¸®°¡ Á¸ÀçÇϱ⵵ Àü¿¡ ¾î¶»°Ô ÀÎÁõÀ» ÇÏ°í ¾î¶»°Ô ¿£Æ®¸®¸¦ Ãß°¡ÇÏ´ÂÁöÀÇ chicken and egg (º´¾Æ¸®°¡ ¸ÕÀú³Ä ´ßÀÌ ¸ÕÀú³Ä ÇÏ´Â ½ÄÀÇ) ¹®Á¦¸¦ ÇØ°áÇÑ´Ù.
¸¶Áö¸·À¸·Î µ¥ÀÌÅͺ£À̽º Á¤ÀÇ°¡ ¿øÇÏ´Â À妽º Á¤ÀǸ¦ Æ÷ÇÔÇÏ´ÂÁö¸¦ È®ÀÎÇØ¾ß ÇÑ´Ù:
index {<attrlist> | default} [pres,eq,approx,sub,none]
¿¹¸¦µé¾î cn, sn, uid ¿Í objectclass ¼Ó¼ºÀ» À妽ºÇϱâ À§ÇØ ´ÙÀ½ À妽º ¼³Á¤ ¶óÀÎÀÌ »ç¿ëµÉ ¼ö ÀÖ´Ù.
index cn,sn,uid
index objectclass pres,eq
index default none
ÃëÇâ¿¡ ¸Â°Ô ±¸¼ºÇß´Ù¸é slapd¸¦ ±¸µ¿ÇÏ°í LDAP Ŭ¶óÀ̾ðÆ®·Î ¿¬°áÇÏ¿© ¿£Æ®¸® Ãß°¡¸¦ ½ÃÀÛÇضó. ¿¹¸¦µé¾î ldapadd µµ±¸¸¦ ÀÌ¿ëÇÏ¿© TUDelft ¿£Æ®¸®¿Í Postmaster ¿£Æ®¸®¸¦ ¼øÂ÷ÀûÀ¸·Î Ãß°¡Çϱâ À§ÇØ ´ÙÀ½ ³»¿ëÀ» °®´Â /tmp/newentry ÆÄÀÏÀ» »ý¼ºÇÒ ¼ö ÀÖ´Ù:
o=TUDelft, c=NL
objectClass=organization
description=Technical University of Delft Netherlands
cn=Postmaster, o=TUDelft, c=NL
objectClass=organizationalRole
cn=Postmaster description= TUDelft postmaster - postmaster@tudelft.nl
±×¸®°í³ª¼ ¿£Æ®¸®¸¦ ½ÇÁ¦ »ý¼ºÇϱâ À§ÇØ ´ÙÀ½ ¸í·ÉÀ» »ç¿ëÇÑ´Ù:
ldapadd -f /tmp/newentry -D "cn=Manager, o=TUDelft, c=NL" -w secret
À§ ¸í·ÉÀº rootdnÀ» "cn=Manager, o=TUDelft, c=NL" À¸·Î rootpw¸¦ "secret" ¼³Á¤Çß´Ù°í °¡Á¤ÇÑ´Ù. command-line »ó¿¡¼ Æнº¿öµå¸¦ ŸÀÌÇÎÇÏ±æ ¿øÇÏÁö ¾Ê´Â´Ù¸é -w "password" ´ë½Å ldapadd ¸í·É¿¡ ´ëÇØ -W ¿É¼ÇÀ» »ç¿ëÇضó. Æнº¿öµå¸¦ ÀÔ·ÂÇÏ´Â ÇÁ·ÒÇÁÆ®¸¦ º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù:
ldapadd -f /tmp/newentry -D "cn=Manager, o=TUDelft, c=NL" -W
Enter LDAP Password:
µ¥ÀÌÅͺ£À̽º¸¦ »ý¼ºÇÏ´Â µÎ ¹ø° ¹æ¹ýÀº ´ÙÀ½¿¡ ¼³¸íµÈ À妽º »ý¼º µµ±¸¸¦ ÀÌ¿ëÇÏ¿© ¿ÀÇÁ¶óÀλ󿡼 ÀÛ¾÷À» ÇÏ´Â °ÍÀε¥ LDAP ¹æ¹ýÀ» ÀÌ¿ëÇÒ ¶§ ¸Å¿ì ¿À·£ ½Ã°£ÀÌ ¼Ò¿äµÉ ¼ö ÀÖ´Â ¹æ´ëÇÑ ¿£Æ®¸® »ý¼º ¶Ç´Â µ¥ÀÌÅͺ£À̽º°¡ »ý¼ºµÇ´Â µ¿¾È ¿¢¼¼½ºµÇÁö ¾Ê±â¸¦ ¿øÇÒ °æ¿ì ÁÁÀº ¹æ¹ýÀÌ´Ù. ÀÌ µµ±¸´Â slapd ¼³Á¤ ÆÄÀÏ°ú Ãß°¡µÇ´Â ¿£Æ®¸®ÀÇ ÅؽºÆ® Ç¥ÇöÀ» Æ÷ÇÔÇÏ´Â ÀÔ·Â LDIF ÆÄÀÏÀ» ÀоîµéÀ̴µ¥ LDBM À妽º ÆÄÀÏÀ» Á÷Á¢ÀûÀ¸·Î »ý¼ºÇÑ´Ù. config ÆÄÀÏ µ¥ÀÌÅͺ£À̽º Á¤ÀÇ¿¡¼ ¿ì¼±ÀûÀ¸·Î È®ÀÎ ¹× ¼³Á¤ÇÏ±æ ¿øÇÏ´Â ¿©·¯ Áß¿äÇÑ ¼³Á¤ ¿É¼ÇÀÌ ÀÖ´Ù:
suffix <dn>
ÀÌÀü Àý¿¡¼ ¼³¸íÇÑ ¹Ù¿Í °°ÀÌ, ÀÌ ¿É¼ÇÀº ¾î¶² ¿£Æ®¸®°¡ ÀÌ µ¥ÀÌŸº£À̽º¿¡ µé¾î ÀÖ´ÂÁö¸¦ ¸»ÇØÁִµ¥ À̸¦ »ý¼ºÇÏ·Á°í ÇÏ´Â ÇϺΠƮ¸®ÀÇ ·çÆ® DN¿¡ ¼³Á¤ÇØ¾ß ÇÑ´Ù. ¿¹:
suffix "o=TUDelft, c=NL"
À妽º ÆÄÀÏÀÌ »ý¼ºµÇ¾î ³õÀÌ´Â µð·ºÅ丮 ÁöÁ¤À» È®½ÇÈ÷ ÇØÁÖ¾î¾ß ÇÑ´Ù.
directory <directory>
¿¹:
directory /usr/local/tudelft
´ÙÀ½ ¾Æ¸¶µµ °¢ ¿ÀÇ À妽º ÆÄÀÏÀÌ »ç¿ëÇÏ´Â in-core ij½ÃÀÇ Å©±â¸¦ Áõ°¡½ÃÅ°±æ ¿øÇÒ ¼ö Àִµ¥ À妽º »ý¼ºÁß ÃÖ»óÀÇ ¼º´ÉÀ» À§ÇØ Àüü À妽º°¡ ¸Þ¸ð¸®»ó¿¡ ³õ¿©¾ß ÇÑ´Ù. µ¥ÀÌÅÍ°¡ ¸Þ¸ð¸®¿¡ ¿Ã¸®Áö ¸øÇÒ Á¤µµ·Î ¹æ´ëÇϰųª ¶Ç´Â ¸Þ¸ð¸®°¡ ³Ê¹« ÀÛ´Ù¸é ¸Þ¸ð¸® Å©±â¸¦ Áõ°¡½ÃÅ°°Å³ª ÆäÀÌ¡ ½Ã½ºÅÛÀ» ÀÛµ¿½Ãų ¼ö ÀÖ´Ù. ÀÌ Å©±â´Â ´ÙÀ½ ¿É¼Ç¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù:
dbcachesize <integer>
¿¹: dbcachesize 50000000
ÀÌ ¿É¼ÇÀº ²Ï Å«(Michigan ´ëÇп¡¼ µ¥ÀÌÅͺ£À̽º´Â ´ë·« 125K ¿£Æ®¸®¸¦ °¡Áö¸ç °¡Àå Å« À妽º ÆÄÀÏÀº ´ë·« 45MB ÀÌ´Ù) 50MB Å©±âÀÇ Ä³½Ã¸¦ »ý¼ºÇÒ °ÍÀÌ´Ù. ½Ã½ºÅÛÀÌ ¾î¶² ¿É¼Ç °ª¿¡¼ ÃÖ»óÀ¸·Î ÀÛµ¿ÇÏ´Â °¡¸¦ »ìÆ캸±â À§ÇØ ÀÌ ºñÆ®¼ö¿Í ¾Æ·¡¼ ¼³¸íµÇ´Â parallelism Á¤µµ¸¦ º¯È½ÃÅ°¸é¼ ½ÇÇèÇغÁ¶ó. À妽º ÆÄÀÏÀÌ ÀÏ´Ü »ý¼ºµÇ¸é slapd¸¦ ½ÇÇà½ÃÅ°±â Àü¿¡ ÀÌ °ªÀ» °¨¼Ò½ÃÅ°´Â °ÍÀ» ÀØÁö ¸¶¶ó.
¸¶Áö¸·À¸·Î ¾î¶² À妽º¸¦ ±¸ÃàÇÏ±æ ¿øÇÏ´ÂÁö ÁöÁ¤ÇÒ ÇÊ¿ä°¡ Àִµ¥ ÀÌ´Â Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ À妽º ¿É¼Ç¿¡ ÀÇÇØ ÁöÁ¤µÈ´Ù:
index {<attrlist> | default} [pres,eq,approx,sub,none]
¿¹:
index cn,sn,uid pres,eq,approx
index default none
ÀÌ´Â cn, sn°ú uid ¼Ó¼º¿¡ ´ëÇØ presence, equality ¿Í approximate À妽º¸¦ »ý¼ºÇÏ¸ç ³ª¸ÓÁö ´Ù¸¥ ¼Ó¼º¿¡ ´ëÇؼ´Â À妽º¸¦ »ý¼ºÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ÀÌ ¿É¼Ç¿¡ ´ëÇØ ´õ ¸¹Àº Á¤º¸¸¦ ¾ò±â À§Çؼ´Â 3ÀýÀÇ ¼³Á¤ ÆÄÀÏÀ» º¸¶ó.
ÃëÇâ¿¡ ¸Â°Ô ¼³Á¤Çß´Ù¸é slapadd(8) ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ´À¸·Î½á ±âº» µ¥ÀÌÅͺ£À̽º¿Í °ü·Ã À妽º¸¦ »ý¼ºÇÑ´Ù:
slapadd -l <inputfile> -f <slapdconfigfile> [-d <debuglevel>] [-n <integer>|-b <suffix>]
ÀμöµéÀº ´ÙÀ½ÀÇ Àǹ̸¦ °®´Â´Ù:
-l <inputfile>
ÅؽºÆ® ÇüÅ·ΠÃß°¡µÇ´Â ¿£Æ®¸®¸¦ Æ÷ÇÔÇÑ LDIF ÀÔ·Â ÆÄÀÏÀ» ÁöÁ¤ÇÑ´Ù(´ÙÀ½ ÀýÀ» º¸¶ó).
-f <slapdconfigfile>
À妽º¸¦ ¾îµð¿¡ »ý¼ºÇÏ´ÂÁö, ¾î¶² À妽º¸¦ »ý¼ºÇÏ´ÂÁö µîÀ» ¸»ÇØÁÖ´Â slapd ¼³Á¤ ÆÄÀÏÀ» ÁöÁ¤ÇÑ´Ù.
-d <debuglevel>
<debuglevel>¿¡ ÀÇÇØ ÁöÁ¤µÈ µð¹ö±ëÀ» ÀÛµ¿½ÃŲ´Ù. µð¹ö±× ·¹º§Àº slapd ¿¡ ´ëÇÑ ·¹º§°ú °°´Ù. 4.1 ÀýÀÇ ¿É¼ÇÀ» º¸¶ó.
-n <databasenumber>
¾î¶² µ¥ÀÌÅͺ£À̽º°¡ ¼öÁ¤µÇ´Â°¡¸¦ ÁöÁ¤ÇÏ´Â ¼±ÅÃÀû Àμö·Î ¼³Á¤ ÆÄÀÏ¿¡ ¸í½ÃµÈ ù ¹ø° µ¥ÀÌÅͺ£À̽º´Â 1, µÎ ¹ø°´Â 2 µîÀ¸·Î Ç¥ÇöµÈ´Ù. µðÆúÆ®·Î ¼³Á¤ ÆÄÀÏÀÇ Ã¹ ¹ø° ldbm µ¥ÀÌÅͺ£À̽º°¡ »ç¿ëµÈ´Ù. -b ¿É¼Ç°ú ÇÔ²² »ç¿ëµÇ¼´Â ¾ÈµÈ´Ù.
-b <suffix>
¾î¶² µ¥ÀÌÅͺ£À̽º°¡ ¼öÁ¤µÇ´Â°¡¸¦ ÁöÁ¤ÇÏ´Â ¼±ÅÃÀû Àμö·Î µ¥ÀÌÅͺ£À̽º ³Ñ¹ö¸¦ °áÁ¤Çϱâ À§ÇÑ µ¥ÀÌÅͺ£À̽º suffix Áö½Ã¿Í ºÎÇÕµÇÁö ¾Ê´Â´Ù. -n ¿É¼Ç°ú ÇÔ²² »ç¿ëµÇ¼´Â ¾ÈµÈ´Ù.
slapd.conf(5) ÆÄÀÏÀ» ¼öÁ¤ÇÑ ÈÄ¿Í °°ÀÌ ¶§¶§·Î À妽ºµéÀ» Àç »ý¼ºÇÒ ÇÊ¿ä°¡ ÀÖÀ» ¼ö Àִµ¥ ÀÌ´Â slapindex(8) ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¿© °¡´ÉÇÏ´Ù. slapindex ´Â ´ÙÀ½°ú °°ÀÌ ½ÇÇà½ÃŲ´Ù:
slapindex -f <slapdconfigfile> [-d <debuglevel>] [-n <databasenumber>|-b <suffix>]
-f, -d, -n °ú -b ¿É¼ÇÀº slapadd(1) ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¿É¼Ç°ú µ¿ÀÏÇÏ´Ù. slapindex´Â ÇöÀç µ¥ÀÌÅͺ£À̽º ³»¿ë¿¡ ±âÃÊÇÑ ¸ðµç À妽ºµéÀ» Àç ±¸ÃàÇÑ´Ù.
µ¥ÀÌÅͺ£À̽º¸¦ LDIF ÆÄÀÏ·Î ´ýÇÁ(dump)Çϴµ¥ »ç¿ëµÇ´Â slapcat À̶ó´Â ÇÁ·Î±×·¥ÀÌ Àִµ¥ ÀÌ´Â µ¥ÀÌÅͺ£À̽º¸¦ ÀÐÀ» ¼ö ÀÖ´Â(human-readable) ¹é¾÷À» ÇÒ¶§³ª µ¥ÀÌÅͺ£À̽º¸¦ ¿ÀÇÁ¶óÀÎ »ó¿¡¼ ÆíÁýÇÏ·Á°í ÇÒ ¶§ À¯¿ëÇÏ´Ù. ÀÌ ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°ÀÌ ½ÇÇà½ÃŲ´Ù:
slapcat -l <filename> -f <slapdconfigfile> [-d <debuglevel>] [-n <databasenumber>|-b <suffix>]
-n ¶Ç´Â -b ¿É¼ÇÀº -f¸¦ »ç¿ëÇÏ¿© ÁöÁ¤µÈ slapd.conf(5)³»ÀÇ µ¥ÀÌÅͺ£À̽º¸¦ ¼±ÅÃÇϴµ¥ »ç¿ëµÈ´Ù. ÇØ´ç LDIF Ãâ·ÂÀº Ç¥ÁØ Ãâ·Â ¶Ç´Â -l ¿É¼ÇÀ» »ç¿ëÇÏ¿© ÁöÁ¤µÈ ÆÄÀÏ¿¡ ÀÛ¼ºµÈ´Ù.
LDAP Data Interchange Format (LDIF)Àº °£´ÜÇÑ ÅؽºÆ® Æ÷¸ËÀ¸·Î LDAP ¿£Æ®¸®¸¦ Ç¥ÇöÇϱâ À§ÇØ »ç¿ëµÈ´Ù. ¿£Æ®¸®ÀÇ ±âº» ÆûÀº:
#comment
dn: <distinguished name>
<attrdesc>; <attrvalue>
<attrdesc>; <attrvalue>
...
`#' ¹®ÀÚ·Î ½ÃÀÛÇÏ´Â ¶óÀεéÀº ÁÖ¼®ÀÌ´Ù. ¼Ó¼º ¼³¸í(attrdesc)Àº cn ¶Ç´Â objectClasse ¶Ç´Â 1.2.3(¼Ó¼º ÇüÅÂ¿Í °ü·ÃµÈ OID)°ú °°Àº °£´ÜÇÑ ¼Ó¼ºÇüÅ À̰ųª cn:lang_en_US ¶Ç´Â userCertificate;binay¿Í °°Àº ¿É¼ÇÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù.
¶óÀÎÀº single space ¶Ç´Â tab ¹®ÀÚ·Î ´ÙÀ½ ¶óÀÎÀ» ½ÃÀÛÇÔÀ¸·Î½á °è¼ÓµÉ ¼ö ÀÖ´Ù. ¿¹¸¦µé¾î:
dn: cn=Barbara J Jensen, dc=example, dc=
com
cn: Barbara
Jensen
˼
dn: cn=Barbara J Jensen, dc=example, dc=com
cn: Barbara J Jensen
°ú µ¿ÀÏÇÏ´Ù.
´ÙÁß ¼Ó¼º °ªµéÀº º°°³ ¶óÀο¡¼ ÁöÁ¤µÈ´Ù. ¿¹:
cn: Barbara J Jensen
cn: Babs Jensen
<attrvalue>°¡ Ãâ·ÂµÇÁö ¾Ê´Â ¹®ÀÚµéÀ» Æ÷ÇÔÇϰųª ¶Ç´Â space, ÄÝ·Ð(':') ¶Ç´Â '<' À¸·Î ½ÃÀ۵ȴٸé, <attrdesc>´ÙÀ½¿¡ ÀÌÁß Äݷаú base64 ·Î ¾ÏÈ£ÈµÈ °ªÀÌ ¿Â´Ù. ¿¹¸¦µé¾î "space·Î ½ÃÀÛ"µÇ´Â °ªÀº ´ÙÀ½°ú °°ÀÌ ¾ÏÈ£ÈµÉ °ÍÀÌ´Ù:
cn:: IGJlZ2lucyB3aXRoIGEgc3BhY2U=
¼Ó¼º°ªÀ» Æ÷ÇÔÇÏ´Â URLÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦µé¾î, ´ÙÀ½Àº jpegPhoto °ªÀÌ /path/to/file.jpg ÆÄÀϷκÎÅÍ ¾ò¾î¾ß ÇÔÀ» ÁöÁ¤ÇÑ´Ù.
cn:<file://path/to/file.jpeg
µ¿ÀÏÇÑ LDIF ÆÄÀϳ»ÀÇ ´ÙÁß ¿£Æ®¸®µéÀº blank ¶óÀÎÀ¸·Î ±¸º°µÈ´Ù. ¼¼ °³ÀÇ ¿£Æ®¸®¸¦ °®´Â LDIF ÆÄÀÏÀÇ ¿¹´Â ´ÙÀ½°ú °°´Ù:
# Barbara's Entry
dn: cn=Barbara J Jensen, dc=example, dc=com
cn: Barbara J Jensen
cn: Babs Jensen
objectClass: person
sn: Jensen
# Bjorn's Entry
dn: cn=Bjorn J Jensen, dc=example, dc=com
cn: Bjorn J Jensen
cn: Bjorn Jensen
objectClass: person
sn: Jensen
# Base64 encoded JPEG photo
jpegPhoto:: /9j/4AAQSkZJRgABAAAAAQABAAD/2wBDABALD
A4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQ
ERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVG
# Jennifer's Entry
dn: cn=Jennifer J Jensen, dc=example, dc=com
cn: Jennifer J Jensen
cn: Jennifer Jensen
objectClass: person
sn: Jensen
# JPEG photo from file
jpegPhoto:<file://path/to/file.jpeg
Bjorn ¿£Æ®¸®ÀÇ jpegPhoto´Â base64·Î ¾ÏȣȵǾî ÀÖ°í Jennifer ¿£Æ®¸®ÀÇ jpegPhoto´Â URLÀÌ °¡¸®Å°´Â À§Ä¡·ÎºÎÅÍ ¾ò¾îÁüÀ» ÁÖ¸ñÇ϶ó.
trailing space´Â LDIF ÆÄÀÏÀÇ °ªµé·ÎºÎÅÍ Á¤¸®µÇÁö ¾ÊÀ¸¸ç ¶ÇÇÑ ³»ºÎÀÇ ´ÙÁß space´Â ¾ÐÃàµÇÁöµµ ¾Ê´Â´Ù. µ¥ÀÌÅͳ»¿¡ trailing°ú ³»ºÎ space¸¦ ¿øÇÏÁö ¾Ê´Â´Ù¸é °Å±â¿¡ ±×µéÀ» ³ÖÁö ¸¶¶ó.
ladpsearch - ldapsearch ´Â ldap_search(3) ¶óÀ̺귯¸® ÄÝ¿¡ ´ëÇØ ½©ÀÌ ¿¢¼¼½ºÇÒ ¼ö ÀÖ´Â ÀÎÅÍÆäÀ̽º·Î LDAP µ¥ÀÌÅͺ£À̽º ¹é¿£ÀÇ ¿£Æ®¸®¸¦ °Ë»öÇϱâ À§ÇØ »ç¿ëÇÑ´Ù.
ldapsearch¸¦ È£ÃâÇϱâ À§ÇÑ °³¿ä´Â ´ÙÀ½°ú °°´Ù (°¢ ¿É¼ÇÀÇ Àǹ̸¦ ¾Ë±â À§ÇØ ldapsearch man ÆäÀÌÁö¸¦ ã¾Æº¸¶ó):
ldapsearch [-n] [-u] [-v] [-k] [-K] [-t] [-A] [-B] [-L] [-R] [-d debuglevel] [-F sep] [-f file]
[-D binddn] [-W] [-w bindpasswd] [-h ldaphost] [-p ldapport] [-b searchbase] [-s base|one|sub]
[-a never|always|search|find] [-l timelimit] [-z sizelimit] filter [attrs...]
ladpsearch´Â LDAP ¼¹ö¿¡ ¿¬°á, ¹ÙÀεåÇØ ÇÊÅ͸¦ ÀÌ¿ëÇÏ¿© °Ë»öÀ» ¼öÇàÇÑ´Ù. ÇÊÅÍ´Â RFC 1558¿¡ Á¤ÀÇµÈ °Í°ú °°Àº LDAP ÇÊÅÍ¿¡ ´ëÇÑ ¹®ÀÚ¿ Ç¥ÇöÀ» µû¶ó¾ß ÇÑ´Ù. ldapsearch°¡ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ¿£Æ®¸®¸¦ ãÀ¸¸é attrs¿¡ ÀÇÇØ ÁöÁ¤µÈ ¼Ó¼ºµéÀÌ °Ë»öµÇ¾î ¿£Æ®¸®¿Í °ªÀÌ Ç¥ÁØ Ãâ·ÂÀ¸·Î Ãâ·ÂµÈ´Ù. attrs°¡ ¸í½ÃµÇÁö ¾ÊÀ¸¸é ¸ðµç ¼Ó¼ºµéÀ» µÇµ¹·ÁÁØ´Ù.
´ÙÀ½Àº ldapsearch »ç¿ë ¿¹ÀÌ´Ù:
ldapsearch -b 'o=TUDelft,c=NL' 'objectclass=*'
ldapsearch -b 'o=TUDelft,c=NL' 'cn=Rene van Leuken'
ldasearch -u -b 'o=TUDelft,c=NL' 'cn=Luiz Malere' sn mail
-b ¿É¼ÇÀº searchbase(initial search point, Ãʱ⠰˻ö ÁöÁ¡)À» -u ¿É¼ÇÀº »ç¿ëÀÚ¿¡ Æí¸®ÇÑ(userfriendly) Ãâ·Â Á¤º¸¸¦ ³ªÅ¸³½´Ù.
ldapdelete - ldapdelete´Â ldap_delete(3) ¶óÀ̺귯¸® ÄÝ¿¡ ´ëÇØ ½©ÀÌ ¿¢¼¼½ºÇÒ ¼ö ÀÖ´Â ÀÎÅÍÆäÀ̽º·Î LDAP µ¥ÀÌÅͺ£À̽º ¹é¿£µåÀÇ ¿£Æ®¸®¸¦ »èÁ¦Çϱâ À§ÇØ »ç¿ëÇÑ´Ù.
ldapdelete¸¦ È£ÃâÇϱâ À§ÇÑ °³¿ä´Â ´ÙÀ½°ú °°´Ù (°¢ ¿É¼ÇÀÇ Àǹ̸¦ ¾Ë±â À§ÇØ ldapdelete man ÆäÀÌÁö¸¦ ã¾Æº¸¶ó):
ldapdelete [-n] [-v] [-k] [-K] [-c] [-d debuglevel] [-f file] [-D binddn] [-W] [-w passwd]
[-h ldaphost] [-p ldapport] [dn]...
ldapdelete´Â LDAP ¼¹ö¿¡ ¿¬°á, Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ¿£Æ®¸®¸¦ ¹ÙÀεåÇØ »èÁ¦ÇÑ´Ù. Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ dn Àμö°¡ Á¦°øµÇ¸é ÀÌ·¯ÇÑ DNÀ» °®´Â ¿£Æ®¸®´Â »èÁ¦µÈ´Ù. °¢ dnÀº RFC 1779¿¡ Á¤ÀÇµÈ °Í°ú °°Àº ¹®ÀÚ¿·Î Ç¥ÇöµÈ DN À̾î¾ß ÇÑ´Ù. dn Àμö°¡ ¾ø´Ù¸é DNÀÇ ¸®½ºÆ®°¡ Ç¥ÁØ ÀÔ·Â(¶Ç´Â -f flag°¡ »ç¿ëµÈ´Ù¸é ÆÄÀÏ)À¸·ÎºÎÅÍ ÀÐÇôÁø´Ù.
´ÙÀ½Àº ldapdelete »ç¿ë ¿¹ÀÌ´Ù:
ldapdelete 'cn=Luiz Malere,o=TUDelft,c=NL'
ldapdelete -v 'cn=Rene van Leuken,o=TUDelft,c=NL' -D 'cn=Luiz malere,o=TUDelft,c=NL' -W
-v ¿É¼ÇÀº verbose ¸ðµå, -D ¿É¼ÇÀº Binddn(ÀÎÁõµÇ¾î¾ß ÇÏ´Â dn), -W ¿É¼ÇÀº Æнº¿öµå ÇÁ·ÒÇÁÆ®¸¦ ³ªÅ¸³½´Ù.
ldapmodify - ldapmodify ´Â ldap_modify(5)¿Í ldap_add ¶óÀ̺귯¸® ÄÝ¿¡ ´ëÇØ ½©ÀÌ ¿¢¼¼½ºÇÒ ¼ö ÀÖ´Â ÀÎÅÍÆäÀ̽º·Î LDAP µ¥ÀÌÅͺ£À̽º ¹é¿£µåÀÇ ¿£Æ®¸®¸¦ ¼öÁ¤Çϱâ À§ÇØ »ç¿ëÇÑ´Ù.
ldapmodify¸¦ È£ÃâÇϱâ À§ÇÑ °³¿ä´Â ´ÙÀ½°ú °°´Ù(°¢ ¿É¼ÇÀÇ Àǹ̸¦ ¾Ë±â À§ÇØ ldapmodify man ÆäÀÌÁö¸¦ ã¾Æº¸¶ó)
ldapmodify [-a] [-b] [-c] [-r] [-n] [-v] [-k] [-d debuglevel] [-D binddn] [-W] [-w passwd]
[-h ldaphost] [-p ldapport] [-f file]
ldapadd [-b] [-c] [-r] [-n] [-v] [-k] [-K] [-d debuglevel] [-D binddn] [-w passwd] [-h ldaphost]
[-p ldapport] [-f file]
ldapadd´Â ldapmodify µµ±¸¿¡ ´ëÇØ ÇÏµå ¸µÅ©µÇ¾î ¼öÇàµÇ´Âµ¥ ldapadd°¡ ½ÇÇàµÉ ¶§ ldapmodifyÀÇ -a (»õ·Î¿î ¿£Æ®¸®¸¦ Ãß°¡) flag °¡ ÀÚµ¿ÀûÀ¸·Î ¼³Á¤µÈ´Ù. ldapmodify´Â LDAP ¼¹ö¿¡ ¿¬°á, ¹ÙÀεåÇØ ¿£Æ®¸®¸¦ ¼öÁ¤ ¶Ç´Â Ãß°¡ÇÑ´Ù. ¿£Æ®¸® Á¤º¸´Â Ç¥ÁØ ÀÔ·Â ¶Ç´Â -f ¿É¼ÇÀ» »ç¿ë½Ã ÆÄÀϷκÎÅÍ ÀÐÇôÁø´Ù.
´ÙÀ½Àº ldapmodifyÀÇ »ç¿ë ¿¹ÀÌ´Ù:
/tmp/entrymods °¡ Á¸ÀçÇÏ°í ´ÙÀ½ ³»¿ëÀ» °®°í ÀÖ´Ù°í °¡Á¤ÇÑ´Ù:
dn: cn=Modify Me, o=University of Michigan, c=US
changetype: modify
replace: mail
mail: modme@terminator.rs.itd.umich.edu
-
add: title
title: Grand Poobah
-
add: jpegPhoto
jpegPhoto: /tmp/modme.jpeg
-
delete: description
-
¸í·É:
ldapmodify -b -r -f /tmp/entrymods
ÀÌ´Â "Modify Me" ¿£Æ®¸®ÀÇ ¸ÞÀÏ ¼Ó¼º ³»¿ëÀ» "modme@terminator.rs.itd.umich.edu"·Î ´ëüÇÏ°í, "Grand Poobah"À» ŸÀÌƲ¿¡ /tmp/modme.jpeg ÆÄÀÏÀÇ ³»¿ëÀ» jpegPhoto·Î Ãß°¡Çϸç, description ¼Ó¼ºÀ» ¿ÏÀüÈ÷ »èÁ¦ÇÑ´Ù.
À§¿Í µ¿ÀÏÇÑ ¼öÁ¤Àº ÀÌÀü ldapmodify ÀÔ·Â Æ÷¸ËÀ» ÀÌ¿ëÇÏ¿© ¼öÇàÇÒ ¼ö ÀÖ´Ù:
cn=Modify Me, o=University of Michigan, c=US mail=modme@terminator.rs.itd.umich.edu
+title=Grand Poobah
+jpegPhoto=/tmp/modme.jpeg
-description
´ÙÀ½ ¸í·ÉÀ» ½ÇÇà½ÃŲ´Ù:
ldapmodify -b -r -f /tmp/entrymods
/tmp/newentry ÆÄÀÏÀÌ Á¸ÀçÇÏ°í ´ÙÀ½ ³»¿ëÀ» °®´Â´Ù°í °¡Á¤ÇÑ´Ù:
dn: cn=Barbara Jensen, o=University of Michigan, c=US
objectClass: person
cn: Barbara Jensen
cn: Babs Jensen
sn: Jensen
title: the world's most famous manager
mail: bjensen@terminator.rs.itd.umich.edu
uid: bjensen
´ÙÀ½ ¸í·ÉÀ» ½ÇÇà½ÃŲ´Ù:
ldapadd -f /tmp/entrymods
/tmp/newentry ÆÄÀÏÀÌ Á¸ÀçÇÏ°í ´ÙÀ½ ³»¿ëÀ» °®´Â´Ù°í °¡Á¤ÇÑ´Ù:
dn: cn=Barbara Jensen, o=University of Michigan, c=US
changetype: delete
´ÙÀ½ ¸í·ÉÀº Babs JensenÀÇ ¿£Æ®¸®¸¦ »èÁ¦ÇÑ´Ù:
ldapmodify -f /tmp/entrymods
-f ¿É¼ÇÀº ÆÄÀÏ(Ç¥ÁØ ÀԷ´ë½Å ÆÄÀϷκÎÅÍ ¼öÁ¤ Á¤º¸¸¦ ÀдÂ), -b ¿É¼ÇÀº ¹ÙÀ̳ʸ®(ÀÔ·Â ÆÄÀÏÀÇ '/'·Î ½ÃÀ۵Ǵ ¸ðµç °ªµéÀº ¹ÙÀ̳ʸ®·Î Çؼ®µÈ´Ù), -r ¿É¼ÇÀº ´ëü(µðÆúÆ®·Î ±âÁ¸ °ªÀ» ´ëüÇÑ´Ù)¸¦ ³ªÅ¸³½´Ù.