Chapter 10
The Network Information System


D.M.Z CONTENT PRE NEXT

10.1 Getting Acquainted with NIS
10.2 NIS versus NIS+
10.3 The Client Side of NIS
10.4 Running a NIS Server
10.5 Setting up a NIS Client with NYS
10.6 Choosing the Right Maps
10.7 Using the passwd and group Maps
10.8 Using NIS with Shadow Support
10.9 Using the Traditional NIS Code

´ç½ÅÀÌ LANÀ» ¿î¿µÇÑ´Ù°í ÇÒ ¶§, ÀϹÝÀûÀÎ ÃÖÁ¾ ¸ñÇ¥´Â À¯Àúµé¿¡°Ô Åõ¸íÇÑ ³×Æ®¿÷ ȯ°æÀ» Á¦°øÇÏ´Â °ÍÀÌ´Ù. À̸¦ À§ÇÑ Áß¿äÇÑ ¹ßÆÇÀº À¯Àú °èÁ¤ Á¤º¸°ú °°Àº ÇÙ½É µ¥ÀÌÅ͸¦ À¯ÁöÇÏ´Â ÀÏÀÌ´Ù. ¿ì¸®´Â ÀÌÀü¿¡, hostname resolutionÀ» À§Çؼ­ °­·ÂÇÏ°íµµ º¹ÀâÇÑ DNS¼­º­½º°¡ Á¸ÀçÇÑ´Ù´Â °ÍÀ» º» ¹Ù ÀÖ´Ù. ±× ¿ÜÀÇ ÀÏÀ»À» À§ÇÑ Æ¯Á¤ ¼­ºñ½º´Â Á¸ÀçÇÏÁö ¾Ê´Â´Ù. °Ô´Ù°¡ ´ç½ÅÀÌ ±×Àú ÀÎÅͳݿ¡ ¿¬°áµÇÁö ¾ÊÀº ¼Ò±Ô¸ð LANÀ» ¿î¿µÇÏ·Á ÇÒ ¶§, DNS´Â °ü¸®»óÀÇ ¹®Á¦¸¦ °í·ÁÇÏÀÚ¸é ±×¸® À¯¿ë¼º ÀÖ°Ô º¸ÀÌÁö ¾Ê´Â´Ù.

ÀÌ°ÍÀÌ ¹Ù·Î Sun¿¡¼­ NIS(Network Information System)¸¦ °³¹ßÇÑ ÀÌÀ¯ÀÌ´Ù. NIS´Â, passwd¿Í groupÆÄÀÏÀÇ ³»¿ë°ú °°Àº Á¤º¸¸¦ ´ç½ÅÀÇ ³×Æ®¿÷ »ó¿¡ ÀÖ´Â ¸ðµç È£½ºÆ®¿¡ ¹èÆ÷(distribute)Çϴµ¥ »ç¿ëÇÏ´Â ÀϹÝÀûÀÎ µ¥ÀÌÅÍ º£À̽º ¾ï¼¼½º ±â´ÉÀ» Á¦°øÇÑ´Ù. ÀÌ´Â ¸ðµç È£½ºÆ®¿¡ µ¿ÀÏÇÑ °èÁ¤À» °¡Áö°ÔÇÏ¿© ³×Æ®¿÷ÀÌ ¸¶Ä¡ ´ÜÀÏ ½Ã½ºÅÛó·³ º¸ÀÌ°Ô ÇÑ´Ù. ÀÌ¿Í ºñ½ÁÇÏ°Ô, È£½ºÆ®³×ÀÓ Á¤º¸ ¿ª½Ã NIS¸¦ »ç¿ëÇÏ¿© /etc/hostsÆÄÀÏ¿¡¼­ ³×Æ®¿÷ »óÀÇ ¸ðµç ¸Ó½Å¿¡°Ô ¹èÆ÷ÇÒ ¼ö ÀÖ´Ù.

NIS´Â RPC¸¦ ±â¹ÝÀ¸·Î ÇÏ°í, ¼­¹ö¿Í Ŭ¶óÀ̾ðÆ® Ãø ¶óÀ̺귯¸®, ±×¸®°í ¸î°¡Áö °ü¸®¿ë Åø·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. ¿ø·¡, NIS´Â Yellow Pages, ÁÙ¿©¼­ YP¶ó°í ºÒ¸®´Âµ¥, ÀÌ´Â ÀÌ ¼­ºñ½º¸¦ ºñ°ø½ÄÀûÀ¸·Î ÁöĪÇÒ ¶§ ¸¹ÀÌ ¾²ÀÌ´Â À̸§ÀÌ´Ù. ¹Ý¸é, Yellow Pages´Â British TelecomÀÇ Æ®·¹ÀÌµå ¸¶Å©À̸ç, Sun Ãø¿¡ ±× À̸§À» Æ÷±âÇÒ °ÍÀ» ¿ä±¸ÇÏ°í ÀÖ´Ù. ¹¹ ´Ù ±×·¸µíÀÌ, ÀÌ¹Ì »ç¶÷µé ÀÔ¿¡ ºÙ¾î¹ö¸° YP´Â NIS¿¡ ¿¬°üµÇ Ä¿¸Çµå, Áï ypserv, ypbindµî°ú °°Àº °ÍµéÀÇ Á¢µÎ¾î·Î ³²°ÔµÇ¾ú´Ù.

¿À¸¦³¯ NIS´Â °ÅÀÇ ¸ðµç Uniceµé¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, ¹«·á implementation ¸¶Àúµµ ³ª¿Í ÀÖ´Ù. ÇÏ´À´Â BSD Net-2 ¸±¸®Áî¿¡¼­ À¯·¡ÇÑ °ÍÀ¸·Î, SunÀÌ ±âÁõÇÑ Publiv domain reference implementationÀ» °è½ÂÇÑ °ÍÀÌ´Ù. ÃÖ±Ù¿¡¾ß NIS °ü¸®¿ë ÇÁ·Î±×·¥ÀÌ Swen Thu:mmler¿¡ÀÇÇØ ¸®´ª½º·Î Æ÷ÆÃµÈ °Í°ú´Â ´ëÁ¶ÀûÀ¸·Î, ÀÌ ¸±¸®ÁîÀÇ ¶óÀ̺귯¸® Ŭ¶óÀ̾ðÆ® ÄÚµå´Â ¿À·¡ÀüºÎÅÍ GNU libc¿¡ ³»ÀçµÇ¾î ÀÖ¾ú´Ù. reference implementation¿¡¼­´Â NIS ¼­¹ö°¡ Á¦¿ÜµÇ¾î ÀÖ¾úÀ¸³ª, Tobias Reber°¡ ¸ðµç Åø°ú ¼­¹ö¸¦ Áö´Ñ »õ·Î¿î NIS ÆÐÅ°Áö¸¦ ¸¸µé¾úÀ¸¸ç, À̸¦ yps¶ó ºÎ¸¥´Ù.

ÇöÀç, Peter Eriksson¿¡ ÀÇÇØ ¿ÏÀüÈ÷ Àç ÄÚµùµÈ NIS ÄÚµå´Â NYS¶ó ºÒ¸®¸ç, º¸ÅëÀÇ NIS¿Í, SunÀÌ Á» ´õ ¼öÁ¤À» °¡ÇÑ NIS+¸¦ ¸ðµÎ Áö¿øÇÑ´Ù. NYS´Â NIS Åø¼Â°ú ¼­¹ö¸¦ Áö¿øÇÒ »Ó ¾Æ´Ï¶ó ¾ðÁ¨°¡´Â Ç¥ÁØ libc¿¡ ³»ÀçµÉ »õ·Î¿î ¶óÀ̺귯¸® ÇÔ¼ö°¡ Ãß°¡µÈ °ÍÀÌ´Ù. ÀÌ´Â ÇöÀç hostname resolutionÀ» ÇϱâÀ§ÇØ host.conf¸¦ »ç¿ëÇÏ´Â ±¸Á¶ ´ë½Å, »õ·Î¿î ¼³Á¤ ±¸Á¶¸¦ Áö´Ñ´Ù. ÀÌ ±â´É¿¡ ´ëÇؼ± ³ªÁß¿¡ ³íÀÇÇÒ °ÍÀÌ´Ù.

ÀÌ ÀåÀº "ÀüÅëÀûÀÎ" NIS ÄÚµå¶ó ¸»ÇÏ´Â, ´Ù¸¥ µÎ ÆÐÅ°Áö º¸´Ù´Â NYS¿¡ ÁßÁ¡À» µÐ´Ù. ¸¸¾à ±× µÎ ÆÐÅ°Áö Áß Çϳª¸¦ »ç¿ëÇÏ°íÀÚ ÇÑ´Ù¸é ÀÌ ÀåÀÇ ¼³¸íÀº ÃæºÐÇÒ ¼öµµ, ºÒÃæºÐÇÒ ¼öµµ ÀÖ´Ù. Ãß°¡ÀûÀÎ Á¤º¸¸¦ ¾ò±âÀ§Çؼ± Hal SternÀÇ NFS and NIS([Stern92]¸¦ º¸¶ó)¿Í °°Àº NIS¿¡ ´ëÇÑ ¼­ÀûÀ» Âü°íÇ϶ó.

NYS´Â ¾ÆÁ÷ °³¹ß ÁßÀ̸ç, ³×Æ®¿÷ ÇÁ·Î±×·¥À̳ª login ÇÁ·Î±×·¥°°Àº Ç¥ÁØ ¸®´ª½º À¯Æ¿¸®Æ¼¿¡µµ NYS ¼³Á¤±¸Á¶°¡ ¹Ý¿µµÇÁö ¾Ê¾Ò´Ù. NYS°¡ main streamÀ̶óÇÒ ¼ö ÀÖ´Â libc¿¡ Æ÷ÇԵDZâ Àü±îÁö´Â, ±×°ÍÀ» »ç¿ëÇϱâÀ§ÇØ ÀÌ ¸ðµç ¹ÙÀ̳ʸ®µéÀ» Àç ÄÄÆÄÀÏ ÇؾßÇÑ´Ù. ÀÌ·¯ÇÑ ¾îÇø®ÄÉÀ̼ÇÀÇ Makefile¿¡, libc¾Õ¿¡ -lnslÀ» ¸¶Áö¸· ¿É¼ÇÀ¸·Î linker¿¡ ÁöÁ¤Ç϶ó. ÀÌ°ÍÀº Ç¥ÁØ C ¶óÀ̺귯¸®´ë½Å NYS ¶óÀ̺귯¸®ÀÎ libnsl¿¡¼­ ÀûÀýÇÑ °ü·ÃÇÔ¼ö¸¦ ¸µÅ©½ÃŲ´Ù.


10.1 Getting Acquainted with NIS

