3. °³¿ä

ÃʽÉÀÚ¸¦ À§ÇØ, ¿¹Á¦¸¦ ¸ÕÀú »ìÆìº¸°Ú´Ù. »ç¿ëÀÚ¿¡°Ô ¾î¶² ¼­ºñ½º¸¦ Á¦°øÇØÁÖ´Â ÀÀ¿ëÇÁ·Î±×·¥À» »ý°¢Çغ¸ÀÚ; loginÀÌ ÀÌ·± ÇÁ·Î±×·¥Áß ÇϳªÀÌ´Ù. loginÀº µÎ°¡Áö ÀÏÀ» ÇÑ´Ù. Çϳª´Â ¿äûÇÑ »ç¿ëÀÚ°¡ ÀÚ½ÅÀÌ ÁÖÀåÇÏ´Â »ç¿ëÀÚ°¡ ¸Â´ÂÁö È®ÀÎÇØ¼­ ¿øÇÏ´Â »ç¿ëÀÚ·Î ¼³Á¤ÇØÁÖ°í µÎ¹øÂ°·Î, ¿ä±¸ÇÑ ¼­ºñ½º¸¦ Á¦°øÇØÁÖ´Â °ÍÀÌ´Ù; loginÀÇ °æ¿ì ¼­ºñ½º´Â ±× »ç¿ëÀÚÀÇ UID·Î ½ÇÇàµÇ´Â ¸í·Éshell(bash, tcsh, zsh, µîµî) ÀÌ´Ù.

ÀüÅëÀûÀ¸·Î, ¾ÕÀÇ ´Ü°è´Â login ÇÁ·Î±×·¥ÀÌ »ç¿ëÀÚ¿¡°Ô ÆÐ½º¿öµå¸¦ ¹°¾î º¸°í, ½Ã½ºÅÛ¿¡ ÀÖ´Â °Í°ú ÀÏÄ¡ÇÏ´ÂÁö È®ÀÎÇÔÀ¸·Î½á ¼öÇàµÈ´Ù. µû¶ó¼­ ½Ã½ºÅÛ¿¡ °ü·ÃµÈ Çѵµ ¾È¿¡¼­ »ç¿ëÀÚ°¡ ±×°¡ ÁÖÀåÇÏ´Â »ç¿ëÀÚ°¡ ¸Â´ÂÁö È®ÀÎÇÑ´Ù. ÀÌ ÀÛ¾÷À» Linux-PAM¿¡°Ô À§ÀÓÇÏ°Ô µÈ´Ù.

ÀÀ¿ëÇÁ·Î±×·¥ °³¹ßÀÚ ÀÔÀå¿¡¼­ º¸¸é(ÀÌ °æ¿ì¿¡´Â loginÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â »ç¶÷), Linux-PAMÀÌ »ç¿ëÀÚÀÇ ½Å¿øÀ» È®ÀÎÇÏ´Â ÀÎÁõ°úÁ¤À» ¸Ã°Ô µÇ´Â °ÍÀÌ´Ù.

Linux-PAMÀÇ À¯¿¬¼ºÀº ½Ã½ºÅÛ °ü¸®ÀÚÀÎ ´ç½ÅÀÌ ¾î´À ÀÎÁõ¾ÈÀ» »ç¿ëÇÒ °ÍÀÎÁö ¸¶À½´ë·Î ¿ä±¸ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ´ç½ÅÀº Linux½Ã½ºÅÛ¿¡¼­ PAMÀ» »ç¿ëÇÏ´Â ¾î¶² ¶Ç´Â ¸ðµç ÀÀ¿ëÇÁ·Î±×·¥¿¡ ´ëÇØ¼­µµ ÀÎÁõ¾ÈÀ» Á¤ÇÒ ÀÚÀ¯¸¦ °®°í ÀÖ´Ù. Áï, ´ç½ÅÀº ´Ü¼ø ½Å·Ú(pam_permit, ¸ðµÎ Çã¿ëÇÏ´Â °Í)°°ÀÌ ¼øÁøÇÑ °ÍºÎÅÍ ¸Á¸·°Ë»ç, À½¼º, ±×¸®°í one-time ÆÐ½º¿öµå¸¦ Á¶ÇÕÇÑ °Íó·³ ´ë´ÜÈ÷ Àǽɸ¹Àº ¼öÁرîÁö »ç¿ëÇØ¼­ ÀÎÁõÇÒ ¼ö ÀÖ´Ù.

