1. ¼Ò°³(Introduction)

Linux-PAM(Linux¿ë ÂøÅ»Çü ÀÎÁõ ¸ðµâ)Àº ½Ã½ºÅÛ °ü¸®ÀÚ°¡ ÀÀ¿ëÇÁ·Î±×·¥µéÀÌ »ç¿ëÀÚ¸¦ ÀÎÁõÇÏ´Â ¹æ¹ýÀ» ¼±ÅÃÇÒ¼ö ÀÖµµ·Ï ÇØÁÖ´Â °øÀ¯ ¶óÀ̺귯¸® ¹­À½ÀÌ´Ù.

Áï, PAMÀ» »ç¿ëÇÏ´Â ÀÀ¿ëÇÁ·Î±×·¥À» ÀçÄÄÆÄÀÏ(ÀçÀÛ¼º)ÇÏÁö ¾Ê°í, ÀÎÁõ ¹æ¹ýÀ» º¯°æÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. Á¤¸»·Î, ´©±º°¡ ÀÀ¿ëÇÁ·Î±×·¥ ÀÚü¸¦ ¼Õ´ëÁö ¾Ê°í ÀÎÁõ½Ã½ºÅÛÀ» ¸ù¶¥ ¾÷±×·¹À̵åÇÒ ¼ö ÀÖÀ»Áöµµ ¸ð¸¥´Ù.

ÀüÅëÀûÀ¸·Î »ç¿ëÀÚ ÀÎÁõÀ» ÇÊ¿ä·Î ÇÏ´Â ÀÀ¿ëÇÁ·Î±×·¥Àº ƯÁ¤ ÀÎÁõ ¹æ¹ýÀ» »ç¿ëÇϱâ À§Çؼ­´Â ÄÄÆÄÀÏÀ» ÇØ¾ß¸¸ Çß¾ú´Ù. ¿¹¸¦ µé¾î, ÀüÅëÀûÀÎ UN*X ½Ã½ºÅÛÀÇ °æ¿ì¿¡, »ç¿ëÀÚ¿¡ ´ëÇÑ ½Å¿øÈ®ÀÎÀ» ¿Ã¹Ù¸¥ ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇÏ°Ô ÇÏ¿© È®ÀÎÇÏ¿´´Ù. ÀÌ ÆÐ½º¿öµåÀÇ ¾Õ¿¡ "salt"¶ó´Â µÎ ±ÛÀÚ¸¦ ºÙ¿© ¾Ïȣȭ(crypt(3))µÈ´Ù. »ç¿ëÀÚ´Â ÀÌ ¾ÏȣȭµÈ ÆÐ½º¿öµå°¡ ½Ã½ºÅÛ ÆÐ½º¿öµå µ¥ÀÌÅͺ£À̽º (/etc/passwd)ÀÇ ÇØ´ç »ç¿ëÀÚÀÇ µ¥ÀÌÅÍÀÇ µÎ¹øÂ° Çʵå¿Í ÀÏÄ¡ÇÒ °æ¿ì ÀÎÁõÀ» ¹Þ°Ô µÈ´Ù. ÀÌ·¯ÇÑ ½Ã½ºÅ۵鿡¼­, ¸¸¾à ÀüºÎ°¡ ¾Æ´Ï¶ó¸é ´ëºÎºÐÀÇ ±ÇÇѵéÀº ÀÌ·¯ÇÑ ÇϳªÀÇ ÀÎÁõ ¹æ½Ä¸¸À¸·Î ºÎ¿©¹Þ°Ô µÈ´Ù. ±ÇÇÑÀº »ç¿ëÀÚÀÇ ID(uid)¿Í ¿©·¯ ±×·ìÀÇ ¸â¹ö½±ÀÇ ÇüÅ·Π¹Þ°Ô µÈ´Ù. ¼­ºñ½º¿Í ÀÀ¿ëÇÁ·Î±×·¥µéÀº »ç¿ëÀÚÀÇ UID¿Í ±×·ì ID¿¡ µû¶ó »ç¿ë¿©ºÎ°¡ °áÁ¤µÈ´Ù. ÀüÅëÀûÀ¸·Î ±×·ì ¸â¹ö½±Àº /etc/groupÆÄÀÏÀÇ ³»¿ë¿¡ µû¶ó ºÎ¿©¹Þ´Â´Ù.

¾ÈŸ±õ°Ôµµ ÄÄÇ»ÅÍÀÇ ¼Óµµ°¡ Çâ»óµÇ°í ³×Æ®¿öÅ©¿¡ ºÐ»êÇØ¼­ ¿¬»êÀ» ÇÏ´Â ±â¹ýÀÌ ³Î¸® »ç¿ëµÇ¸é¼­, °ú°Å¿¡ ÇѶ§ ¾ÈÀüÇÏ°Ô ¿©°ÜÁ³´ø ÀÌ¿Í °°Àº ÀÎÁõ ¹æ¹ýÀº ¾àÁ¡ÀÌ ³ëÃâµÇ¾ú´Ù. ÀÌ·¯ÇÑ Çö½Ç¿¡¼­ ÇѰ¡´Ú Èñ¸ÁÀ¸·Î »õ·Î¿î ÀÎÁõ ¹æ¹ýÀÌ ²ÙÁØÈ÷ °è¹ßµÇ°í ÀÖ´Ù.

Linux-PAM ÇÁ·ÎÁ§Æ®ÀÇ ¸ñÀûÀº ±ÇÇÑÀ» ºÎ¿©ÇÏ´Â ¼ÒÇÁÆ®¿þ¾îÀÇ °³¹ß°ú ¾ÈÀüÇϰí ÀûÀýÇÑ ÀÎÁõ¾ÈÀÇ °³¹ßÀ» ºÐ¸®ÇÏ·Á´Âµ¥¿¡ ÀÖ´Ù. ÀÌ´Â ÀÀ¿ëÇÁ·Î±×·¥ÀÌ »ç¿ëÀÚ ÀÎÁõÀ» ó¸®Çϱâ À§ÇØ »ç¿ëµÉ ÇÔ¼öÀÇ ¶óÀ̺귯¸®¸¦ Á¦°øÇÔÀ¸·Î½á °¡´ÉÇÏ´Ù. PAM¶óÀ̺귯¸®´Â /etc/pam.conf(¶Ç´Â /etc/pam.d/¿¡ ÀÖ´Â ¿©·¯ ÆÄÀϵé)¿¡¼­ °¢ ½Ã½ºÅÛ¿¡ ¸Â°Ô ¼³Á¤À» ÇÏ¿©, °¢ ½Ã½ºÅÛ¿¡¼­ »ç¿ë°¡´ÉÇÑ ÀÎÁõ ¸ðµâÀ» ÅëÇØ »ç¿ëÀÚÀÇ ÀÎÁõ ¿ä±¸¸¦ ó¸®ÇÑ´Ù. ¸ðµâ ÀÚü´Â ÀϹÝÀûÀ¸·Î /usr/lib/security¿¡ À§Ä¡ÇØ ÀÖ°í, µ¿ÀûÀ¸·Î ·Îµå°¡´ÉÇÑ ¿ÀºêÁ§Æ® ÆÄÀÏ (see dlopen(3))ÀÇ ÇüŸ¦ °®´Â´Ù.