NIS´Â key°ªÀ» Áö´Ñ map ³»¿¡ µ¥ÀÌÅͺ£À̽º Á¤º¸¸¦ º¸Á¸ÇÑ´Ù. mapÀº NIS ¼­¹ö¸¦ µ¹¸®´Â ¼­¹ö¿¡ ÀúÀåµÇ¸ç, Ŭ¶óÀ̾ðÆ®´Â RPC ÄÝÀ» ÅëÇØ ±×°ÍÀ» ¾ò¾î³½´Ù. mapÀº DBM Çü½ÄÀÇ ÆÄÀÏ·Î ÀúÀåµÈ´Ù.

map ÀÚü´Â º¸Åë, /etc/hosts³ª /etc/passwd °°Àº ¸¶½ºÅÍ ÅؽºÆ® ÆÄÀÏ¿¡¼­ »ý¼ºµÈ´Ù. ¸î°¡Áö ÆÄÀÏÀ» À§ÇØ, °¢ search key ŸÀÔº°·Î Çϳª¾¿, ¸î°³ÀÇ mapÀÌ »ý¼ºµÈ´Ù. ¿¹¸¦ µé¾î, ´ç½ÅÀº È£½ºÆ®³×ÀÓÀ» ¾ò±âÀ§Çؼ­, ±×¸®°í IP ÁÖ¼Ò¸¦ ¾ò±âÀ§ÇØ hosts ÆÄÀÏÀ» °Ë»öÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. µû¶ó¼­ ±×°Í¿¡¼­´Â µÎ°³ÀÇ NIS map, Áï hosts.byname°ú hosts.byaddrÀ̶ó´Â °ÍÀ» °¢°¢ ¾ò¾î³½´Ù. Ç¥ 10.1Àº ÀϹÝÀûÀÎ map°ú ±×°ÍÀ» »ý¼ºÇÏ´Â ÆÄÀÏÀ» º¸¿©ÁØ´Ù.

Master File Map(s)
/etc/hosts
/etc/networks
/etc/passwd
/etc/group
/etc/services
/etc/rpc
/etc/protocols
/usr/lib/aliases
hosts.byname hosts.byaddr
networks.byname networks.byaddr
passwd.byname passwd.byuid
group.byname group.bygid
servicess.bynameservices.bynumber
rpc.byname rpc.bynumber
protocols.bynameprotocols.bynumber
mail.aliases

Ç¥ 10.1 : ¸î°¡Áö Ç¥ÁØ NIS map°ú ±×¿¡ »óÀÀÇÏ´Â ÆÄÀÏ

±× ¿Ü¿¡µµ ´Ù¸¥ NIS ÆÐÅ°Áö¿¡¼­ Áö¿øµÇ´Â ÆÄÀÏ°ú mapÀ» ¹ß°ßÇÒ ¼öµµ ÀÖÀ»°ÍÀÌ´Ù. À̵鿣 ÀÌ Ã¥¿¡¼­ ³íÀÇÇÏÁö ¾Ê´Â, °¡·É BOOTP ¼­¹ö°¡ »ç¿ëÇÏ´Â bootparams mapÀ̳ª ÇöÀç ¸®´ª½º¿¡¼­ Áö¿øÇÏÁö ¾Ê´Â ±â´É(ethers.byname°ú ethers.byaddr°°Àº)ÀÇ ¾îÇø®ÄÉÀ̼ǿ¡ ´ëÇÑ Á¤º¸¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù.

¸î°¡Áö map¿¡ ´ëÇؼ­ »ç¶÷µéÀº nicknameÀ» »ç¿ëÇϴµ¥, À̵éÀº ´ë°³ ª°í ŸÀÌÇÎÇϱ⠽¬¿î °ÍµéÀÌ´Ù. NIS Åø¿¡ Çؼ®µÇ´Â ¸ðµç nicknameÀÇ ¸ñ·ÏÀ» ¿øÇÑ´Ù¸é ´ÙÀ½ÀÇ Ä¿¸Çµå¸¦ ½ÇÇàÇ϶ó.

     $ ypcat -x
     NIS map nickname translation table:
             "passwd" -> "passwd.byname"
             "group" -> "group.byname"
             "networks" -> "networks.byaddr"
             "hosts" -> "hosts.byname"
             "protocols" -> "protocols.bynumber"
             "services" -> "services.byname"
             "aliases" -> "mail.aliases"
             "ethers" -> "ethers.byname"
             "rpc" -> "rpc.bynumber"
             "netmasks" -> "netmasks.byaddr"
             "publickey" -> "publickey.byname"
             "netid" -> "netid.byname"
             "passwd.adjunct" -> "passwd.adjunct.byname"
             "group.adjunct" -> "group.adjunct.byname"
             "timezone" -> "timezone.byname"

NIS ¼­¹ö´Â ´ë´ë·Î ypserv¶ó ºÒ¸°´Ù. Æò±ÕÀûÀÎ ³×Æ®¿÷¿¡¼­´Â º¸Åë ÇϳªÀÇ ¼­¹ö¸¸À¸·Î Á·Çϳª, º¸´Ù Å« ±Ô¸ðÀÇ ³×Æ®¿÷¿¡¼­´Â ´Ù¸¥ ¸Ó½Å°ú ´Ù¸¥ ³×Æ®¿÷ ¼¼±×¸ÕÆ®¿¡¼­ À̵éÀ» µ¹·Á, ¼­¹ö ¸Ó½Å°ú ¶ó¿ìÅÍÀÇ ·Îµå¸¦ °æ°¨½Ãų ¼ö ÀÖ´Ù. ÀÌµé ¼­¹ö´Â ±× Áß Çϳª¸¦ ¸¶½ºÅÍ ¼­¹ö·Î ¸¸µé°í ±× ¿ÜÀÇ °ÍµéÀ» ½½·¹ÀÌºê ¼­¹ö·Î ÇÔÀ¸·Î½á µ¿±âÈ­µÈ´Ù. mapÀº ¸¶½ºÅÍ ¼­¹öÀÇ È£½ºÆ®¿¡¼­¸¸ ¸¸µé¾îÁö°í, ÀÌ´Â ¸ðµç ½½·¹À̺꿡 ¹èºÐµÈ´Ù.

¿ì¸®°¡ Ç×»ó "³×Æ®¿÷"À̶ó´Â °Í¿¡ °üÇØ ¾ÆÁÖ ¸ðÈ£ÇÏ°Ô ¾ê±âÇÑ´Ù´Â °ÍÀ» ´À³¥ °ÍÀÌ´Ù. ¹°·Ð NIS¿¡¼­, NIS¸¦ ÅëÇØ ½Ã½ºÅÛ ¼³Á¤ÀÇ ÀϺθ¦ °øÀ¯ÇÏ´Â ¸ðµç È£½ºÆ®ÀÇ ÁýÇÕÀ» °¡¸®Å°´Â, ¸í·áÇÑ °³³äÀÇ ³×Æ®¿÷ÀÎ NIS domainµµ Á¸ÀçÇÑ´Ù. ºÒÇàÇÏ°Ôµµ NIS µµ¸ÞÀÎÀº DNS°ú´Â ¾Æ¹«·± °ü·ÃÀÌ ¾ø´Ù. ÀÌ Àå¿¡¼­ ¸ðÈ£¼ºÀ» ÇÇÇϱâÀ§ÇØ, ÀǹÌÇÏ°íÀÚ ÇÏ´Â µµ¸ÞÀÎÀÇ Á¾·ù¸¦ ¾ðÁ¦³ª Á¤È®È÷ Ç¥±âÇÒ °ÍÀÌ´Ù.

NIS µµ¸ÞÀÎÀº ¿ÀÁ÷ ¼ø¼öÇÏ°Ô °ü¸®ÀûÀÎ ±â´É¸¸À» °¡Áö°í ÀÖ´Ù. µµ¸ÞÀÎ ³»ÀÇ Æнº¿öµå¸¦ °øÀ¯ÇÏ´Â ¸ðµç È£½ºÆ®¿Ü¿¡, ±×°ÍÀº À¯Àú¿¡°Ô ÀÖ¾î ÀüÇô ½Å°æ¾µ ÇÊ¿ä°¡ ¾ø´Â °ÍÀ̸ç, NIS µµ¸ÞÀÎÀ¸·Î ÁÖ¾îÁø À̸§Àº ¿ÀÁ÷ °ü¸®ÀÚ¿¡°Ô¸¸ »ó°üÀÖ´Â °ÍÀÌ´Ù. º¸Åë, ´ç½ÅÀÇ ·ÎÄà ³×Æ®¿÷¿¡ ±×¿Í °°Àº À̸§ÀÇ NIS µµ¸ÞÀÎÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é ¾î¶² À̸§µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, Virtual BreweryÀÇ °ü¸®ÀÚ´Â, BreweryÀڽſ¡ ´ëÇÑ brewery, ±×¸®°í Winery¿¡ ´ëÇÑ winery¶ó´Â µÎ°³ÀÇ NIS µµ¸ÞÀÎÀ» »ý¼ºÇÒ ¼ö ÀÖ´Ù. Åë»óÀûÀ¸·Î, DNS µµ¸ÞÀγ×ÀÓÀ» NIS µµ¸ÞÀÎ ³×ÀÓÀ¸·Î ´Ü¼øÈ÷ »ç¿ëÇϱ⵵ ÇÑ´Ù. ´ç½Å È£½ºÆ®ÀÇ NIS µµ¸ÞÀγ×ÀÓÀ» ¼³Á¤Çϰųª Ç¥½ÃÇÏ·ÁÇÒ ¶§ domainname Ä¿¸Çµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÎÀÚ¸¦ ÁÖÁö ¾Ê°í ½ÇÇàÇϸé ÇöÀç NIS µµ¸ÞÀÎ ³×ÀÓÀ» Ãâ·ÂÇÑ´Ù. µµ¸ÞÀÎ ³×ÀÓÀ» ÁöÁ¤Çϱâ À§Çؼ± ¼öÆÛÀ¯Àú°¡µÇ¾î ´ÙÀ½À» ÀÔ·ÂÇ϶ó.

     # domainname brewery

NIS µµ¸ÞÀÎÀº ¾îÇø®ÄÉÀ̼ÇÀÌ queryÇÒ NIS ¼­¹ö¸¦ °áÁ¤ÇÏ´Â ±¸½ÇÀ» ÇÑ´Ù. ¿¹¸¦ µé¾î, Winery¿¡ Àִ ȣ½ºÆ®ÀÇ login À¯ÀúÀÇ Æнº¿öµå Á¤º¸¸¦ ¾ò±âÀ§ÇØ ÇÁ·Î±×·¥Àº ´ç¿¬È÷ WineryÀÇ NIS ¼­¹ö¿¡¸¸(¸¸¾à ¿©·¯°³¶ó¸é, ±×Áß Çϳª¿¡) queryÇÑ´Ù. ÇÑÆí, Brewery È£½ºÆ®ÀÇ ¾îÇø®ÄÉÀ̼ÇÀº BreweryÀÇ ¼­¹ö¿¡°Ô¸¸ queryÇÑ´Ù.