´ç½ÅÀÌ Áö±Ý º¸°í ÀÖ´Â Linux-PAMÀÇ À¯¿¬¼ºÀ» º¸¿©ÁÖ±â À§ÇØ ´ÙÀ½ÀÇ »óȲÀ» »ý°¢Çغ¸ÀÚ: ½Ã½ºÅÛ °ü¸®ÀÚ(ºÎ¸ð)´Â ±×(³à)ÀÇ »ç¿ëÀÚµé(¾ÆÀ̵é)ÀÇ ¼öÇÐ ´É·ÂÀ» Çâ»ó½ÃŰ±æ ¿øÇÑ´Ù. ±×³à´Â ¾ÆÀ̵éÀÌ ÁÁ¾ÆÇÏ´Â "Shoot'em up game" (¹°·Ð PAMÀ» »ç¿ëÇÏ´Â ÇÁ·Î±×·¥À̾î¾ß ÇÑ´Ù)À» »ç¿ëÇϵµ·Ï ÀÎÁõÇϴµ¥ 12º¸´Ù ÀÛÀº ÀÓÀÇÀÇ ¸î¸î ¼ýÀÚµéÀÇ °öÀ» ¸ÂÃßµµ·Ï ¿ä±¸Çϵµ·Ï ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ±× °ÔÀÓÀÌ ÁÁÀº Á¡ÀÌ ÀÖ´Ù¸é ¾ÆÀ̵éÀÌ °ð ±¸±¸´ÜÀ» ¹è¿ï °ÍÀ̶ó´Â »ç½ÇÀº È®½ÇÇÏ´Ù. ¾ÆÀ̵éÀÌ ÀÚ¶÷¿¡ µû¶ó ÀÎÁõ¹æ¹ýµµ (±ä ¼ýÀÚÀÇ)³ª´°¼ÀÀ» Æ÷ÇÔÇϵµ·Ï ¾÷±×·¹À̵å ÇÒ ¼ö ÀÖ´Ù.

Linux-PAMÀº ³×°¡Áö Á¾·ùÀÇ ÀÛ¾÷À» ÇÑ´Ù. À̰͵éÀº ÀÎÁõ(authentication); °èÁ¤(account); ¼¼¼Ç(session); ÆÐ½º¿öµå(password)°ü¸®ÀÛ¾÷ÀÌ´Ù. ¼±È£ÇÏ´Â °ü¸®¹æ¾È°ú ÀÀ¿ëÇÁ·Î±×·¥ÀÇ µ¿ÀÛÀÇ °ü·Ã¼ºÀº ÇØ´çÇÏ´Â Linux-PAM¼³Á¤ ÆÄÀÏÀÇ ³»¿ëÀ¸·Î Á¤ÇØÁø´Ù. °ü¸®ÀÛ¾÷Àº ¼³Á¤ ÆÄÀÏ ³»¿¡ ÁöÁ¤µÈ ¸ðµâ¿¡ ÀÇÇØ ¼öÇàµÈ´Ù. ÀÌ ÆÄÀÏÀÇ ¹®¹ýÀº ¾Æ·¡¿¡¼­ ´Ù·é´Ù.

´ÙÀ½ ±×¸²Àº Linux-PAMÀÇ Àüü ±¸¼ºÀ» º¸¿©ÁØ´Ù.

+----------------+
| application: X |
+----------------+       /  +----------+     +================+
| authentication-[---->--\--] Linux-   |--<--| PAM config file|
|       +        [----<--/--]   PAM    |     |================|
|[conversation()][--+    \  |          |     | X auth .. a.so |
+----------------+  |    /  +-n--n-----+     | X auth .. b.so |
|                |  |       __|  |           |           _____/
|  service user  |  A      |     |           |____,-----' 
|                |  |      V     A
+----------------+  +------|-----|---------+------+------+
                       +---u-----u----+    |      |      |
                       |   auth....   |--[ a ]--[ b ]--[ c ]
                       +--------------+
                       |   acct....   |--[ b ]--[ d ]
                       +--------------+
                       |   password   |--[ b ]--[ c ]
                       +--------------+
                       |   session    |--[ e ]--[ c ]
                       +--------------+

±×¸²ÀÇ ¿ÞÂÊÀº X¶ó´Â ÀÀ¿ëÇÁ·Î±×·¥À» ³ªÅ¸³½´Ù. Linux-PAM ¶óÀ̺귯¸®¿Í ¿¬°áµÈ ÀÌ·± ÀÀ¿ëÇÁ·Î±×·¥Àº ¼³Á¤µÈ ÀÎÁõ ¹æ¹ý¿¡ ´ëÇØ ÀüÇô ¸ð¸£´Â »óÅÂÀÌ´Ù. Linux-PAM ¶óÀ̺귯¸®(±×¸² °¡¿îµ¥)´Â PAM¼³Á¤ ÆÄÀÏÀÇ ³»¿ëÀ» º¸°í X¶ó´Â ÀÀ¿ëÇÁ·Î±×·¥¿¡¿¡ ¸Â´Â ¸ðµâµéÀ» ·ÎµåÇÑ´Ù. ÀÌ ¸ðµâµéÀº ³×°³ÀÇ °ü¸® ±×·ì(±×¸² ¾Æ·¡ÀÇ °¡¿îµ¥)À¸·Î ºÐ·ùµÇ°í, ¼³Á¤ÆÄÀÏ¿¡ ÀûÇôÀÖ´Â ¼ø¼­´ë·Î 󸮵ȴÙ. Linux-PAM¿¡ ÀÇÇØ ÀÌ ¸ðµâµéÀÌ È£ÃâµÇ¸é ÀÀ¿ëÇÁ·Î±×·¥À» À§ÇØ ´Ù¾çÇÑ ÀÎÁõÀ» ¼öÇàÇÑ´Ù. »ç¿ëÀÚ¿¡°Ô Á¦°øµÇ°Å³ª »ç¿ëÀڷκÎÅÍ ¹Þ¾Æ¾ßÇÒ ÅØ½ºÆ® Á¤º¸µéÀº ÀÀ¿ëÇÁ·Î±×·¥ÀÌ Á¦°øÇÏ´Â conversation ÇÔ¼ö¸¦ ÅëÇØ ±³È¯µÈ´Ù.

3.1. ½ÃÀÛÇϱâ

[¾Æ·¡ ±ÛÀº Seth ChaiklinÀÌ Á¦°øÇÑ °ÍÀÌ´Ù.]

¿©Å±îÁö ¿ì¸®´Â ¸ðµç ÀÀ¿ëÇÁ·Î±×·¥µéÀÌ ÀûÀýÈ÷ ÄÚµùµÈ ÀÌ»óÀûÀÎ »óȲ¿¡¼­ 
PAMÀÌ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö ¼³¸íÇß´Ù. ÇÏÁö¸¸, ÇöÀç(1998³â 10¿ù)ÀÇ ½ÃÁ¡¿¡¼­ À̰ÍÀº
½ÇÁ¦ »óȲ°ú ¸¹ÀÌ ´Ù¸£´Ù.
±×·¡¼­, ¿©±â¿¡¼­´Â ½Ã½ºÅÛ¿¡ PAMÀ» »ç¿ëÇÏ·Á°í ½ÃµµÇÒ ¶§¿¡ °í·ÁÇØ¾ßÇÒ ¸î°¡Áö »çÇ×À» Àû´Â´Ù.
¸ðµç ¹®Á¦¿¡ PAMÀº À¯¿ëÇÑ °ÍÀΰ¡? ¸¸ÀÏ Linux¸¦ 1ÀÎ »ç¿ëÀÚ ½Ã½ºÅÛÀ¸·Î »ç¿ëÇϰųª
¸ðµç »ç¿ëÀÚµéÀ» ½Å·ÚÇÒ ¼ö Àִ ȯ°æÀ̶ó¸é, PAMÀ» »ç¿ëÇÏ´Â °ÍÀº ½ÇÁúÀûÀ¸·Î
ÀÌÀÍÀÌ ¾ø´Ù.

Ed: ½ÇÁ¦·Î ÀåÁ¡ÀÌ ÀÖ±â´Â ÇÏ´Ù. Win95ó·³ ÀÎÁõÀÚü¸¦ »ç½Ç»ó ¹Ùº¸·Î ¸¸µé¾î ¹ö¸± ¼ö ÀÖ´Ù.

³×Æ®¿öÅ© ȯ°æ¿¡¼­, »ç¿ëÀÚµéÀÌ ¾î¶»°Ô ÀÎÁõÀ» ¹Þ´Â°¡ µî¿¡ ´ëÇØ Á»´õ »ý°¢Çغ¼ Çʿ䰡 ÀÖ´Ù´Â °ÍÀº È®½ÇÇÏ´Ù.

Linux¸¦ ¼­¹ö·Î »ç¿ëÇϰí ÀÖ´Ù¸é, ±×¸®°í ±× ¼­¹ö¿¡¼­ ¸î¸î ¼­·Î ´Ù¸¥ ¼­ºñ½º(¿¹¸¦
µé¾î ÆÐ½º¿öµå ÄÁÆ®·ÑÀ» »ç¿ëÇÏ¿© ÀϺΠ»ç¿ë¿¡ Á¦¾àÀ» µÎ´Â WWW, PPPµî)µéÀ»
Á¦°øÇϰí ÀÖ´Ù¸é, ½ÇÁúÀûÀÌ°íµµ À¯ÀÍÇÑ PAMÀÇ °¡Ä¡°¡ ÀÖÀ» ¼ö ÀÖ´Ù. ƯÈ÷, ¸ðµâ
»ç¿ëÀ» ÅëÇØ PAMÀº ÇÁ·Î±×·¥ÀÌ Æ¯Á¤ ÆÐ½º¿öµå µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ Äڵ带 °¡Áö°í
ÀÖÁö ¾Ê´õ¶óµµ ¿©·¯ ÆÐ½º¿öµå µ¥ÀÌÅͺ£À̽ºÀ» °Ë»öÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù.
¾Æ·¡¿¡ PAMÀÌ °¡´ÉÇÏ°Ô ÇØÁÖ´Â ¿¹°¡ ÀÖ´Ù.

 * Apache´Â PAM¼­ºñ½º¸¦ Á¦°øÇÏ´Â ¸ðµâÀ» °¡Áö°í ÀÖ´Ù. ÀÌÁ¦ ƯÁ¤ µð·ºÅ丮µéÀ»
»ç¿ëÇÏ´Â ÀÎÁõÀÌ PAM¿¡ ÀÇÇØ ¼öÇàµÉ ¼ö ÀÖ´Ù. À̰ÍÀº RADIUS, NIS, NCP °°ÀÌ PAMÀÌ
»ç¿ë°¡´ÉÇÑ ¸ðµâ ÀüºÎ¸¦ ÀÎÁõ¿¡ »ç¿ëÇÏ´Ù´Â À̾߱Ⱑ µÈ´Ù. 
(Áï, À̰ÍÀº Novell ÆÐ½º¿öµå µ¥ÀÌÅͺ£À̽º°¡ »ç¿ë°¡´ÉÇÏ´Ù´Â °ÍÀÌ´Ù.)

 * pppd´Â PAMÀÌ Àû¿ëµÈ ¹öÁ¯ÀÌ ÀÖ´Ù(RedHat¿¡ ÀÖ´Ù.) ÀÌÁ¦ ppp »ç¿ëÀÚ¸¦ ÀÎÁõÇϱâ
À§ÇØ ¿©·¯ µ¥ÀÌÅͺ£À̽º¸¦ »ç¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù. ÀÏ¹Ý Linux±â¹ÝÀÇ
ÆÐ½º¿öµå µ¥ÀÌÅͺ£À̽º(/etc/passwd³ª /etc/shadow°°Àº °Íµé)»Ó¸¸ ¾Æ´Ï¶ó, Novell
ÆÐ½º¿öµå µ¥ÀÌÅͺ£À̽º³ª NT±â¹ÝÀÇ ÆÐ½º¿öµå µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇØ¼­µµ ÀÎÁõÀ» ÇÏ´Â
PAM¸ðµâÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

 * ¾ÕÀÇ µÎ ¿¹ÀÇ Á¶ÇÕÀÌ °¡´ÉÇÏ´Ù. ´ç½ÅÀÇ »ç¹«½Ç/ºÎ¼­¿¡ ÀÖ´Â »ç¶÷µéÀÌ À̹Ì
NovellÀ̳ª NT ±â¹ÝÀÇ LAN¿¡ ID¿Í ÆÐ½º¿öµå¸¦ µî·ÏÇß´Ù°í »ý°¢Çغ¸ÀÚ. ÀÌ
µ¥ÀÌÅͺ£À̽º¸¦ ´ç½ÅÀÇ Linux¼­¹ö¿¡¼­ »ç¿ëÇÏ°í ½Í´Ù¸é(PPP, Web
access»Ó¾Æ´Ï¶ó, ÀÏ¹Ý shell access±îÁöµµ), ¾çÂÊ ¸ðµÎ º°µµÀÇ µ¥ÀÌÅͺ£À̽º¸¦
À¯ÁöÇÏ´Â °Íº¸´Ù PAMÀ» »ç¿ëÇØ¼­ ±âÁ¸ÀÇ µ¥ÀÌÅͺ£À̽º¸¦ »ç¿ëÇÑ ÀÎÁõÀ» ÇÒ ¼ö
ÀÖ´Ù.

ÀÎÁõÀ» ÇÊ¿ä·ÎÇÏ´Â ¸ðµç ÇÁ·Î±×·¥¿¡¼­ PAMÀ» »ç¿ëÇÒ ¼ö Àִ°¡?
´ë´äÀº ¿¹/¾Æ´Ï¿À ¸ðµÎ °¡´ÉÇÏ´Ù. 
¼Ò½ºÄڵ忡 Á¢±Ù ÇÒ ¼ö ÀÖ°í, ÀûÀýÈ÷ PAM±â´ÉÀ» Ãß°¡ÇÒ ¼ö ÀÖ´Ù¸é ´ë´äÀº '¿¹'ÀÌ´Ù.
¼Ò½ºÄڵ忡 Á¢±ÙÇÒ ¼ö ¾ø°í, ÇÁ·Î±×·¥ ÀÚü°¡ PAM±â´ÉÀ»
Áö¿øÇÏÁö ¾Ê´Â´Ù¸é ´ë´äÀº '¾Æ´Ï¿À'ÀÌ´Ù.
Áï, ¾î¶² ÇÁ·Î±×·¥ÀÌ PAMÀ» »ç¿ëÇÏ·ÁÇÑ´Ù¸é ÇÁ·Î±×·¥ÀÌ PAMÀ» Áö¿øÇϵµ·Ï
¸¸µé¾î¾ß ÇÑ´Ù. ¸¸¾à ±×·¸Áö ¾Ê´Ù¸é, PAMÀ» »ç¿ëÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÏ´Ù.

ÇÁ·Î±×·¥ÀÌ PAMÁö¿ø ±â´ÉÀ» °®°í ÀÖ´ÂÁö ¾Æ´ÑÁö ¾î¶»°Ô ¾Ë ¼ö Àִ°¡?
°£ÆíÇÑ ¹æ¹ý(ÇÏÁö¸¸ Ç×»ó ¹ÏÀ»°ÍÀº ¸øµÈ´Ù.)Àº 'ldd <programname>'ÀÌ´Ù.
¸¸¾à libpam°ú libpam_misc°¡ ÇÁ·Î±×·¥ÀÌ »ç¿ëÇÏ´Â ¶óÀ̺귯¸®µé Áß¿¡ ¾ø´Ù¸é,
±× ÇÁ·Î±×·¥Àº PAMÀ» »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ´Ù.
±×·¯³ª, ¶óÀ̺귯¸®¸¦ °¡Áö°í ÀÖ´õ¶óµµ ¿©ÀüÈ÷ ¹®Á¦´Â Àִµ¥ ¿Ö³ÄÇϸé 
PAMÀÌ ÄÚµùµÈ ÇÁ·Î±×·¥ÀÌ Á¦´ë·Î µ¿ÀÛÇÏÁö ¾ÊÀ» ¼ö ÀÖ±â
¶§¹®ÀÌ´Ù. ±×·¡¼­, ¹ÏÀ» ¸¸ÇÑ °ËÁõ¹æ¹ýÀº ¾Æ·¡ÀÇ Å×½ºÆ®¸¦ ÇÏ´Â °ÍÀÌ´Ù.

/etc/pam.d µð·ºÅ丮¿¡¼­ ½ÇÇà½ÃŰ·Á´Â ÇÁ·Î±×·¥ÀÇ ¼³Á¤ÆÄÀÏÀ» ¸¸µç´Ù. Á¤È®ÇÑ
ÆÄÀÏÀÇ À̸§Àº ÇÁ·Î±×·¥³»¿¡ Çϵå-ÄÚµùµÇ¾î ÀÖ´Ù. º¸ÅëÀº ÇÁ·Î±×·¥ À̸§°ú
°°Àº À̸§ÀÌÁö¸¸, Ç×»ó ±×·¸Áö´Â ¾Ê´Ù. ¼³¸íÀÇ ÆíÀǸ¦ À§ÇØ ±× ÇÁ·Î±×·¥ÀÇ
À̸§ÀÌ 'pamprog'¶ó°í Çϰí, ¼³Á¤ÆÄÀÏÀº /etc/pam.d/pamprog¶ó°í ÇÏÀÚ.

/etc/pam.d/pamprogÀÇ ³»¿ëÀ» ´ÙÀ½°ú °°ÀÌ ÇÏÀÚ:
auth	required pam_permit.so
auth	required pam_warn.so

ÀÌÁ¦ pamprog¸¦ »ç¿ëÇØº¸ÀÚ. ¼³Á¤ÆÄÀÏÀÇ Ã¹¹øÂ° ÁÙÀº ¸ðµç »ç¿ëÀÚ¸¦ Åë°ú½ÃŰ´Â
°ÍÀÌ´Ù. µÎ¹øÂ° ÁÙÀº syslogÆÄÀÏ¿¡ °æ°í ¸Þ½ÃÁö¸¦ ³²±â´Â °ÍÀÌ´Ù. ÀÌ Å×½ºÆ®°¡
¼º°øÇÑ´Ù¸é, ´ç½ÅÀº ÀÌ ÇÁ·Î±×·¥ÀÌ pamÀ» Á¦´ë·Î Áö¿øÇϰí ÀÖ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.
±×¸®°í /etc/pam.d/pamprog ÆÄÀϳ»ÀÇ ¸ðµâ ¼³Á¤À» ÅëÇØ ¾î¶»°Ô ¸ðµâÀ» ½×À» °ÍÀÎÁö¸¦
°áÁ¤ÇÏ´Â ´õ Èï¹ÌÀÖ´Â ÀÏÀ» ÇÒ ¼ö ÀְԵȴÙ.