ÇØ°áÇؾßÇÒ ¹Ì½ºÅ͸®°¡ Àִµ¥, Áï Ŭ¶óÀ̾ðÆ®°¡ ¾î´À ¼­¹ö¿¡ Á¢¼ÓÇؾßÇÏ´ÂÁö¸¦ ¾î¶»°Ô ã¾Æ ³¾ ¼ö Àִñî ÇÏ´Â °ÍÀÌ´Ù. °¡Àå ´Ü¼øÇÑ ½Ãµµ´Â ¼³Á¤ÆÄÀÏÀ» »ç¿ëÇÏ¿© ¾î¶² ¼­¹ö¸¦ ãÀ»Áö¸¦ ¾Ë·ÁÁÖ´Â °ÍÀÌ´Ù. ±×·¯³ª ÀÌ ¹æ¹ýÀº ´Ù¼Ò À¶Å뼺 ¾ø´Â °ÍÀ¸·Î, ¿Ö³ÄÇϸé Ŭ¶óÀ̾ðÆ®°¡ ¼­¹öÀÇ »ç¿ë°¡´É¼º¿¡ µû¶ó ´Ù¸¥ ¼­¹ö¸¦ (¹°·Ð °°Àº µµ¸ÞÀÎÀÇ) ¼±ÅÃÇÏ¿© »ç¿ëÇÏ´Â°Ô Çã¿ëµÇÁö ¾Ê±â ¶§¹®ÀÌ´Ù. µû¶ó¼­ ÀüÅëÀûÀÎ NIS implementationÀº ypbind¶ó´Â Ư¼öÇÑ µ¥¸ó¿¡ ÀÇÁ¸ÇÏ¿© ±×µé NIS µµ¸ÞÀÎ ³»¿¡¼­ Àû´çÇÑ NIS ¼­¹ö¸¦ ã´Â´Ù. ¾î¶°ÇÑ NIS query¸¦ ÇϱâÀü¿¡, ¾îÇø®ÄÉÀ̼ÇÀº ypbind·Î ºÎÅÍ ¾î¶² ¼­¹ö¸¦ »ç¿ëÇÒ °ÍÀΰ¡¸¦ ã´Â´Ù.

ypbind´Â ·ÎÄà IP ³×Æ®¿÷À¸·Î broadcastingÀ» ÇÏ¿© ¼­¹ö¸¦ probeÇÑ´Ù. °¡Àå ¸ÕÀú ´ë´äÀ» ÇØ ¿À´Â °ÍÀÌ ÀáÁ¤ÀûÀ¸·Î °¡Àå ºü¸¥ °ÍÀ¸·Î °£Áֵǰí, ÀÌÈÄÀÇ ¸ðµç NIS query¸¦ ±× ÂÊÀ¸·Î º¸³½´Ù. ÀÏÁ¤ ½Ã°£ÀÌ Áö³ª°Å³ª ¼­¹ö°¡ ´Ù¿îµÇ¸é ypbind´Â ´Ù½Ã È°¼ºÈ­µÇ¾î ÀÖ´Â ¼­¹ö¸¦ probeÇÒ °ÍÀÌ´Ù.

µ¿Àû ¹ÙÀεùÀº ÇÊ¿äÇÑ °æ¿ì°¡ °ÅÀÇ ¾øÀ¸¸ç, º¸¾È»óÀÇ ¹®Á¦Á¡±îÁö ¾È°í ÀÖ´Ù. Áï ypbind´Â ´ë´äÀ» ÇØ¿À´Â °ÍÀÌ ´©±¸À̵çÁö, ½ÉÁö¾î ¾ÇÀǸ¦ °¡Áø ħÀÔÀÚÀÇ º¯º¯ÂúÀº NIS ¼­¹öÀÏÁö¶óµµ ±×´ë·Î ¹Ï¾î¹ö¸°´Ù. ´ç½ÅÀÌ NIS¿¡ Æнº¿öµå µ¥ÀÌÅͺ£À̽º¸¦ ¿î¿µÁßÀ̶ó¸é, ÀÌ´Â ¸»ÇÒ ÇÊ¿äµµ ¾øÀÌ °ñÄ¡¾ÆÇ ÀÏÀÌ µÈ´Ù. À̸¦ ¸·´Â ¹æ¹ýÀº NYS°¡ ypbind¸¦ µðÆúÆ®·Î »ç¿ëÇÏÁö ¾Ê°Ô ¸¸µé°í, ¼³Á¤ÆÄÀÏ¿¡¼­ ¼­¹öÈ£½ºÆ®¸¦ ²¨³»¿Àµµ·Ï ÇÏ´Â °ÍÀÌ´Ù.


10.2 NIS versus NIS+

NIS¿Í NIS+´Â ±×µéÀÇ À̸§ÀÌ ºñ½ÁÇϵíÀÌ, °°Àº ¸ñÇ¥¸¦ Ãß±¸ÇÑ´Ù. NIS+´Â ¿ÏÀüÈ÷ ´Ù¸¥ ¹æ¹ýÀ¸·Î ±¸Á¶È­µÇ¾î ÀÖ´Ù. »óÈ£ ¿¬°ü¼ºÀÌ ¾ø´Â NIS µµ¸ÞÀÎÀÇ Æò¸éÀûÀÎ name space´ë½Å, ±×°ÍÀº DNS¿Í ¸¶Âù°¡Áö·Î °èÃþÈ­µÈ name space¸¦ »ç¿ëÇϸç, map ´ë½Å¿¡ Çà(row)°ú ¿­(column)·Î ±¸¼ºµÈ tableÀ̶õ °ÍÀ» »ç¿ëÇϸç, °¢ ¿­Àº NIS+ µ¥ÀÌÅͺ£À̽º ³» ¿ÀºêÁ§Æ®¸¦ ³ªÅ¸³½´Ù. ÁÖ¾îÁø NIS+ µµ¸ÞÀÎÀÇ °¢ Å×À̺íÀº »óÀ§ µµ¸ÞÀÎÀÇ ±×°ÍÀ¸·Î ±¸¼ºµÈ´Ù. °Ô´Ù°¡ Å×ÀÌºí ³»ÀÇ ¿£Æ®¸®´Â ´Ù¸¥ Å×ÀÌºí¿¡´ëÇÑ ¸µÅ©°¡ µÉ ¼öµµ ÀÖ´Ù. ÀÌ·¯ÇÑ ±â´ÉÀº Á¤º¸¸¦ ¿©·¯°¡Áö ¹æ¹ýÀ¸·Î ±¸Á¶È­ ÇÒ ¼ö ÀÖ°Ô ¸¸µé¾î ÁØ´Ù.

ÀüÅëÀûÀÎ NIS´Â 2ÀÇ RPC ¹öÀü ¹øÈ£¸¦, NIS+´Â ¹öÀü 3¸¦ »ç¿ëÇÑ´Ù.

NIS+´Â ¾ÆÁ÷±îÁö ³Î¸® ¾²ÀÌÁö ¾Ê´Â °Í °°°í, ³ªµµ ±×¿¡°üÇØ Àß(¹¹, °ÅÀÇ ÀüºÎÀÌ´Ù) ¸ð¸¥´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î, ¿©±â¼­ ±×°ÍÀ» ´Ù·çÁö ¾ÊÀ» °ÍÀÌ´Ù. ¸¸¾à ±×¿¡ °üÇØ ¹è¿ï ÀÇÇâÀÌ ÀÖ´Ù¸é, SunÀÇ NIS+ administration manual([NISPlus])¸¦ Âü°íÇϱ⠹ٶõ´Ù.


10.3 The Client Side of NIS

¸¸¾à ³×Æ®¿÷ ¾îÇø®ÄÉÀ̼ÇÀ» ¾²°Å³ª Æ÷ÆÃÇϴµ¥ Àͼ÷ÇÏ´Ù¸é, À§¿¡ ³ª¿­ÇÑ NIS mapÀÇ ´ëºÎºÐÀÌ C ¶óÀ̺귯¸®ÀÇ ¶óÀ̺귯¸® ÇÔ¼ö¿¡ »óÀÀÇÑ´Ü °ÍÀ» ´«Ä¡Ã«À» °ÍÀÌ´Ù. ¿¹¸¦ µé¾î, passwd Á¤º¸¸¦ ¾ò±âÀ§Çؼ± º¸Åë, getpwnam(3)°ú getpwuid(3) ÇÔ¼ö¸¦ »ç¿ëÇϸç, À̵éÀº °¢°¢ ÁÖ¾îÁø À¯Àú³×ÀÓ ¶Ç´Â À¯Àú id ¹øÈ£¿Í ¿¬°üµÈ °èÁ¤ Á¤º¸¸¦ ¸®ÅÏÇÑ´Ù. ÀϹÝÀûÀÎ »óȲ¿¡¼­ ÀÌ ÇÔ¼öµéÀº ¿äûµÈ °Ë»öÀ» /etc/passwd¿Í °°Àº Ç¥ÁØ ÆÄÀÏ¿¡¼­ ¼öÇàÇÑ´Ù.

±×·¯³ª, ÀÌ ÇÔ¼öÀÇ NIS-aware implementationÀº À§¿Í´Â ´Ù¸¥ µ¿ÀÛÀ» ÇÒ °ÍÀÌ°í, RPC ÄÝÀ» »ç¿ëÇÏ¿© NIS ¼­¹ö°¡ À¯Àú³×ÀÓ°ú id¸¦ °Ë»öÅä·Ï ÇÒ °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ÀϵéÀº ¾îÇø®ÄÉÀ̼ǿ¡ ÀÖ¾î ¿ÏÀüÈ÷ Åõ¸íÇÑ °ÍÀÌ´Ù. ±× ÇÔ¼ö´Â NIS mapÀ» "Ãß°¡"Çϰųª ¿ø ÆÄÀÏÀ» ±×°ÍÀ¸·Î "´ëü"ÇÑ´Ù. ¹°·Ð, ÀÌ°ÍÀÌ ±× ÆÄÀÏÀ» ½ÇÁ¦ ¼öÁ¤ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, ÆÄÀÏÀÌ ´ëüµÇ°Å³ª Ãß°¡µÈ °Í ó·³ ¾îÇø®ÄÉÀ̼ǿ¡°Ô º¸Àδٴ °ÍÀ» ¶æÇÑ´Ù.

ÀüÅëÀûÀÎ NIS implementationÀÇ °æ¿ì, mapÀÌ ¿ø Á¤º¸¿¡ Ãß°¡µÇ¾î ´ëüµÇ´Â °ÍÀÌ ¾î¶² ÆíÀ̼ºÀ¸·Î »ç¿ëµÇ¾î ¿Ô´Ù. passwd°°Àº ¸î°¡Áö´Â, À߸øµÇ¾úÀ» °æ¿ì passwd ÆÄÀÏÀ» ÀϺΠ¼öÁ¤ÇØ¾ß Çß´Ù. ÀÌ´Â º¸¾È ±¸¸ÛÀ» ¿­¾î ³õ´Â´Ù. (¹«½¼ ¶æÀÎÁö Àß Çؼ®ÀÌ ¾ÈµÊ - ¿ªÀÚÁÖ) ÀÌ·¯ÇÑ ÇÔÁ¤À» ÇÇÇϱâ À§Çؼ­ NYS´Â ƯÁ¤ Ŭ¶óÀ̾ðÆ® ÇÔ¼ö ¼¼Æ®°¡ ¿ø ÆÄÀÏ, NIS ¶Ç´Â NIS+¸¦ ¾î¶² ¼ø¼­´ë·Î »ç¿ëÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇÏ´Â ÀϹÝÀûÀÎ ¼³Á¤Ã¼°è¸¦ »ç¿ëÇÑ´Ù. ÀÌ ÀåÀÇ µÞºÎºÐ¿¡¼­ ÀÌ¿¡ °üÇØ ³íÀÇÇÑ´Ù.


ÀÌ·ÐÀûÀÎ ±â¼ú»óÀÇ Àâ´äÀº ±×¸¸ÇÏ°í, ÀÌÁ¦ º»°ÝÀûÀ¸·Î ¼³Á¤ÀÛ¾÷À» ÇÏ´Â ½Ã°£ÀÌ µ¹¾Æ¿Ô´Ù. ÀÌ Àý¿¡¼­ ¿ì¸®´Â NIS ¼­¹öÀÇ ¼³Á¤¿¡´ëÇØ ´Ù·ê °ÍÀÌ´Ù. ¸¸¾à ÀÌ¹Ì NIS ¼­¹ö¸¦ ³×Æ®¿÷¿¡ µ¹¸®°í ÀÖ´Ù¸é, ´ç½Å ¼ÒÀ¯ÀÇ ¼­¹ö¸¦ µ¹·Á¾ßÇÏÁö¸¸Àº ¾Ê´Ù. ÀÌ·¯ÇÑ °æ¿ì, ÀÌ ÀýÀ» °Ç³Ê¶Ù¾îµµ ÁÁ´Ù.

  • ¸¸¾à ¼­¹ö·Î Å×½ºÆ®ÇØ º¼ ÀÛÁ¤À̶ó¸é, NIS µµ¸ÞÀÎÀ¸·Î ¼Â¾÷ÇÏ·Á´Â À̸§ÀÌ ÀÌ¹Ì ´ç½Å ³×Æ®¿÷¿¡¼­ »ç¿ëÁßÀÌÁö ¾ÊÀº°¡ È®ÀÎÇÏ¿©¾ß ÇѴٴµ¥ ÁÖÀÇÇÏÀÚ. ±×·¸Áö ¾Ê´Ù¸é Àüü ³×Æ®¿÷¿¡ Àå¾Ö¸¦ °¡Á®¿Ã ¼ö ÀÖÀ¸¸ç, ¸¹Àº »ç¶÷µéÀ» ºÒÇàÇÏ°Ô, ±×¸®°í È­³ª°Ô ¸¸µç´Ù.

ÇöÀç ¸®´ª½º¿¡¼­ »ç¿ë°¡´ÉÇÑ NIS ¼­¹ö´Â µÎ °¡Áö·Î, Çϳª´Â Tobias ReberÀÇ yps ÆÐÅ°Áö¿¡ Æ÷ÇԵǾî ÀÖ°í, ¶Ç Çϳª´Â Peter ErikssonÀÇ ypserv ÆÐÅ°Áö³»¿¡ ÀÖ´Ù. ÇöÀç libv ³»ÀÇ NYS¸¦ »ç¿ëÇÏ°Ç, Ç¥ÁØ NIS Ŭ¶óÀ̾ðÆ® Äڵ带 »ç¿ëÇÏ°Ç °£µ¥, ±× Áß ¾î´À °ÍÀ» »ç¿ëÇÏ°Ç º°·Î Áß¿äÇÑ ÀÏÀÌ ¾Æ´Ï´Ù. ÀÌ ±ÛÀ» ¾²´Â Áö±Ý, yps ³»ÀÇ NIS ½½·¹ÀÌºê ¼­¹ö Çڵ鸵¿¡´ëÇÑ Äڵ尡 Á» ´õ ¿Ïº®ÇØ º¸ÀδÙ. ±×·¯¹Ç·Î ´ç½ÅÀÌ ½½·¹ÀÌºê ¼­¹ö¸¦ ¾²°íÀÚ ÇÑ´Ù¸é yps°¡ Á» ´õ ³ªÀº ¼±ÅÃÀÌ ¾Æ´Ò±î ÇÑ´Ù.

¼­¹ö ÇÁ·Î±×·¥(ypserv)À» /usr/sbin¿¡ ¼³Ä¡ÇÑ ÈÄ, ´ç½ÅÀÇ ¼­¹ö°¡ ¹èºÐÇÒ map ÆÄÀÏÀ» ´ãÀ» µð·ºÅ丮¸¦ ¸¸µé¾î¾ß ÇÒ °ÍÀÌ´Ù. brewery µµ¸ÞÀÎÀ¸·Î NIS µµ¸ÞÀÎÀ» ¼Â¾÷ÇÒ ¶§, mapÀº /var/yp/brewery ¾Æ·¡¿¡ ÀúÀåµÈ´Ù. ¼­¹ö´Â map µð·ºÅ丮°¡ Á¸ÀçÇÏ´ÂÁö¸¦ °Ë»çÇÏ¿© ±×°ÍÀÌ Æ¯Á¤ NIS µµ¸ÞÀÎÀ» Á¦°øÇÏ´ÂÁöÀÇ ¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù. ¸¸¾à ¾î¶² NIS µµ¸ÞÀο¡´ëÇÑ ¼­ºñ½º¸¦ ¸·¾Æ³õ´Â´Ù¸é, ±× µð·ºÅ丮¸¦ Á¦°Å Çß´ÂÁö¸¦ È®ÀÎÇ϶ó.

mapÀº º¸Åë ºü¸¥ °Ë»öÀ» À§ÇØ DBM ÆÄÀÏ Çü½ÄÀ¸·Î ÀúÀåµÈ´Ù. ±×°ÍµéÀº (Tobias ¼­¹öÀÇ °æ¿ì) makedbmÀ̳ª (Peter ¼­¹öÀÇ °æ¿ì)dbmload¶ó´Â ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© ¸¶½ºÅÍ ÆÄÀϷκÎÅÍ »ý¼ºµÇ´Âµ¥, ±× µÎ ÇÁ·Î±×·¥Àº ¼­·Î ȣȯµÇÁö ¾Ê´Â´Ù. ¸¶½ºÅÍ ÆÄÀÏÀ» dbmload°¡ ÆĽÌÇÒ ¼ö ÀÖ´Â ÇüÅ·Πº¯ÇüÇÏ´Â ÀÏÀº º¸Åë ŸÀÌÇÎÇϰųª ±â¾ïÇϱ⿡ ¾à°£Àº ÀåȲÇÑ ¸éÀÌ ¾øÁö ¾ÊÀº, awk³ª sedÀÇ ¸¶¼ú·Î½á ÀÌ·ç¾îÁø´Ù. °Ô´Ù°¡ Peter ErikssonÀÇ ypserv ÆÐÅ°Áö´Â Makefile(ypMakefile¶ó°í ÇÏ´Â)À» Æ÷ÇÔÇϴµ¥, ÀÌ°ÍÀº ¸ðµç ÀÏÀ» ´ç½Å ´ë½Å¿¡ ó¸®ÇØ ÁØ´Ù. ±×°ÍÀ» Makefile ó·³ map µð·ºÅ丮¿¡ ¼³Ä¡ÇÏ°í, ´ç½ÅÀÌ ¹èºÐÇÏ°íÀÚ ÇÏ´Â map ºÎºÐÀ» ¼öÁ¤ÇÑ´Ù. ÆÄÀÏÀÇ ÃÖ»ó´Ü¿¡¼­, ypserv°¡ Á¦°øÇÏ°íÀÚ ÇÏ´Â ¼­ºñ½º¸¦ ³ª¿­ÇÑ ¸ðµç Ÿ°ÙÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. µðÆúÆ®·Î ÀÌ ¶óÀÎÀº ´ÙÀ½°ú °°´Ù.

     all: ethers hosts networks protocols rpc services passwd group netid

°¡·É, ethers.byname°ú ethers.byaddr mapÀ» ¸¸µé°í ½ÍÁö ¾Ê´Ù¸é ´Ü¼øÈ÷ ÀÌ rule¿¡¼­ ethers Á¶°ÇÀ» Á¦°ÅÇÏ¸é µÈ´Ù. ´ç½ÅÀÌ ¼³Á¤ÇÑ °ÍÀ» ½ÃÇèÇØ º¸±âÀ§ÇØ, services.* map°ú °°Àº ÇÑ µÎ°³ÀÇ map¸¸À¸·Îµµ ½ÃÀÛÇÒ ¼ö ÀÖ´Ù.

MakefileÀ» ÆíÁýÇÑ ÈÄ, map µð·ºÅ丮 ³»¿¡¼­ "make"¸¦ ÀÔ·ÂÇ϶ó. ÀÌ°ÍÀº ÀÚµ¿À¸·Î mapÀ» »ý¼ºÇÏ°í ¼³Ä¡ÇØ ÁØ´Ù. ¸¶½ºÅÍ ÆÄÀÏÀ» º¯°æÇÒ ¶§¸¶´Ù mapÀ» updateÇÏ¿´´ÂÁö È®ÀÎÇ϶ó. ±×·¸Áö ¾Ê´Ù¸é º¯°æ »çÇ×ÀÌ ³×Æ®¿÷¿¡ ¾î¶°ÇÑ È¿·Âµµ ¹ÌÄ¡Áö ¸øÇÒ °ÍÀÌ´Ù.

´ÙÀ½ ÀýÀº ¾î¶»°Ô NIS Ŭ¶óÀ̾ðÆ® Äڵ带 ¼³Á¤ÇÏ´ÂÁö¸¦ ¼³¸íÇÑ´Ù. ¸¸ÀÏ¿¡ ´ç½ÅÀÇ ¼Â¾÷ÀÌ Á¦´ë·Î µ¿ÀÛÇÏÁö ¾Ê´Â´Ù¸é, request°¡ ´ç½ÅÀÇ ¼­¹ö¿¡ ´ê´ÂÁö ¾Æ´ÑÁö¸¦ ã¾Æ³»¾ß ÇÑ´Ù. ¸¸¾à ´ç½ÅÀÌ NYS ¼­¹ö¿¡ -D Ä¿¸Çµå¶óÀÎ Ç÷¡±×¸¦ ÁöÁ¤ÇØ ÁÖ¾ú´Ù¸é, ±×°ÍÀº µé¾î¿À´Â ¸ðµç NIS query¿Í ¸®ÅϵǴ °á°ú¿¡°üÇÑ µð¹ö±ë ¸Þ½ÃÁö¸¦ Äֿܼ¡ Ãâ·ÂÇÑ´Ù. À̵éÀº ¾îµð¼­ ¹®Á¦°¡ ¹ß»ýÇÏ´ÂÁö ÈùÆ®¸¦ ÁÙ °ÍÀÌ´Ù. TobiasÀÇ ¼­¹ö¿£ ÀÌ·¯ÇÑ ¿É¼ÇÀÌ ¾ø´Ù.


10.5 Setting up a NIS Client with NYS

ÀÌ ÀåÀÇ ³ª¸ÓÁö ºÎºÐ¿¡¼­´Â NIS Ŭ¶óÀ̾ðÆ® ¼³Á¤¿¡ °üÇØ ´Ù·ê °ÍÀÌ´Ù.

ù¹ø° ´Ü°è´Â, ¾î¶² ¼­¹ö¸¦ NIS ¼­ºñ½º¿¡ »ç¿ëÇÒ °ÍÀÎÁö¸¦ NYS¿¡ ¾ê±âÇØ ÁÖ´Â °ÍÀ¸·Î, /etc/yp.conf ¼³Á¤ ÆÄÀÏ¿¡ ÁöÁ¤ÇØ ÁØ´Ù. Winery ³×Æ®¿÷ÀÇ È£½ºÆ®¿¡´ëÇÑ ¾ÆÁÖ ´Ü¼øÇÑ »ùÇà ÆÄÀÏÀÇ ¸ð½ÀÀº ¾Æ·¡¿Í °°´Ù.

     # yp.conf - YP configuration for NYS library
     #
     domainname winery
     server vbardolino

ù¹ø° ¼±¾ð¹®Àº NIS Ŭ¶óÀ̾ðÆ®¿¡°Ô ±×°ÍÀÌ winery NIS µµ¸ÞÀο¡ ¼ÓÇØ ÀÖ´Ù°í ¸»ÇØÁØ´Ù. ¸¸¾à ÀÌ ¶óÀÎÀº ºü¶ß¸°´Ù¸é, NYS´Â domainname Ä¿¸Çµå¸¦ ÅëÇØ ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡ ÁöÁ¤ÇØ ÁØ µµ¸ÞÀÎ ³×ÀÓÀ» »ç¿ëÇÒ °ÍÀÌ´Ù. server ±¸¹®Àº »ç¿ëÇÒ NIS ¼­¹ö¸¦ ¸í½ÃÇÑ´Ù. ¹°·Ð vbardolinoÀÇ IP ÁÖ¼Ò°¡ ¹Ýµå½Ã hosts ÆÄÀÏ¿¡ ÁöÁ¤µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ´ë½Å¿¡, ¾Æ¿¹ server ±¸¹®¿¡ IP ÁÖ¼Ò ÀÚü¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

À§ÀÇ ¾ç½Ä¿¡¼­ server Ä¿¸Çµå´Â NYS¿¡°Ô, ÇöÀçÀÇ NIS µµ¸ÞÀÎÀÌ ¹«¾ùÀÌ°Ç °£¿¡ ÁÖ¾îÁø À̸§ÀÇ ¼­¹ö¸¦ »ç¿ëÇ϶ó°í ÇÑ´Ù. ±×·¯³ª ¸¸¾à ´ç½ÅÀÇ ¸Ó½ÅÀÌ ÀÚÁÖ ´Ù¸¥ µµ¸ÞÀÎ »çÀ̸¦ ¿Ô´Ù°¬´ÙÇÑ´Ù¸é yp.conf ÆÄÀÏ¿¡ ¿©·¯°³ÀÇ µµ¸ÞÀο¡´ëÇÑ Á¤º¸¸¦ º¸Á¸ÇÏ°í ½ÍÀ» °ÍÀÌ´Ù. NIS µµ¸ÞÀÎ ³×ÀÓÀ» ¼­¹ö ±¸¹® µÚ¿¡ Ãß°¡ÇÔÀ¸·Î½á yp.conf ÆÄÀÏ¿¡ ¿©·¯ NIS µµ¸ÞÀο¡´ëÇÑ ¼­¹öÀÇ Á¤º¸¸¦ ³ÖÀ» ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, À§ÀÇ ¿¹Á¦ ÆÄÀÏÀ» ·¦Å¾¿ëÀ¸·Î ¹Ù²Û´Ù¸é ¾Æ·¡¿Í °°À» °ÍÀÌ´Ù.

     # yp.conf - YP configuration for NYS library
     #
     server vbardolino winery
     server vstout     brewery

ÀÌ°ÍÀº ´Ü¼øÈ÷ ºÎÆýÿ¡ domainname Ä¿¸Çµå¸¦ ÅëÇØ ¿øÇÏ´Â NIS µµ¸ÞÀÎÀ» ÁöÁ¤ÇØ ÁÜÀ¸·Î½á, µÎ µµ¸ÞÀÎ ÁßÀÇ ¾î¶² °Í¿¡µµ ¹è¼Ó½Ãų ¼ö ÀÖ´Ù.

ÀÌ ±âº» ¼³Á¤ÆÄÀÏÀ» ¸¸µé°í ÀÌ°ÍÀÌ world-readableÇÑÁö È®ÀÎÇÑ ÈÄ, ´ç½ÅÀÇ ¼­¹ö¿¡ ¿¬°áÇÒ ¼ö ÀÖ´ÂÁö ½ÃÇè»ï¾Æ µ¹·Áº¸ÀÚ. ¼­¹ö°¡ ¹èºÐÇÏ´Â ¾Æ¹« mapÀ̳ª °ñ¶ó(°¡·É hosts.byname°°Àº °Í), ypcat À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇÏ¿© ±×°ÍÀ» ¹Þ¾Æº¸ÀÚ. ypcatÀº ´Ù¸¥ ¸ðµç Åø°ú ¸¶Âù°¡Áö·Î /usr/sbin ¹Ø¿¡ ÀÖ´Ù.

     # ypcat host.byname
     191.72.2.2     vbeaujolais  vbeaujolais.linus.lxnet.org
     191.72.2.3     vbardolino   vbardolino.linus.lxnet.org
     191.72.1.1     vlager       vlager.linus.lxnet.org
     191.72.2.1     vlgaer       vlager.linus.lxnet.org
     191.72.1.2     vstout       vstout.linus.lxnet.org
     191.72.1.3     vale         vale.linus.lxnet.org
     191.72.2.4     vchianti     vchianti.linus.lxnet.org

´ç½ÅÀº À§¿Í ºñ½ÁÇÑ °á°ú¹°À» ¾òÀ» °ÍÀÌ´Ù. ¸¸¾à ±×´ë½Å "Can't bind ot server which serves domain"À̳ª ÀÌ¿Í ºñ½ÁÇÑ ¿¡·¯¸¦ ³½´Ù¸é, ´ç½ÅÀÌ ÁöÁ¤ÇÑ NIS µµ¸ÞÀγ×ÀÓ¿¡ ¸Â´Â yp.conf¿¡ Á¤ÀÇµÈ ¼­¹ö°¡ ¾ø°Å³ª, ¸î°¡Áö ÀÌÀ¯·Î ¼­¹ö¿¡ ¿¬°áÇÒ ¼ö ¾ø±â ¶§¹®ÀÌ´Ù. ÈÄÀÚÀÇ °æ¿ì, ±× È£½ºÆ®¿¡ pingÇÏ¿© ±àÁ¤ÀûÀÎ °á°ú¸¦ ÁÖ´ÂÁö, ±×¸®°í rpcinfo¸¦ »ç¿ëÇÏ¿© °Å±â¿¡¼­ Á¤¸»·Î NIS ¼­¹ö¸¦ ¿î¿µÇÏ°í ÀÖ´ÂÁö¸¦ È®ÀÎÇ϶ó. rpcinfo´Â ´ÙÀ½°ú °°Àº °á°ú¸¦ Ãâ·ÂÇÒ °ÍÀÌ´Ù.

     # rpcinfo -u serverhost ypserv
     program 100004 version 2 ready and waitiing


10.6 Choosing the Right Maps

NIS ¼­¹ö¿¡ ¿¬°á°¡´ÉÇÏ´Ü °ÍÀ» È®ÀÎÇÏ°í ³ª¸é, ÀÌÁ¦ ¾î¶² ¼³Á¤ÆÄÀÏÀ» NIS mapÀ¸·Î ´ëüÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇؾßÇÑ´Ù. Åë»óÀûÀ¸·Î, È£½ºÆ®¿Í Æнº¿öµå °Ë»öÀ» À§ÇØ NIS mapÀ» »ç¿ëÇϴµ¥, ÀüÀÚ´Â BIND¸¦ µ¹¸®Áö ¾Ê´Â °æ¿ì¿¡ À¯¿ëÇÏ°í, ÈÄÀÚ´Â ¸ðµç À¯ÀúµéÀÌ NIS µµ¸ÞÀÎ ³»ÀÇ ¾î¶°ÇÑ ½Ã½ºÅÛ¿¡¼­°Ç ÀÚ½ÅÀÇ °èÁ¤À¸·Î ·Î±×ÀÎÇÒ ¼ö ÀÖ°Ô ¸¸µç´Ù. ÀÌ°ÍÀº ÈçÈ÷ NFS·Î ¸ðµç È£½ºÆ®°£¿¡ /home µð·ºÅ丮¸¦ °øÀ¯ÇÏ´Â °ÍÀ» ¿äÇϴµ¥, ÀÚ¼¼ÇÑ ¼³¸íÀº ¾Æ·¡ÀÇ 10.7 Àý¿¡¼­ ÇÏ°í ÀÖ´Ù. services.byname°ú °°Àº mapÀº ±×·± µå¶ó¸¶Æ½ÇÑ ¼º°ú¸¦ ÁÖÁø ¸øÇϳª, ´ç½ÅÀÌ Ç¥ÁØ services ÆÄÀÏ¿¡ ¾ø´Â ¼­ºñ½º³×ÀÓÀ» »ç¿ëÇÏ´Â ¾î¶² ³×Æ®¿÷ ÇÁ·Î±×·¥À» ¼³Ä¡ÇÏ¿´´Ù¸é ÆÄÀÏÀ» ¿¡µðÆ®ÇÏ´Â ¼ö°í¸¦ ´ú¾îÁÙ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

ÀϹÝÀûÀ¸·Î, ·ÎÄà ÆÄÀÏÀ» »ç¿ëÇÏ´Â ÇÔ¼ö¸¦ ã¾Æ³¾ ¶§, ±×¸®°í ±×°ÍÀÌ NIS ¼­¹ö¿¡ queryÇÒ ¶§, ´ç½ÅÀº ¾î¶² ¼±ÅÃÀÇ ÀÚÀ¯°¡ ÀÖ¾úÀ¸¸é ÇÒ °ÍÀÌ´Ù. NYS´Â ÀÌ ¼­ºñ½º¿¡ ¾ï¼¼½ºÇÏ´Â ÇÔ¼öÀÇ ¼ø¼­¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ÀÌ°ÍÀº /etc/nsswitch.conf(Name Service SwitchÀÇ ¾à¾îÀ̳ª ±×·¸´Ù°í ³×ÀÓ ¼­ºñ½º¿¡¸¸ ±¹ÇѵÇÁø ¾Ê´Â´Ù)¿¡ ÀÇÇØ Á¶Á¤µÈ´Ù. ¾î¶² µ¥ÀÌÅÍ °Ë»ö ÇÔ¼öµµ NYS¿¡ÀÇÇØ Áö¿øµÇ¸ç ±×°ÍÀº »ç¿ëÇÒ ¼­ºñ½º¸¦ ¸í½ÃÇÏ´Â ¶óÀÎÀ» Æ÷ÇÔÇÑ´Ù.

¿Ã¹Ù¸¥ ¼­ºñ½ºÀÇ ¼ø¼­´Â µ¥ÀÌÅÍÀÇ Å¸ÀÔ¿¡ ´Þ·ÁÀÖ´Ù. services.byname mapÀÌ ·ÎÄà services ÆÄÀÏ°ú ´Ù¸¥ ¿£Æ®¸®¸¦ Áö´Ò °ÍÀ̶ó´Â »ý°¢Àº À߸øµÈ °ÍÀ̸ç, ±×°ÍÀº ´ÜÁö ¾à°£ ´õ Æ÷°ýÀûÀÏ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î ·ÎÄà ÆÄÀÏ ¸ÕÀú queryÇÏ°í ¼­ºñ½º³×ÀÓÀÌ ¹ß°ßµÇÁö ¾ÊÀ» °æ¿ì¿¡¸¸ NIS¸¦ üũÇÏ´Â °ÍÀÌ ÁÁÀº ¼±ÅÃÀÌ´Ù. ¹Ý¸é¿¡ È£½ºÆ®³×ÀÓ Á¤º¸´Â ÀÚÁÖ ¹Ù²ð ¼ö ÀÖ´Â °ÍÀ̹ǷΠDNS ¶Ç´Â NIS ¼­¹ö¿¡ °¡Àå Á¤È®ÇÑ ³»¿ëÀÌ ÀÖ°í, ·ÎÄà hosts ÆÄÀÏÀº ´ÜÁö DNS¿Í NIS°¡ ½ÇÆÐÇÒ °æ¿ì¿¡´ëÇÑ ¹é¾÷À¸·Î º¸Á¸µÇ´Â °ÍÀÌ´Ù. ÀÌ °æ¿ì ·ÎÄà ÆÄÀÏÀ» ¸¶Áö¸·À¸·Î üũÇÏ´Â ÆíÀÌ ÁÁ´Ù.

¾Æ·¡ÀÇ ¿¹Á¦´Â gethostbyname(2)°ú gethostbyaddr(2), ±×¸®°í getservbyname(2) ÇÔ¼ö¸¦ ¾î¶»°Ô À§¿¡ ÀûÀº °Í°°ÀÌ ¼³Á¤ÇÏ´ÂÁö¸¦ º¸¿©ÁØ´Ù. ±×°ÍµéÀº ³ª¿­µÈ ¼­ºñ½º¸¦ Â÷·Ê·Î ½ÃµµÇÏ°í °Ë»ö¿¡ ¼º°øÇÏ¸é °á°ú°¡ ¸®Åϵǰí, ±×·¸Áö ¾ÊÀ» °æ¿ì ´ÙÀ½ ¼ø¼­ÀÇ ¼­ºñ½º¸¦ ½ÃµµÇÑ´Ù.

     # small sample /etc/nsswitch.conf
     #
     hosts:      nis dns files
     services:   files nis

´ÙÀ½Àº nsswitch.conf ³»ÀÇ ¿£Æ®¸®¿¡ »ç¿ëµÉ ¼ö ÀÖ´Â ¸ðµç ¼­ºñ½ºÀÇ ¸ñ·ÏÀÌ´Ù. actual map°ú ÆÄÀÏ, ¼­¹ö, ±×¸®°í ¿£Æ®¸®³×ÀÓ¿¡µû¶ó queryµÇ´Â objectÀÌ´Ù.

nisplus ¶Ç´Â nis+
ÀÌ µµ¸ÞÀο¡ NIS+ ¼­¹ö¸¦ »ç¿ëÇÑ´Ù. ¼­¹öÀÇ À§Ä¡´Â /etc/nis.conf ÆÄÀÏ¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù.
nis ÀÌ µµ¸ÞÀο¡ ÇöÀçÀÇ NIS ¼­¹ö¸¦ »ç¿ëÇÑ´Ù. queryÇÒ ¼­¹öÀÇ À§Ä¡´Â ÀÌÀü ¼½¼Ç¿¡¼­ º¸¾ÒµíÀÌ yp.conf¿¡¼­ ¼³Á¤µÈ´Ù. hosts¿£Æ®¸®¿¡´ëÇؼ­´Â hosts.byname°ú hosts.byaddrÀÌ queryµÈ´Ù.
dns DNS ³×ÀÓ¼­¹ö¸¦ »ç¿ëÇÑ´Ù. ¼­ºñ½ºÅ¸ÀÔÀº hosts ¿£Æ®¸®¿¡¸¸ À¯¿ëÇÏ´Ù. queryÇÒ ³×ÀÓ ¼­¹ö´Â ¿©ÀüÈ÷ Ç¥ÁØ resolve.conf¿¡¼­ °áÁ¤µÈ´Ù.
files ·ÎÄà ÆÄÀÏÀ» »ç¿ëÇÑ´Ù. °¡·É hosts ¿£Æ®¸®¿¡´ëÇØ /etc/hosts ÆÄÀÏÀÌ »ç¿ëµÈ´Ù.
dbm /var/adm¿¡ ÀÖ´Â DBM ÆÄÀÏ¿¡¼­ Á¤º¸¸¦ ã´Â´Ù. ÆÄÀÏ¿¡ »ç¿ëµÇ´Â À̸§Àº NIS map¿¡ ´ëÀÀµÇ´Â °ÍÀÌ´Ù.

ÇöÀç NYS´Â ´ÙÀ½ÀÇ nsswitch.conf ¿£Æ®¸®¸¦ Áö¿øÇÑ´Ù: hosts, networks, passwd, group, shadow, gshadow, services, protocols, rpc, ethersÀÌ´Ù. ´õ ¸¹Àº ¿£Æ®¸®°¡ Ãß°¡µÉ Ãß¼¼ÀÌ´Ù.

±×¸² 10.1Àº nsswitch.confÀÇ ¶Ç´Ù¸¥ ±â´ÉÀ» ¼Ò°³ÇÏ´Â, Á» ´õ ¿ÏÀüÇÑ ÇüÅÂÀÇ ¿¹Á¦ÀÌ´Ù. hosts ¿£Æ®¸® ³»ÀÇ [NOTFOUND=return] Å°¿öµå´Â NIS³ª DNS µ¥ÀÌÅͺ£À̼­¿¡¼­ ¿øÇÏ´Â ¾ÆÀÌÅÛÀ» ãÀ» ¼ö ÀÖ´ÂÁö ¾ø´ÂÁö¸¦ ¸®ÅÏÇ϶ó°í NYS¿¡°Ô ¸»ÇÏ´Â °ÍÀÌ´Ù. Áï, NYS´Â NIS¿Í DNS ¼­¹ö¸¦ ¾î¶² ÀÌÀ¯·Î È£ÃâÇÒ ¼ö ¾øÀ» °æ¿ì¿¡ ÇÑÇؼ­¸¸ °è¼Ó ÁøÇàÇÏ¿© ·ÎÄà ÆÄÀÏÀ» °Ë»öÇÒ °ÍÀÌ´Ù. ±×¸®ÇÏ¿© ·ÎÄÃÆÄÀÏÀº ºÎÆýÿ¡, ȤÀº NIS ¼­¹ö°¡ ´Ù¿îµÇ¾úÀ» ¶§ÀÇ ¹é¾÷À¸·Î½á¸¸ »ç¿ëµÉ °ÍÀÌ´Ù.

     # /etc/nsswitch.conf
     #
     hosts:      nis dns [NOTFOUND=return] files
     networks:   nis [NOTFOUND=return] files

     services:   files nis
     protocols:  files nis
     rpc:        files nis


10.7 Using the passwd and group Maps

NISÀÇ ÁÖ¿ä ÀÀ¿ëºÐ¾ß´Â NIS µµ¸ÞÀÎ ³»ÀÇ ¸ðµç È£½ºÆ®¿¡ À¯Àú¿Í °èÁ¤Á¤º¸¸¦ µ¿±âÈ­ ½ÃÅ°´Â °ÍÀÌ´Ù. À̸¦ À§ÇØ º¸Åë ÀÛÀº ·ÎÄà /etc/passwd ÆÄÀϸ¸À» º¸Á¸ÇÏ°í, NIS map¿¡¼­ Ãß°¡ÀÇ site-wide Á¤º¸¸¦ ¾ò´Â´Ù. ±×·¯³ª ´Ü¼øÈ÷ nsswitch.conf¿¡ ÀÌµé ¼­ºñ½º¿¡´ëÇÑ °Ë»öÀ» °¡´ÉÄÉÇÏ´Â °Í¸¸À¸·Î´Â ÃæºÐÇÏÁö ¾Ê´Ù.

NIS¿¡ ÀÇÇØ ¹èºÐµÇ´Â Æнº¿öµå¿¡ ÀÇÁ¸ÇÒ ¶§¿£, ¸ÕÀú ´ç½ÅÀÇ ·ÎÄà passwd ÆÄÀÏ¿¡ ÀÖ´Â À¯ÀúÀÇ uid°¡ NISÀÇ uid¿Í ÀÏÄ¡ÇÏ´ÂÁö¸¦ È®ÀÎÇؾßÇÑ´Ù. ÀÌ°ÍÀº °¡·É ³×Æ®¿÷»óÀÇ È£½ºÆ®¿¡¼­ NFS º¼·ýÀ» ¸¶¿îÆ®ÇÒ ¶§¿Í °°Àº ¶Ç ´Ù¸¥ ¸ñÀû¿¡¼­ À¯¿ëÇÏ´Ù.

¸¸¾à /etc/passwd³ª /etc/groupÀÇ ¾î¶² id ¹øÈ£°¡ mapÀÇ ±×°Í°ú ´Ù¸£´Ù¸é, ±× À¯Àú ¼ÒÀ¯ÀÇ ¸ðµç ÆÄÀÏ¿¡´ëÇÑ ¼ÒÀ¯±ÇÀ» Á¶ÀýÇØ ÁÖ¾î¾ß¸¸ ÇÑ´Ù. ¸ÕÀú passwd¿Í groupÀÇ ¸ðµç uid¿Í gid¸¦ »õ·Î¿î °ªÀ¸·Î º¯°æÇÏ°í, Áö±Ý º¯°æµÈ À¯ÀúÀÇ ¸ðµç ÆÄÀÏÀ» ã¾Æ ±×°ÍÀÇ ¼ÒÀ¯±ÇÀ» ¹Ù²ãÁØ´Ù. °¡·É news°¡ 9ÀÇ À¯Àú id¸¦, ±×¸®°í okir´Â 103ÀÇ À¯Àú id¸¦ °¡Áö°í ÀÖ¾ú´Ù°¡ ´Ù¸¥ ¾î¶² °ªÀ¸·Î º¯°æµÇ¾ú´Ù°í °¡Á¤Çغ¸ÀÚ. ±×¸®°í ´ÙÀ½ÀÇ Ä¿¸Çµå¸¦ »ç¿ëÇÑ´Ù.

     # find / -uid   9 -print >/tmp/uid.9
     # find / -uid 103 -print >/tmp/uid.103
     # cat /tmp/uid.9   | xargs chown news
     # cat /tmp/uid.103 | xargs chown okir
»õ passwd ÆÄÀÏÀ» ¼³Ä¡ÇÒ ¶§ ÀÌ Ä¿¸Çµå¸¦ ½ÇÇàÇÏ¿©, ±×°ÍµéÀÇ ¼ÒÀ¯±ÇÀ» º¯°æÇϱâÀü¿¡ ¸ðµç ÆÄÀÏÀ» ¼öÁýÇÏ´Â °ÍÀº Áß¿äÇÑ °ÍÀÌ´Ù. ÆÄÀÏÀÇ group ¼ÒÀ¯±ÇÀ» º¯°æÇÒ ¶§µµ ÀÌ¿Í ºñ½ÁÇÑ Ä¿¸Çµå¸¦ »ç¿ëÇÏ¸é µÈ´Ù.

ÀÌ ÀÛ¾÷À» ³¡³½ ÈÄ¿¡´Â ´ç½Å ½Ã½ºÅÛÀÇ uid¿Í gid°¡ NIS µµ¸ÞÀÎ ³»ÀÇ ´Ù¸¥ È£½ºÆ®ÀÇ ±×°Í¿¡ È£ÀÀÇÒ °ÍÀÌ´Ù. ´ÙÀ½ ´Ü°è´Â nsswitch.conf¿¡ À¯Àú¿Í ±×·ìÁ¤º¸¿¡ ´ëÇÑ NIS °Ë»öÀ» ¼öÇàÇϵµ·Ï ¼³Á¤ÇÏ´Â ¶óÀÎÀ» Ãß°¡ÇÏ´Â °ÍÀÌ´Ù.

     # /etc/nsswitch.conf - passwd and group treatment
     passwd:  nis files
     group:   nis files

ÀÌ´Â login Ä¿¸Çµå µîÀÌ, À¯Àú°¡ ·Î±×ÀÎÇÏ·ÁÇÒ ¶§ ¸ÕÀú NIS map¿¡ queryÇÏ°í ±×°ÍÀÌ ½ÇÆÐÇßÀ» °æ¿ì¿¡ ·ÎÄÃÆÄÀÏÀ» ãµµ·Ï ÇÑ´Ù. º¸Åë, ·ÎÄà ÆÄÀÏ¿¡¼­ ´ëºÎºÐÀÇ À¯Àú´Â Áö¿ìµÇ, root¿Í, mail °°Àº ÀϹÝÀûÀÎ °èÁ¤Àº ³²°ÜµÎ´Â °ÍÀÌ ÁÁ´Ù. ÀÌ´Â ¾î¶² ÁßÃßÀûÀÎ ½Ã½ºÅÛ ÀÛ¾÷ÀÌ uid¸¦ À¯Àú³×ÀÓÀ¸·Î, ¶Ç´Â ±× ¹Ý´ë·ÎÀÇ mapÀ» ¿äÇϱ⠶§¹®ÀÌ´Ù. ¿¹¸¦ µé¾î, °ü¸®¿ªÇÒÀ»ÇÏ´Â cron jobÀº Àá½Ãµ¿¾È news°¡ µÇ±âÀ§ÇØ, ȤÀº UUCP ¼­ºê½Ã½ºÅÛÀÌ »óź¸°í¸¦ mail·Î º¸³¾¼ö ÀÖµµ·ÏÇϱâÀ§ÇØ su Ä¿¸Çµå¸¦ »ç¿ëÇÑ´Ù. ¸¸¾à news³ª uucp¿¡´ëÇÑ ¿£Æ®¸®°¡ passwd ÆÄÀÏ¿¡ ¾ø´Ù¸é, ÀÌ·¯ÇÑ jobÀº NIS°¡ Á×¾îÀִµ¿¾È¿¡´Â ºñÂüÇÏ°Ô ½ÇÆÐÇÒ °ÍÀÌ´Ù.

¿©±â¿£ µÎ°¡Áö Å« Á¦¾àÀÌ Àִµ¥, Çϳª´Â À§¿¡ ÀûÈù °Íó·³ ¼Â¾÷ÇßÀ» °æ¿ì¿£ util-linuxÆÐÅ°Áö¿¡ Æ÷ÇԵǾî ÀÖ´Â °Íó·³, shadow Æнº¿öµå¸¦ »ç¿ëÇÏÁö ¾Ê´Â login suite¿¡¼­³ª µ¿ÀÛÇÑ´Ù´Â °ÍÀÌ´Ù. NIS¿Í shadow Æнº¿öµå¸¦ ÇÔ²² »ç¿ëÇÏ´Â °ñÄ¡¾ÆÇ ÀÏ¿¡´ëÇؼ± ¾Æ·¡¿¡¼­ ´Ù·ê °ÍÀÌ´Ù. ¶Ç ´Ù¸¥ Çϳª´Â, login Ä¿¸Çµå°¡ passwdÆÄÀÏ¿¡ ¾ï¼¼½ºÇϱ⸸ ÇÏ´Â°Ô ¾Æ´Ï¶ó´Â Á¡ÀÌ´Ù - »ç¶÷µé ´ëºÎºÐÀÌ Ç×»ó »ç¿ëÇÏ´Â ls Ä¿¸Çµå¸¦ º¸ÀÚ. long listingÀ» ÇÒ ¶§¸¶´Ù ls´Â ÆÄÀÏÀÇ ¼ÒÀ¯ÀÚÀÎ À¯Àú¿Í ±×·ì¿¡´ëÇÑ ½Éº¼¸¯ ³×ÀÓÀ» Ç¥½ÃÇÒ °ÍÀÌ´Ù. Áï, ±×°ÍÀÌ ³ª¿­ÇÏ´Â uid¿Í gid¸¶´Ù ÇѹøÀÇ NIS query¸¦ ÇؾßÇÑ´Ù. ´ç½ÅÀÇ ³×Æ®¿÷»çÁ¤ÀÌ ÁÁÁö ¸øÇϰųª, ½ÉÇÒ °æ¿ì NIS ¼­¹ö°¡ µ¿ÀÏÇÑ ¹°¸®Àû ³×Æ®¿÷ ³»¿¡ ÀÖÁö ¾Ê¾Æ µ¥ÀÌÅͱ׷¥ÀÌ ¶ó¿ìÅ͸¦ ÅëÇØ ÀüÇØÁú °æ¿ì, ÀÌ´Â ¸ðµç °ÍÀ» ´À¸®°Ô ¸¸µé¾î¹ö¸°´Ù.

ÀÌ°ÍÀÌ ÀüºÎ´Â ¾Æ´Ï´Ù. À¯Àú°¡ ÀÚ½ÅÀÇ Æнº¿öµå¸¦ º¯°æÇÏ±æ ¿øÇÑ´Ù°í »ó»óÇÏÀÚ. º¸Åë ±×´Â passwd¸¦ ½ÇÇà½ÃÅ°´Âµ¥, ÀÌ´Â »õ Æнº¿öµå¸¦ ÀÐ¾î ·ÎÄà passwdÆÄÀÏÀ» ¾÷µ¥ÀÌÆ® ½ÃÅ°Áö¸¸, ±× ÆÄÀÏÀÌ ´õ ÀÌ»ó ·ÎÄà »ó¿¡¼­ »ç¿ëÇÒ ¼ö ¾øÀº °ÍÀ¸¹Ç·Î NIS¿¡¼± ÀÌ°ÍÀÌ ºÒ°¡´ÉÇÏ´Ù. ±×µéÀÌ Æнº¿öµå¸¦ º¯°æÇÏ°íÀÚ ÇÒ ¶§¸¶´Ù NIS ¼­¹ö¿¡ ·Î±×ÀÎ ÇÑ´Ù´Â °Í ¿ª½Ã ÁÁÀº ¹æ¹ýÀÌ ¾Æ´Ï´Ù. ±×¸®ÇÏ¿© NIS´Â passwdÀÇ ´ëü¹°ÀÎ yppasswd¶ó´Â °ÍÀ» Á¦°øÇϸç, ÀÌ°ÍÀº NISÀÇ Á¸ÀçÇÏ¿¡¼­ À¯»çÇÑ ÀÏÀ» ¼öÇàÇÑ´Ù. ¼­¹ö È£½ºÆ®ÀÇ Æнº¿öµå¸¦ º¯°æÇϱâÀ§Çؼ­ ±×°ÍÀº RPC¸¦ ÅëÇØ È£½ºÆ®ÀÇ yppasswdd µ¥¸ó¿¡ Á¢ÃËÇÏ¿© ¾÷µ¥ÀÌÆ®µÈ Æнº¿öµå Á¤º¸¸¦ ÀüÇØÁØ´Ù. º¸Åë, ´ÙÀ½°ú °°ÀÌ ÇÁ·Î±×·¥À» ±³Ã¼ÇÑ´Ù.

     # cd /bin
     # mv passwd passwd.old
     # ln yppasswd passwd

ÀÌ¿Í µ¿½Ã¿¡ ¼­¹ö¿¡ rpc.yppasswd¸¦ ¼³Ä¡ÇÏ°í, rc.inet2¿¡¼­ ±×°ÍÀ» ±¸µ¿½ÃÄѾßÇÑ´Ù. ÀÌ´Â NIS¿¡ÀÇÇØ º¯°æµÈ »ç½ÇÀ» »ç¿ëÀÚ°¡ ÀüÇô ´«Ä¡Ã§ ¼ö ¾øµµ·Ï ¸¸µç´Ù.


10.8 Using NIS with Shadow Support

¾ÆÁ÷ shadow login suite¸¦ »ç¿ëÇÏ´Â »çÀÌÆ®¸¦ Áö¿øÇÏ´Â NIS´Â ¾ø´Ù. shadow suiteÀÇ ÀúÀÚÀÎ John F. Haugh´Â ÃÖ±Ù¿¡ GNU ¶óÀ̺귯¸® GPLÀÇ º¸È£¸¦ ¹Þ´Â shadow ¶óÀ̺귯¸® ÇÔ¼ö¸¦ comp.sources.misc¿¡ ¸±¸®ÁîÇÏ¿´´Ù. ±×°ÍÀº ÀÌ¹Ì NIS¿¡ ¸î°¡Áö Áö¿øÀ» ÇÏ°í ÀÖÀ¸³ª ¿ÏÀüÇÏÁö´Â ¾ÊÀ¸¸ç, ±× ÆÄÀÏÀº Ç¥ÁØ C ¶óÀ̺귯¸®¿¡ ¾ÆÁ÷ Ãß°¡µÇÁö ¾Ê¾Ò´Ù. ¹Ý¸é, NIS¸¦ ÅëÇØ /etc/shadow ÆÄÀÏ¿¡¼­ Á¤º¸¸¦ ¾ò´Â´Ù´Â ÀÏÀº, shadow suiteÀÇ ¿ø·¡ ¸ñÀû°ú´Â Èñ¹ÌÇÏ°Ô ¸¸µç´Ù.

NYS Æнº¿öµå °Ë»öÇÔ¼ö°¡ shadow.byname mapÀ̳ª ±× ºñ½ÁÇÑ °ÍÀ» »ç¿ëÇÏÁö ¾ÊÀ½¿¡µµ, NYS´Â ·ÎÄà /etc/shadow ÆÄÀÏÀ» Åõ¸í¼ºÀÖ°Ô »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Áö¿øÇØÁØ´Ù. getpwnamÀÇ NYS implementationÀÌ ÁÖ¾îÁø ·Î±×ÀÎ ³×ÀÓ¿¡ °ü·ÃµÈ Á¤º¸¸¦ °Ë»öÇ϶ó°í È£ÃâµÉ ¶§, nsswitch.conf ³»ÀÇ passwd ¿£Æ®¸®·Î ÁöÁ¤µÈ °ÍÀÌ queryµÈ´Ù. nis ¼­ºñ½º´Â ´Ü¼øÈ÷ NIS ¼­¹öÀÇ passwd.byname map ³»ÀÇ ³×ÀÓÀ» °Ë»öÇÒ °ÍÀÌ´Ù. ±×·¯³ª files ¼­ºñ½º´Â /etc/shadow°¡ Á¸ÀçÇÏ´ÂÁö üũÇÏ°í, ¸¸¾à ±×·¸´Ù¸é ±×°ÍÀ» Çؼ®ÇÏ·Á°í ÇÒ °ÍÀÌ´Ù. ¸¸¾à ¾ø°Å³ª, À¯Àú°¡ root ±ÇÇÑÀ» °®°í ÀÖÁö ¾Ê´Ù¸é, /etc/passwd³»ÀÇ À¯Àú Á¤º¸¸¸À» °Ë»öÇÏ´Â ÀüÅëÀûÀÎ Çൿ¾ç½ÄÀ¸·Î µÇµ¹¾Æ°£´Ù. ±×·¯³ª shadow ÆÄÀÏÀÌ Á¸ÀçÇÏ°í ¿­ ¼ö ÀÖ´Ù¸é, NYS´Â shadow¿¡¼­ À¯Àú Æнº¿öµå¸¦ °ñ¶ó³½´Ù. getpwuid ÇÔ¼öµµ ±×¿Í°°ÀÌ ½ÇÇàµÈ´Ù. ÀÌ¿Í ºñ½ÁÇÏ°Ô, NYS¿¡ ¸Â°Ô ÄÄÆÄÀÏµÈ ¹ÙÀ̳ʸ®´Â ·ÎÄÿ¡ ¼³Ä¡µÈ shadow suiteµµ Åõ¸í¼ºÀÖ°Ô ´Ù·ê °ÍÀÌ´Ù.


10.9 Using the Traditional NIS Code

¸¸¾à ÇöÀçÀÇ Ç¥ÁØ libc¿¡ Àִ Ŭ¶óÀ̾ðÆ® Äڵ带 »ç¿ëÇÏ°í ÀÖ´Ù¸é, NIS¸¦ ¼³Á¤ÇÏ´Â°Ô ¾à°£ ´Ù¸£´Ù. ÇÑÆíÀ¸·Î, ±×°ÍÀº ypbind µ¥¸óÀ» »ç¿ëÇÏ¿© ¼³Á¤ÆÄÀÏ¿¡¼­ ÀÌ Á¤º¸¸¦ °È¾îµéÀÌ´Â ´ë½Å, µ¿ÀÛÁßÀÎ ¼­¹ö¿¡´ëÇØ broadcastÇÑ´Ù. ±×·¯¹Ç·Î ºÎÆýÿ¡ ypbind¸¦ ±¸µ¿½ÃÅ°´ÂÁö¸¦ È®ÀÎÇؾ߸¸ ÇÑ´Ù. ±×°ÍÀº ¹Ýµå½Ã NIS µµ¸ÞÀÎÀÌ ÁöÁ£µÇ°í RPC portmapper°¡ ±¸µ¿µÈ ÈÄ¿¡ ½ÇÇà µÇ¾î¾ßÇÑ´Ù. ¼­¹ö°¡ Á¦´ë·Î µ¹¾Æ°¡´ÂÁö °Ë»çÇÏ´Â ypcatÀÇ Ãâ·ÂÀº À§¿¡¼­ º» ÀûÀÌ ÀÖ´Ù.

ÃÖ±Ù¿¡, "clntudp_create: RPC:portmapper failure - RPC: unable to receive"¶ó´Â ¿¡·¯¸¦ ³»°í NIS°¡ ½ÇÆÐÇϴµ¥ ´ëÇÑ ¼ö¸¹Àº ¹ö±×¸®Æ÷Æ®°¡ ÀÖ¾ú´Ù. ÀÌ´Â ¶óÀ̺귯¸® ÇÔ¼ö¿¡ ¹ÙÀεùÇÏ´Â ypbind Åë½Å¹æ¹ýÀÇ ºñ ȣȯ¼º¿¡¼­ ºñ·ÔµÈ °ÍÀ¸·Î, NISÀÇ ÃÖ±Ù ¼Ò½º¸¦ ¾ò¾î ±×°ÍÀ» ÀçÄÄÆÄÀÏÇϸé ÀÌ ¹®Á¦°¡ ÇØ°áµÉ °ÍÀÌ´Ù.

ÀüÅëÀûÀÎ NIS°¡ ·ÎÄà ÆÄÀÏ¿¡¼­ÀÇ Á¤º¸¿Í NIS Á¤º¸¸¦ ¾î¶»°Ô Á¶ÇÕÇÏ´ÂÁö¸¦ °áÁ¤ÇÏ´Â ¹æ¹ýÀº, NYSÀÇ ±×°Í°ú´Â Â÷ÀÌ°¡ ÀÖ´Ù. ¿¹¸¦ µé¾î, NIS Æнº¿öµå map¸¦ »ç¿ëÇÏ·Á¸é /etc/passwd map ¾îµò°¡¿¡ ´ÙÀ½ÀÇ ¶óÀÎÀ» ³Ö¾îÁÖ¾î¾ßÇÑ´Ù.

     +:*:-:0:::

ÀÌ°ÍÀº Æнº¿öµå °Ë»ö ÇÔ¼ö°¡ NIS mapÀ» ³ÖÀ» À§Ä¡¸¦ Ç¥½ÃÇÏ´Â °ÍÀ¸·Î, ºñ½ÁÇÑ ¶óÀÎ(¸¶Áö¸· µÎ ÄÝ·ÐÀº Á¦¿ÜÇÑ)À» /etc/group ÆÄÀÏ¿¡ ³Ö´Â °ÍÀº group.* map¿¡´ëÇØ °°Àº ÀÏÀ» ÇÑ´Ù. NIS¸¦ »ç¿ëÇÏ¿© ¹èºÐµÇ´Â hosts.*À» »ç¿ëÇÏ·Á¸é, hosts.confÆÄÀÏÀÇ order ¶óÀÎÀ» º¯°æÇؾßÇÑ´Ù. ¿¹¸¦ µé¾î, NIS, DNS, /etc/hosts ÆÄÀÏÀÇ ¼ø¼­·Î »ç¿ëÇÏ±æ ¹Ù¶õ´Ù¸é, ´ÙÀ½°ú °°ÀÌ º¯°æÇØÁà¾ß ÇÑ´Ù.

     order yp bind hosts

ÀüÅëÀûÀÎ NIS implementationÀº ÇöÀç ´Ù¸¥ mapÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù.

Other Chapters

1. Introduction to Networking
2. Issues of TCP/IP Networking
3. Configuring the Networking Hardware
4. Setting up the Serial Hardware
5. Configuring TCP/IP Networking
6. Name Service and Resolver Configuration
7. Serial Line IP
8. The Point-to-Point Protocol
9. Various Network Applications
10. The Network Information System
11. The Network File System
12. Managing Taylor UUCP
13. Electronic Mail
14. Getting smail Up and Running
15. Sendmail+IDA
16. Netnews
17. C News
18. A Description of NNTP
19. Newsreader Configuration

Appendix

A. A Null Printer Cable for PLIP
B. Sample smail Configuration Files
C. The GNU General Public License