The Linux-PAM System Administrators' Guide Andrew G. Morgan
morgan (at) kernel.org
PAM team(¾ÈÈ¿¼º, Á¤°æ½Ä, ÇãÁØ¿µ) SPsoft
pam (at) spsoft.co.kr
DRAFT v0.75 2001/03/18 ÀÌ ¹®¼­´Â ½Ã½ºÅÛ°ü¸®ÀÚ°¡ Linux-PAM ¶óÀ̺귯¸®¿¡ ´ëÇؼ­ ¾Ë¾Æ¾ß ÇÒ °ÍµéÀ» ´Ù·ç°í ÀÖ´Ù. ¿©±â¼­´Â PAM ¼³Á¤ÆÄÀÏÀÇ ¿Ã¹Ù¸¥ Çü½Ä°ú º¸¾È»óÀ¸·Î ¾ÈÀüÇÑ ½Ã½ºÅÛÀ» À¯ÁöÇϱâ À§ÇÑ Àü·«À» À̾߱âÇÏ°í ÀÖ´Ù.
¼Ò°³(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))ÀÇ ÇüŸ¦ °®´Â´Ù. ÀÌ ¹®¼­¿¡ ´ëÇÑ ¾à°£ÀÇ ÁÖÇØ(Some comments on the text) ÀÌ ¹®¼­ ³ª¸ÓÁö¸¦ °è¼Ó Àбâ Àü¿¡, ÀÌ ±Û¿¡¼­ ƯÁ¤ ÆÄÀϵéÀÌ ÁöÁ¤µÈ ƯÁ¤ µð·ºÅ丮¿¡ À§Ä¡ÇØ ÀÖ´Ù°í °¡Á¤ÇÏ°í ÀÖÀ½À» ÁÖÁöÇØÁֱ⠹ٶõ´Ù. ÀÌ ÆÄÀϵéÀÇ À§Ä¡¿¡ ´ëÇØ ¿ì¸®°¡ ¼±ÅÃÇÑ °ü·Ê´Â ÇØ´ç RFC(RFC-86.0, see bibliography)¿¡¼­ ÁöÁ¤µÈ ¹Ù¸¦ µû¶ú´Ù. ¸¸¾à ´ç½ÅÀÌ PAMÀ» Áö¿øÇÏ´Â Linux¹èÆ÷ÆÇ(¶Ç´Â ´Ù¸¥ OS)À» »ç¿ëÇÏÁö¸¸ ÀÌ ÆÄÀϵéÀ» ´Ù¸¥ °÷¿¡ ¼³Ä¡Çϵµ·Ï ¼±ÅÃÇß´Ù¸é(Red HatÀÌ ÀÌ·¯ÇÑ ¹èÆ÷ÆÇÁß Çϳª´Ù.) ÀÌ ¹®¼­¿¡¼­ ¿¹Á¦¸¦ ¹Ù·Î º¹»çÇÒ °æ¿ì ÁÖÀÇÇÏ±æ ¹Ù¶õ´Ù. ¾ÕÀÇ ¿¹¸¦ µé¸é¼­ ºÐ¸íÈ÷ ¹àÇô³õ¾ÒµíÀÌ ÀÌ ±Û¿¡¼­´Â PAM µ¿Àû ¿ÀºêÁ§Æ® ÆÄÀÏ (¸ðµâ)µéÀÌ /usr/lib/security µð·ºÅ丮¿¡ ÀÖ´Ù°í °¡Á¤ÇÑ´Ù. ÇÏÁö¸¸ Red Hat Linux´Â LinuxÆÄÀÏ ½Ã½ºÅÛ Ç¥ÁØ(FSSTND)°úÀÇ ÇÕÀÇÇÏ¿¡ ÀÌ ÆÄÀϵéÀ» /lib/security¿¡ µÎ¾ú´Ù. ÀÌ ¹®¼­ÀÇ ¿¹Á¦¸¦ »ç¿ëÇÒ ¶§, ÁÖÀÇÇؼ­ ÀûÀýÈ÷ º¯¿ëÇϱ⠹ٶõ´Ù. °³¿ä ÃʽÉÀÚ¸¦ À§ÇØ, ¿¹Á¦¸¦ ¸ÕÀú »ìÆ캸°Ú´Ù. »ç¿ëÀÚ¿¡°Ô ¾î¶² ¼­ºñ½º¸¦ Á¦°øÇØÁÖ´Â ÀÀ¿ëÇÁ·Î±×·¥À» »ý°¢Çغ¸ÀÚ; 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 ÇÔ¼ö¸¦ ÅëÇØ ±³È¯µÈ´Ù. ½ÃÀÛÇϱâ [¾Æ·¡ ±ÛÀº 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 ÆÄÀϳ»ÀÇ ¸ðµâ ¼³Á¤À» ÅëÇØ ¾î¶»°Ô ¸ðµâÀ» ½×À» °ÍÀÎÁö¸¦ °áÁ¤ÇÏ´Â ´õ Èï¹ÌÀÖ´Â ÀÏÀ» ÇÒ ¼ö ÀְԵȴÙ. Linux-PAM ¼³Á¤ ÆÄÀÏ Linux-PAMÀº ½Ã½ºÅÛ °ü¸®ÀÚ¿¡°Ô ½Ã½ºÅÛ¿¡ ÀÖ´Â ±ÇÇÑÀ» ºÎ¿©ÇÏ´Â ÀÀ¿ëÇÁ·Î±×·¥µéÀ» ¼³Á¤Çϴµ¥ À־ ¸¹Àº À¯¿¬¼ºÀ» Á¦°øÇØÁÖ±â À§ÇØ µðÀÚÀεǾú´Ù. Linux-PAM¿¡ÀÇÇØ Á¶Á¤µÇ´Â ½Ã½ºÅÛ º¸¾È¿¡ °ü·ÃµÈ ¼³Á¤µéÀº /etc/pam.confÆÄÀÏÀ̳ª /etc/pam.d/ µð·ºÅ丮³»ÀÇ ÆÄÀϵé Áß Çϳª¿¡ µé¾îÀÖ´Ù. ÀÌ Àå¿¡¼­´Â ÀÌ ÆÄÀϵéÀÌ ÂüÁ¶ÇÏ´Â ³»¿ë¿¡ °üÇÑ ¿Ã¹Ù¸¥ ¹®¹ý°ú ¿É¼Ç¿¡ ´ëÇØ ¼³¸íÇÒ °ÍÀÌ´Ù. ¼³Á¤ ÆÄÀÏ ¹®¹ý(Configuration file syntax) ÀÌ ÆÄÀÏ¿¡¼­ Linux-PAM°íÀ¯ÀÇ ´Ü¾î(ÅäÅ«)µéÀº ´ë¼Ò¹®ÀÚ ±¸ºÐÀÌ ¾ø´Ù´Â°ÍÀ» À¯³äÇϱ⠹ٶõ´Ù. ±×·¯³ª, ¸ðµâ °æ·Î(path)´Â ÆÄÀÏ À̸§À» °¡¸£Å°´Â °ÍÀÌ°í ÀüÇüÀûÀÎ Linux ÆÄÀÏ ½Ã½ºÅÛÀÇ ´ë¼Ò¹®ÀÚ ±¸ºÐ¿¡ µû¶ó ¸ðµâ °æ·Î ¿ª½Ã ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÑ´Ù. ¸ðµâ¿¡°Ô ÁÖ¾îÁö´Â ÀÎÀÚ(argument)µéÀÇ ´ë¼Ò¹®ÀÚ ±¸ºÐÀº ¸ðµâÀÌ Á¤Çѹٿ¡ µû¸¥´Ù. ¾Æ·¡ ¼³¸íµÈ °Íµé¿Ü¿¡, ½Ã½ºÅÛ °ü¸®ÀÚÀÇ ÆíÀǸ¦ À§ÇØ µÎ°³ÀÇ Æ¯º°ÇÑ ¹®ÀÚ°¡ Á¦°øµÈ´Ù: '#'À¸·Î ½ÃÀ۵Ǵ ¹®ÀåÀº ÁÖ¼®ÀÌ°í ÁÙÀÇ ³¡±îÁö À¯È¿ÇÏ´Ù. ¸ðµâÀÇ ¼³Á¤Çà¿¡¼­ ÁÙ ³¡¿¡ '\'¸¦ »ç¿ëÇÏ¸é ´ÙÀ½ÁÙµµ ¾Õ°ú °°Àº ÇϳªÀÇ ¹®ÀåÀ¸·Î 󸮵ȴÙ. /etc/pam.confÆÄÀÏÀÇ ÀϹÝÀûÀÎ ¼³Á¤ ¹®ÀåÀº ¾Æ·¡ÀÇ ÇüÅÂÀÌ´Ù: service-name module-type control-flag module-path arguments ¾Æ·¡¿¡ ÀÌ °¢°¢ÀÇ ´Ü¾îµéÀÇ Àǹ̸¦ ¼³¸íÇÑ´Ù. Linux-PAMÀ» ¼³Á¤ÇÏ´Â µÎ¹ø° ¹æ¹ý(ÃÖ±Ù¿¡ Àû¿ëµÈ °ÍÀÌ´Ù.)Àº /etc/pam.d/µð·ºÅ丮³»ÀÇ ÆÄÀϵéÀ» »ç¿ëÇÏ´Â °ÍÀÌ´Ù. À§ÀÇ ´Ü¾îµéÀÇ Àǹ̸¦ ¼³¸íÇÑ ´ÙÀ½¿¡ ÀÌ ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÏ°Ú´Ù. service-name ÀÌ ¼³Á¤¹®Àå°ú °ü·ÃÇÑ ¼­ºñ½ºÀÇ À̸§ÀÌ´Ù. ÁÖ·Î ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ÀϹÝÀûÀÎ À̸§À» »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¸é, 'ftpd', 'rlogind', 'su' µîÀÌ´Ù. µðÆúÆ® ÀÎÁõ ¹æ¹ýÀ» Á¤ÀÇÇϱâ À§ÇØ Á¤ÀÇµÈ Æ¯º°ÇÑ ¼­ºñ½º À̸§ÀÌ ÀÖ´Ù. 'OTHER'¶ó´Â °ÍÀÌ ÀÌ°ÍÀε¥, ´ë¼Ò¹®ÀÚ ±¸º°¾øÀÌ ¾µ ¼ö ÀÖ´Ù. ¸¸¾à ¾î¶² ¼­ºñ½ºÀÇ ÀÎÁõ ¸ðµâ ¼³Á¤ÀÌ ÀÌ¹Ì µÇ¾î ÀÖÀ¸¸é 'OTHER'Ç׸ñÀº ¹«½ÃµÈ´Ù. module-type ³×°¡ÁöÀÇ(ÇöÀç) ¸ðµâ ŸÀÔÁß ÇϳªÀÌ´Ù. ³×°¡Áö´Â ´ÙÀ½°ú °°´Ù: auth: ÀÌ ¸ðµâŸÀÔÀº »ç¿ëÀÚ ÀÎÁõÀÇ µÎ°¡Áö ¸éÀ» Á¦°øÇÑ´Ù. ù°´Â, ÀÀ¿ëÇÁ·Î±×·¥ÀÌ »ç¿ëÀÚ¿¡°Ô Æнº¿öµå¸¦ ¹°¾îº¸°Å³ª ´Ù¸¥ È®ÀÎ ¹æ¹ýÀ» »ç¿ëÇϵµ·Ï Çؼ­ ±× »ç¿ëÀÚ°¡ ÀÚ½ÅÀÌ ÁÖÀåÇÏ´Â »ç¶÷ÀÌ ¸Â´ÂÁö È®ÀÎÇÏ´Â °ÍÀÌ´Ù. µÎ¹ø°´Â, ±×·ì ¸â¹ö½±À» Áְųª (¾Õ¼­ À̾߱âÇÑ /etc/groupsÆÄÀÏ¿¡ ÀÖ´Â ³»¿ëÀ» ÅëÇؼ­) credential(½ÅÀÓ)¼Ó¼ºÀ» ÅëÇØ ´Ù¸¥ ±ÇÇÑÀ» ÁÖ´Â °ÍÀÌ´Ù. account: ÀÌ ¸ðµâÀº ÀÎÁõÀÌ ¾Æ´Ñ °èÁ¤°ü¸®¸¦ ¼öÇàÇÑ´Ù. ÀÌ°ÍÀº º¸Åë ½Ã°£/³¯Â¥³ª ÇöÀçÀÇ ½Ã½ºÅÛ ÀÚ¿ø »óȲ(ÃÖ´ë »ç¿ëÀÚ¼ö)À̳ª »ç¿ëÀÚÀÇ À§Ä¡('root'´Â Äֿܼ¡¼­¸¸ ·Î±×ÀÎÀÌ °¡´ÉÇÏ´Ù)µî¿¡ µû¶ó ¼­ºñ½º¿¡ ´ëÇÑ Á¢±ÙÀ» Çã°¡Çϰųª Á¦ÇÑÇÏ´Â °ÍÀÌ´Ù. session: ÁÖ·Î, ÀÌ ¸ðµâÀº ¼­ºñ½º¸¦ »ç¿ëÇϱâ Á÷Àü/Á÷ÈÄ¿¡ ÇÊ¿äÇÑ ÀÛ¾÷°ú °ü·ÃÀÌ ÀÖ´Ù. ÀÌ·¯ÇÑ °ÍµéÀº »ç¿ëÀÚ¿Í ±³È¯ÇÒ ¾î¶² µ¥ÀÌÅ͵éÀÇ opening/closing°ú °ü·ÃÇÑ Á¤º¸µéÀÇ ±â·Ï, µð·ºÅ丮ÀÇ ¸¶¿îÆ® µîÀÌ ÇØ´çµÈ´Ù. password: ÀÌ ¸¶Áö¸· ¸ðµâŸÀÔÀº »ç¿ëÀÚ¿Í ¿¬°üµÈ ÀÎÁõÅäÅ« (Æнº¿öµå)µéÀ» °»½ÅÇÒ ¶§ ÇÊ¿äÇÏ´Ù. º¸Åë, challenge/response ¹æ½Ä¿¡ ±â¹ÝÇÑ ÀÎÁõ¸ðµâ Á¾·ùº°·Î °¢°¢ ÇϳªÀÇ password¸ðµâ¾¿ÀÌ Á¸ÀçÇÑ´Ù. control-flag control-flagÀº °ü·ÃµÇ´Â ¸ðµâÀÇ ¼º°ø/½ÇÆÐ °á°ú¿¡ µû¶ó ¾î¶»°Ô PAM¶óÀ̺귯¸®°¡ ¹ÝÀÀÇÒÁö¸¦ ÁöÁ¤ÇÑ´Ù. ¸ðµâµéÀÌ ½×¿©(°°Àº ŸÀÔÀÇ ¸ðµâµéÀÌ ¼ø¼­´ë·Î ¼öÇàµÈ´Ù) Àֱ⠶§¹®¿¡ control-flag´Â °¢ ¸ðµâÀÇ »ó´ëÀûÀÎ Áß¿äµµ¸¦ °áÁ¤ÇÑ´Ù. ÀÀ¿ëÇÁ·Î±×·¥Àº /etc/pam.conf¿¡ ¿­°ÅµÈ ¸ðµâ °¢°¢ÀÇ ¼º°ø/½ÇÆп¡ ´ëÇØ ¾Ë ¼ö ¾ø´Ù. ´ë½Å¿¡, Linux-PAM¶óÀ̺귯¸®·ÎºÎÅÍ ¿ä¾àµÈ ¼º°ø/½ÇÆп¡ ´ëÇÑ °á°ú¸¦ ¹Þ°ÔµÈ´Ù. ¸ðµâµéÀÇ ¼öÇà ¼ø¼­´Â /etc/pam.confÆÄÀÏ¿¡ ¿­°ÅµÈ ¼ø¼­´ë·Î ¾Õ¿¡ ³ª¿Â°ÍÀÌ µÚ¿¡°Íº¸´Ù ¸ÕÀú ¼öÇàµÈ´Ù. Linux-PAM v0.60ºÎÅÍ, ÀÌ control-flagÀº µÎ°¡Áö ¹®¹ýÁß Çϳª·Î Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. º¸´Ù ´Ü¼øÇÑ(óÀ½ºÎÅÍ ÀÖ´ø) ¹®¹ýÀº ƯÁ¤ ¸ðµâº°·Î ÀüüÀûÀÎ ¼º°ø/½ÇÆп¡ ´ëÇØ ÁÖ´Â ¿µÇâÀ» ÇϳªÀÇ ´Ü¾î·Î Áö½ÃÇÏ´Â °ÍÀÌ´Ù. ÀÌ°Í¿¡´Â ³×°¡ÁöÀÇ ´Ü¾î°¡ ÀÖ´Ù: required, requisite, sufficient, optional. Linux-PAM ¶óÀ̺귯¸®´Â ÀÌ ´Ü¾îµéÀ» ¾Æ·¡ ¼³¸í°ú °°ÀÌ Çؼ®ÇÑ´Ù: required: ÀÌ°ÍÀº ÇØ´ç module_typeÀÌ ÀüüÀûÀ¸·Î ¼º°øÇϱâ À§Çؼ­´Â ÀÌ ¸ðµâÀÇ ¼º°øÀÌ ÇÊ¿äÇÏ´Ù´Â °ÍÀ» ¸»ÇÑ´Ù. ³ª¸ÓÁö ¸ðµâ(°°Àº module-typeÀÇ)ÀÌ ¸ðµÎ ´Ù ¼öÇàµÇ±â Àü±îÁö »ç¿ëÀÚ°¡ ÀÌ ¸ðµâÀÌ ½ÇÆÐÇß´ÂÁö È®½ÇÈ÷ ¾Ë ¼ö ¾ø´Ù. requisite: required¿Í ºñ½ÁÇϳª, ½ÇÆÐÇÑ °æ¿ì Á¦¾î°¡ ¹Ù·Î ÀÀ¿ëÇÁ·Î±×·¥¿¡°Ô ³Ñ¾î°£´Ù. °á°ú°ªÀº óÀ½ÀÇ ½ÇÆÐÇÑ required³ª requisite¸ðµâÀÇ °á°ú°ªÀÌ´Ù. ÀÌ Ç÷¡±×´Â »ç¿ëÀÚ°¡ ¾ÈÀüÇÏÁö ¾ÊÀº ¸Åü(medium)¿¡¼­ Æнº¿öµå¸¦ ÀÔ·ÂÇÒ °æ¿ì¿¡ ´ëºñÇØ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ÇൿÀº Å©·¡Ä¿¿¡°Ô ½Ã½ºÅÛÀÇ À¯È¿ÇÑ °èÁ¤À» ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù. ÀÌ °¡´É¼ºÀº ¹Î°¨ÇÑ Æнº¿öµå¸¦ Àû´ëÀûÀΠȯ°æ¿¡ ³ëÃâ½ÃÅ°´Â °Í¿¡ ´ëÇÑ »ç¼ÒÇÏÁö ¾ÊÀº ¿°·Á¿Í ºñ±³Çؼ­ °ËÅäÇØ¾ß ÇÑ´Ù. sufficient: ÀÌ ¸ðµâÀÇ ¼º°øÀº Linux-PAM¶óÀ̺귯¸®¿¡°Ô ÀÌ module-typeÀÌ ¼º°øÇß´Ù°í ÆÇ´ÜÇÒ¸¸Å­ ÃæºÐÇÏ°Ô ¸¸Á·½º·´´Ù´Â °ÍÀÌ´Ù. ÀÌÀüÀÇ required¸ðµâÀÌ ½ÇÆÐÇÏÁö ¾Ê¾Ò´Ù¸é ´õÀÌ»ó ÀÌ typeÀÇ ³ª¸ÓÁö ¸ðµâµéÀº ¼öÇàµÇÁö ¾Ê´Â´Ù. (ÀÌ°æ¿ì¿¡ µÚµû¸£´Â required¸ðµâÀÌ ¼öÇàµÇÁö ¾Ê´Â°Í¿¡ À¯ÀÇÇ϶ó) ÀÌ ¸ðµâÀÇ ½ÇÆд ÀÌ module-typeÀÇ ¼º°ø¿©ºÎ ÆÇ´Ü¿¡ Ä¡¸íÀûÀÌÁö´Â ¾ÊÀº°ÍÀ¸·Î °£ÁֵȴÙ. optional: À̸§ÀÌ ÀǹÌÇϵíÀÌ, ÀÌ control-flag´Â ¸ðµâÀÌ ¼­ºñ½º¿¡ ´ëÇÑ ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ¼º°ø/½ÇÆп¡ Áß¿äÇÏÁö´Â ¾Ê´Ù´Â °ÍÀÌ´Ù. º¸Åë, Linux-PAMÀº ¸ðµâµéÀÇ ¼º°ø/½ÇÆÐ ÆǴܽÿ¡ ÀÌ·± ¸ðµâÀº ¹«½ÃÇÑ´Ù. ±×·¯³ª, ÀÌÀü/ÀÌÈÄÀÇ ¸ðµâµéÀÌ ¸íÈ®ÇÑ ¼º°ø/½ÇÆа¡ ¾ø´Ù¸é ÀÌ ¸ðµâÀÌ ÀÀ¿ëÇÁ·Î±×·¥¿¡°Ô ÁÖ´Â °á°ú¸¦ °áÁ¤Áþ´Â´Ù. ÈÄÀÚÀÇ °æ¿ìÀÇ ¿¹·Î, ´Ù¸¥ ¸ðµâµéÀÌ PAM_IGNORE°°Àº °ÍÀ» ¸®ÅÏÇÒ °æ¿ìÀÌ´Ù. Á»´õ Á¤±³ÇÑ(»õ·Î¿î) ¹®¹ýÀº ´õ¿í ¸íÈ®ÇÏ°í ½Ã½ºÅÛ °ü¸®ÀÚ°¡ »ç¿ëÀÚ¸¦ ¾î¶»°Ô ÀÎÁõÇÒÁö¿¡ ÀÖ¾î ´õ ¸¹Àº Á¦¾î¹æ¹ýÀ» Á¦°øÇÑ´Ù. ÀÌ control-flag´Â ´ë°ýÈ£([])¾È¿¡ value=actionµéÀÌ ³ª¿­µÇ¾î ÀÖ´Â ÇüÅÂÀÌ´Ù: [value1=action1 value2=action2 ...] valueI´Â ´ÙÀ½ÀÇ ¸®ÅÏ°ªµé Áß ÇϳªÀÌ´Ù: success; open_err; symbol_err; service_err; system_err; buf_err; perm_denied; auth_err; cred_insufficient; authinfo_unavail; user_unknown; maxtries; new_authtok_reqd; acct_expired; session_err; cred_unavail; cred_expired; cred_err; no_module_data; conv_err; authtok_err; authtok_recover_err; authtok_lock_busy; authtok_disable_aging; try_again; ignore; abort; authtok_expired; module_unknown; bad_item; default. ¸¶Áö¸·(default)°ÍÀº ¸íÈ®È÷ Á¤ÀǵÇÁö¾ÊÀº ¸®ÅÏ°ªµé¿¡ ´ëÇÑ actionÀ» Á¤Çϱâ À§ÇØ »ç¿ëµÈ´Ù. actionI´Â ¾çÀÇ Á¤¼ö³ª ´ÙÀ½ÀÇ ÅäÅ«µé Áß ÇϳªÀÌ´Ù: ignore; ok; done; bad; die; reset. ¾çÀÇ Á¤¼ö J°¡ actionÀ¸·Î Á¤ÇØÁö¸é °°Àº typeÀÇ ¸ðµâµéÁß ´ÙÀ½ÀÇ J°³ ¸ðµâµéÀ» °Ç³Ê¶Ù°ÔÇÏ´Â °ÍÀÌ´Ù. ÀÌ ¹æ¹ýÀ¸·Î °ü¸®ÀÚ´Â ¿©·¯°³ÀÇ ¼­·Î ´Ù¸¥ ½ÇÇà°úÁ¤À» °®´Â Á¤±³ÇÑ ¸ðµâ¸ñ·ÏÀ» ÀûÀýÈ÷ ¸¸µé ¼ö ÀÖ°Ô µÈ´Ù. ¾î´À °æ·Î°¡ µÉÁö´Â °¢ ¸ðµâÀÇ ¹ÝÀÀ¿¡ ÀÇÇØ °áÁ¤µÈ´Ù. ignore - ¸ðµâÀÇ °á°ú°ªÀÌ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ °®°ÔµÉ °á°ú°ª¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê´Â´Ù. bad - ÀÌ°ÍÀº °á°ú°ªÀÌ ¸ðµâ ½ÇÆÐÀÇ Ç¥½Ã·Î »ý°¢ÇØ¾ß ÇÑ´Ù. À̸ðµâÀÌ ½ÇÆÐÇÑ Ã¹¹ø° ¸ðµâÀ̸é, ÀÌ »óÅ°ªÀº Àüü ¸ðµâÀÇ °á°ú·Î »ç¿ëµÉ °ÍÀÌ´Ù. die - bad¿Í °°Áö¸¸ ¸ðµâ ¼öÇàÀÌ ÁßÁöµÇ°í, PAMÀÌ ÀÀ¿ëÇÁ·Î±×·¥À¸·Î ¹Ù·Î ¸®ÅÏÇÑ´Ù´Â °ÍÀÌ ´Ù¸£´Ù. ok - ÀÌ°ÍÀº PAM¿¡°Ô °ü¸®ÀÚ°¡ ÀÌ °á°ú°ªÀÌ ¸ðµâ ÀüüÀÇ °á°ú »óÅ·Π¹Ù·Î »ç¿ëµÇ±æ ¹Ù¶õ´Ù°í ¾Ë·ÁÁÖ´Â °ÍÀÌ´Ù. Áï, ¸ðµâ¸ñ·ÏÀÇ ¼öÇà°úÁ¤¿¡¼­ ¾Õ±îÁöÀÇ »óÅ°¡ PAM_SUCCESSÀ̸é ÀÌ ¸ðµâÀÇ °á°ú°ªÀº ¾Õ±îÁöÀÇ »óÅ°ªÀ» µ¤¾î¾´´Ù. ¹Ý¸é ¾Õ±îÁöÀÇ »óÅ°¡ ½ÇÆжó¸é ÀÌ 'ok'°ªÀº »óŸ¦ µ¤¾î¾²Áö ¾ÊÀ» °ÍÀÌ´Ù. done - ok¿Í °°Áö¸¸ ¸ðµâ ¼öÇàÀÌ ÁßÁöµÇ°í PAMÀÌ ÀÀ¿ëÇÁ·Î±×·¥¿¡°Ô ¹Ù·Î ¸®ÅÏÇÑ´Ù´Â °ÍÀÌ ´Ù¸£´Ù. reset - ¸ðµâµéÀÇ °á°ú»óÅ ±â·ÏÀ» Áö¿ì°í, ´ÙÀ½ ¸ðµâºÎÅÍ »õ·Î ½ÃÀÛÇÑ´Ù. »õ·Î¿î ¹®¹ýÀÇ ´É·ÂÀ» ü°¨Çϱâ À§ÇØ, ÀÌ°ÍÀ¸·Î ¹«¾ùÀ» ÇÒ ¼ö ÀÖ´ÂÁö º¸¿©ÁÖ°Ú´Ù. Linux-PAM-0.63ºÎÅÍ client plug-in agents¶ó´Â °ÍÀÌ ¼Ò°³µÇ¾ú´Ù. ÀÌ°ÍÀº PAMÀÌ client/serverÇÁ·Î±×·¥µéÀÌ °íÀ¯ÇÏ°Ô °¡Áö°í ÀÖ´Â Àü¼Û ±Ô¾àÀ» »ç¿ëÇؼ­ ¼­·Î´Ù¸¥ ±â°è°£ÀÇ ÀÎÁõÀ» Áö¿øÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇØ ÁØ´Ù. ``[... value=action ...]'' Á¦¾î ¹®¹ýÀ¸·Î ÀÀ¿ëÇÁ·Î±×·¥ÀÌ À¯¼øÇÑ Å¬¶óÀ̾ðÆ® ÇÁ·Î±×·¥¿¡°Ô´Â ¹ÙÀ̳ʸ® ÇÁ·ÒÇÁÆ®¸¦ Áö¿øÇÏÁö¸¸ µ¿½Ã¿¡ ¿ì¾ÆÇÏ°Ôµµ ¿À·¡µÈ ±¸½ÄÀÇ ÀÀ¿ëÇÁ·Î±×·¥¿¡°Ô´Â ´Ù¸¥ ÀÎÁõ¸ðµå¸¦ ¼±ÅÃÇϵµ·Ï ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. À¯¿¬ÇÏÁö ¾ÊÀº°¡? module-path µ¿ÀûÀ¸·Î ·ÎµåµÉ ¿ÀºêÁ§Æ® ÆÄÀÏ(¸ðµâ ÀÚü)ÀÇ °æ·Î¸íÀÌ´Ù. module pathÀÇ Ã¹ ¹®ÀÚ°¡ '/'¶ó¸é, Àüü°æ·Î¸¦ ÀǹÌÇÑ´Ù. ±×·¸Áö ¾ÊÀº°æ¿ì¿¡´Â default module path(/usr/lib/security)¸¦ ºÙ¿©¼­ Çؼ®µÈ´Ù. (±×·¸Áö¸¸ 2Àå ³»¿ëÀ» Âü°íÇ϶ó). args args´Â ¸ðµâÀÌ ºÒ·ÁÁú¶§ ³Ñ°ÜÁÖ´Â ÅäÅ« ¸®½ºÆ®ÀÌ´Ù. ÀüÇüÀûÀÎ Linux shell¸í·É¿¡ ÁÖ´Â ÀÎÀÚµé°ú ºñ½ÁÇÏ´Ù. º¸Åë, À¯È¿ÇÑ ÀÎÀÚ´Â ¿É¼ÇÀÌ°í ƯÁ¤ ¸ðµâ¿¡¸¸ ÇØ´çµÈ´Ù. ¹«È¿ÇÑ ÀÎÀÚµéÀº ¸ðµâ¿¡ ÀÇÇØ ¹«½ÃµÇÁö¸¸, ¹«È¿ÇÑ ÀÎÀÚµéÀ» º¸°ÔµÇ¸é ¸ðµâÀº syslog(3)¿¡ ¿¡·¯¸¦ º¸³»µµ·Ï ¿ä±¸¹Þ´Â´Ù. ÀϹÝÀû generic¿É¼ÇÀÇ ¸ñ·ÏÀº ´ÙÀ½Àý(4.3)¿¡¼­ º¼ ¼ö ÀÖ´Ù. ¼³Á¤ ÆÄÀÏÀÇ ¾î¶² ÁÙÀÌ¶óµµ Á¦´ë·Î ÀÛ¼ºµÇ¾îÀÖÁö ¾ÊÀ» °æ¿ì ÀϹÝÀûÀ¸·Î ÀÎÁõ ÀýÂ÷°¡ ½ÇÆÐÇÏ°Ô µÈ´Ù. ÇØ´ç ¿¡·¯´Â syslog(3)¸¦ ÅëÇØ ½Ã½ºÅÛ logÆÄÀÏ¿¡ ±â·ÏµÈ´Ù. µð·ºÅ丮¿¡ ¼³Á¤ÆÄÀÏÀ» ±â·ÏÇÒ ¶§(Directory based configuration) ÇϳªÀÇ ¼³Á¤ ÆÄÀϺ¸´Ù ´õ À¯¿¬¼ºÀ» °®±â À§ÇØ 0.56¹öÀü ºÎÅÍ /etc/pam.d/ µð·ºÅ丮ÀÇ ÆÄÀϵé·Î libpamÀ» ¼³Á¤Çϴ°ÍÀÌ °¡´ÉÇØÁ³´Ù. ÀÌ°æ¿ì¿¡ ±× µð·ºÅ丮ÀÇ ÆÄÀÏÀº ÆÄÀÏÀ̸§°ú °°Àº À̸§(¼Ò¹®ÀÚ)À» °®´Â ¼­ºñ½º¿¡ ´ëÇÑ ¼³Á¤À» °®°Ô µÈ´Ù: ¼­ºñ½º °¢°¢¿¡ ´ëÇÑ ¼³Á¤ ÆÄÀÏÀÎ °ÍÀÌ´Ù. Linux-PAMÀº µÎ°¡Áö ¸ðµå·Î ÄÄÆÄÀÏ ÇÒ ¼ö ÀÖ´Ù. ÃßõÇÏ´Â ÂÊÀº /etc/pam.d/³ª /etc/pam.confµÑ Áß Çϳª¸¸ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ÇÏÁö¸¸ µÑ´Ù °°ÀÌ ÇÒ ¼ö´Â ¾ø´Ù. Áï, /etc/pam.d/µð·ºÅ丮°¡ ÀÖ´Ù¸é, libpamÀº ±× µð·ºÅ丮¿¡ ÀÖ´Â ÆÄÀϵ鸸À» »ç¿ëÇÑ´Ù. ±×·¯³ª /etc/pam.d/ µð·ºÅ丮°¡ ¾ø´Â °æ¿ì¿¡´Â /etc/pam.conf¸¦ »ç¿ëÇÑ´Ù. ´Ù¸¥ ÂÊÀº(ÇöÀç RedHat 4.2À̻󿡼­ Áö¿øµÇ°í ÀÖ´Ù) /etc/pam.d/¿Í /etc/pam.conf¸¦ ¼ø¼­´ë·Î ¸ðµÎ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ÀÌ ¶§´Â /etc/pam.confÀÇ ³»¿ëº¸´Ù /etc/pam.d/ÀÇ ³»¿ëÀÌ ¿ì¼±ÀûÀ¸·Î »ç¿ëµÈ´Ù. /etc/pam.d/ÀÇ ÆÄÀÏÀÇ ¹®¹ýÀº /etc/pam.confÀÇ ¹®¹ý°ú ºñ½ÁÇÏ´Ù. °¢ ¹®ÀåÀº ´ÙÀ½°ú °°Àº ÇüÅÂÀÌ´Ù: module-type control-flag module-path arguments ¼­ºñ½º À̸§(service-name)ÀÌ ¾ø´Ù´Â°Í Çϳª¸¸ ´Ù¸£´Ù. ¼­ºñ½º À̸§(service-name)Àº ¹°·Ð ¼³Á¤ÆÄÀÏÀÇ À̸§ÀÌ´Ù. ¿¹¸¦ µé¾î, /etc/pam.d/loginÀº login¼­ºñ½º¿¡ ´ëÇÑ ¼³Á¤À» °¡Áö°í ÀÖ´Ù. ÀÌ ¼³Á¤ ¹æ¹ýÀº ´ÜÀÏ ÆÄÀÏ·Î ÇÏ´Â °Í¿¡ ºñÇØ ¿©·¯ ÀåÁ¡À» °®´Â´Ù. ¾î´À ¹æ¹ýÀ» Àû¿ëÇÒÁö ¼±ÅÃÇϴµ¥ µµ¿òÀ» ÁÖ±â À§ÇØ ¿©±â¿¡ ±× ÀåÁ¡À» ³ª¿­ÇÑ´Ù: À߸ø ¼³Á¤ÇÒ °¡´É¼ºÀ» ÁÙ¿©ÁØ´Ù. ¼³Á¤ÆÄÀÏÀ» ¼ÕÀ¸·Î ¼öÁ¤ÇÒ ¶§, Çʵ尡 Çϳª Àû±â ¶§¹®¿¡ ±×¸¸Å­ ½Ç¼öµµ Àû´Ù. À¯Áö°¡ ½±´Ù. ÇÑ ÀÀ¿ëÇÁ·Î±×·¥ ¼³Á¤À» ´Ù½ÃÇÒ ¶§, ½Ã½ºÅÛÀÇ ´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥À» ¹æÇØÇÒ À§ÇèÀÌ ¾ø´Ù. ¿©·¯ ¼­·Î ´Ù¸¥ ¼­ºñ½ºÀÇ ¼³Á¤ ÆÄÀÏÀ» ÇϳªÀÇ ÆÄÀÏ¿¡ ½Éº¼¸¯(symbolic) ¸µÅ©Çϴ°ÍÀÌ °¡´ÉÇÏ´Ù. ÀÌ°ÍÀº ´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥°£ÀÇ º¸¾ÈÁ¤Ã¥À» µ¿ÀÏÇÏ°Ô À¯ÁöÇϱ⠽±°Ô ÇØÁØ´Ù. (°ø°£À» Àý¾àÇϱâ À§ÇØ, Çϵå(hard)¸µÅ© ÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù. ÇÏÁö¸¸, ÇÏµå ¸µÅ©µÈ ÆÄÀÏÀ» ¼öÁ¤ÇÏ´Â °ÍÀº ¸µÅ©¸¦ ²÷À» ¼ö Àֱ⠶§¹®¿¡ Á¶½ÉÇؾßÇÑ´Ù.) ¼³Á¤ ÆÄÀÏ ºÐ¼®(parsing)ÀÌ ºü¸¦ ¼ö ÀÖ´Ù. ¼­ºñ½º°¡ ÇØ´ç ¸ðµâÀ» ÇÊ¿ä·Î ÇÒ ¶§, °ü·ÃµÈ ÆÄÀϸ¸ Àо ºÐ¼®ÇÏ¸é µÈ´Ù. °¢°¢ÀÇ Linux-PAM¼³Á¤ ÆÄÀϵéÀ» ÆÄÀϽýºÅÛÀÇ ÆÄÀÏ º¸È£¹æ¹ýÀ» »ç¿ëÇؼ­ Àб⠱ÇÇÑÀ» Á¦ÇÑÇÒ ¼ö ÀÖ´Ù. ÆÐÅ°Áö °ü¸®°¡ ½¬¿öÁø´Ù. »õ·Î¿î ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¼³Ä¡µÉ ¶§¸¶´Ù, /etc/pam.d/xxxxxx ÆÄÀÏÀ» °°ÀÌ ¼³Ä¡Çϱ⸸ ÇÏ¸é µÈ´Ù. ÀϹÝÀûÀÎ ¿É¼Ç ÀÎÀÚµé(generic optional arguments) ´ÙÀ½Àº ¾î¶°ÇÑ ¸ðµâÀ̵ç ÀνÄÇÒ ¼ö ÀÖ´Â °¡´É¼ºÀÌ Å« ¿É¼Ç ÀÎÀÚµéÀÌ´Ù. ÀÎÀÚµé(À̰͵鵵 Æ÷ÇÔÇؼ­)Àº ´ë°Ô ¼±ÅÃÀû(optional)ÀÌ´Ù. debug syslog(3) È£ÃâÀ» »ç¿ëÇؼ­ ½Ã½ºÅÛ ·Î±× ÆÄÀÏ¿¡ µð¹ö±× Á¤º¸¸¦ ³²±âµµ·Ï ÇÑ´Ù. no_warn ¸ðµâÀÌ ÀÀ¿ëÇÁ·Î±×·¥¿¡°Ô °æ°í(warning) ¸Þ½ÃÁö¸¦ º¸³»Áö ¾Êµµ·Ï ÇÑ´Ù. use_first_pass ¸ðµâÀÌ »ç¿ëÀÚ¿¡°Ô Æнº¿öµå¸¦ ¿ä±¸ÇÏÁö ¾Êµµ·Ï ÇÑ´Ù. ´ë½Å¿¡, ÀÌÀü¿¡ ÀԷ¹޾Ҵø Æнº¿öµå(¸ÕÀú ¼öÇàµÈ auth¸ðµâ ·ÎºÎÅÍ)¸¦ ¹Þ¾Æ¼­ »ç¿ëÇØ¾ß ÇÑ´Ù. Æнº¿öµå°¡ ¾ø´Ù¸é, »ç¿ëÀÚ´Â ÀÎÁõÀ» ¹ÞÁö ¸øÇÏ°Ô µÉ °ÍÀÌ´Ù.(ÀÌ ¿É¼ÇÀº auth¿Í password ¸ðµâµé¸¸ Àû¿ëµÈ´Ù.) try_first_pass ¸ðµâÀº ÀÌÀü¿¡ ÀԷ¹ÞÀº Æнº¿öµå(¸ÕÀú ¼öÇàµÈ auth ¸ðµâ·ÎºÎÅÍ)·Î ÀÎÁõÀ» ½ÃµµÇÑ´Ù. ¸¸ÀÏ Æнº¿öµå°¡ ¾ø´Ù¸é, »ç¿ëÀÚ¿¡°Ô Æнº¿öµå¸¦ ¹°¾îº»´Ù.(ÀÌ ¿É¼ÇÀº auth¸ðµâ¸¸ Àû¿ëµÈ´Ù.) use_mapped_pass ÀÌ ÀÎÀÚ´Â ÇöÀç ¹èÆ÷µÇ°í ÀÖ´Â Linux-PAM¿¡ ÀÖ´Â ¾î¶² ¸ðµâµµ Áö¿øÇÏÁö ¾Ê´Â´Ù. ÀÌ´Â ¹Ì±¹ ¾Ïȣȭ ¼öÃâ Á¦ÇÑ°ú °ü·ÃÇÏ¿© »ý±æ ¼ö ÀÖ´Â ¹®Á¦ ¶§¹®ÀÌ´Ù. ¹Ì±¹³»¿¡¼­´Â °³¹ßÀÚµéÀÌ ¹°·Ð ÀÚÀ¯·Ó°Ô ÀÌ ±â´ÉÀ» ±¸ÇöÇÒ ¼ö ÀÖ´Ù. (´Ù¸¥ ³ª¶ó¿¡¼­µµ ¸¶Âù°¡ÁöÀÌ´Ù.). ȣȯ¼ºÀÇ ÀÌÀ¯·Î DCE-RFC 86.0 (bibliography ÀåÀ» º¸¶ó) ¿¡¼­ Á¦¾ÈµÈµ¥·Î ÀÌ°ÍÀÇ »ç¿ëÀ» ±â¼úÇÑ´Ù. use_mapped_passÀÎÀÚ´Â ¾ÏȣȭµÇÁö ¾ÊÀº ÀÎÁõÅäÅ«À» ¿ä±¸ÇÏ´Â ¾ÕÀÇ ¸ðµâ·ÎºÎÅÍ ÀÎÁõ ÅäÅ«À» ¹ÞÀºÈÄ ´Ù½Ã ÀÌ°ÍÀ» »ç¿ëÇØ ¾ÏÈ£/º¹È£ Å°¸¦ »ý¼ºÇÏ¿© ÀÌ ¸ðµâ¿¡°Ô ÇÊ¿äÇÑ ÀÎÁõÅäÅ«À» ¾ÈÀüÇÏ°Ô ÀúÀåÇÏ°í ÀÐÀ» ¼ö ÀÖ°Ô ÇÑ´Ù. ÀÌ·± ¹æ¹ýÀ¸·Î, »ç¿ëÀÚ´Â ÇѹøÀÇ ÀÎÁõ ÅäÅ« ÀԷ¸¸À¸·Î ¿©·¯°³ÀÇ ¸ðµâ¿¡ ÀÇÇÑ ÀÎÁõ °úÁ¤À» Á¶¿ëÈ÷ Åë°úÇÒ ¼ö ÀÖ´Ù. ¾ÈÀüÇÏ°Ô Çϱâ À§ÇØ ¹ÏÀ»¸¸ÇÑ Æ°Æ°ÇÑ ¾Ïȣȭ¸¦ ¿ä±¸ÇÏÁö¸¸ ÆíÇÑ ±â´ÉÀÓÀº ºÐ¸íÇÏ´Ù. ÀÌ ÀÎÀÚ´Â auth¿Í password¸ðµâ¿¡¸¸ Àû¿ëµÈ´Ù. expose_account º¸Åë »ç¿ëÀÚ °èÁ¤¿¡ °üÇÑ Á¤º¸¸¦ ´©¼³ÇÏ´Â °ÍÀº ¸ðµâÀÌ Ã¤ÅÃÇÒ¸¸ÇÑ ¾ÈÀüÇÑ º¸¾ÈÁ¤Ã¥À̶ó ÇÒ ¼ö ¾ø´Ù. ¶§¶§·Î, »ç¿ëÀÚ À̸§À̳ª Ȩ µð·ºÅ丮³ª »ç¿ëÇÒ ½©¿¡ ´ëÇÑ Á¤º¸µéÀº »ç¿ëÀÚ °èÁ¤À» °ø°ÝÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù. ±×·¯³ª ¾î¶² »óȲ¿¡¼± ÀÌ·± Á¾·ùÀÇ Á¤º¸°¡ À§Çè¿ä¼Ò°¡ µÉ °Í °°Áö´Â ¾Ê´Ù: º¸¾ÈÀÌ À¯ÁöµÈ ȯ°æ¿¡¼­ Æнº¿öµå¸¦ ¹°¾îº¼ ¶§, »ç¿ëÀÚÀÇ ½ÇÁ¦ À̸§À» Ç¥½ÃÇÏ´Â °ÍÀº Ä£±ÙÇÑ ´À³¦À» ÁØ´Ù°í º¼ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. expose_accountÀÎÀÚ´Â °ü¸®ÀÚ¿¡ ÀÇÇØ ÀûÀýÇÑ °Í °°Àº °èÁ¤ Á¤º¸¿¡ ´ëÇØ ´ú ¾ö°ÝÇÏ°Ô ±¸ºÐÇϵµ·Ï Çϴ ǥÁØ ÀÎÀÚÀÌ´Ù. ¼³Á¤ÆÄÀÏ ³»¿ëÀÇ ¿¹(Example configuration file entries) ÀÌ Àå¿¡¼­´Â Linux-PAM¼³Á¤ ÆÄÀÏ¿¡¼­ º¼ ¼ö ÀÖ´Â ³»¿ë¿¡ ´ëÇÑ ¿¹Á¦ ¸î°³¸¦ ¼³¸íÇÑ´Ù. ½Ã½ºÅÛÀ» óÀ½À¸·Î ¼³Á¤ÇÒ ¶§, À̰͵éÀ» ±¸ÇöÇÏ´Â °Íº¸´Ù ´õ ½É°¢ÇÑ ÁþÀ» ÇÒÁöµµ ¸ð¸¥´Ù. µðÆúÆ® Á¤Ã¥(Default policy) ½Ã½ºÅÛÀÌ ¾ÈÀüÇؾßÇÑ´Ù°í »ý°¢µÇ¸é, 'OTHER' Ç׸ñ¿¡ ´ëÇؼ­ ¾ÈÀüÇÑ ¼³Á¤À» ÇØ¾ß ÁÁÀ» °ÍÀÌ´Ù. ´ÙÀ½Àº ½ÉÇÏ°Ô ºÒ½ÅÇϵµ·Ï ¼³Á¤µÇ¾î ÀÖ´Â °ÍÀÌ´Ù(óÀ½ ½ÃÀÛÇϱ⿡ ³ª»Û °ÍÀº ¾Æ´Ï´Ù!): # # default; deny access # OTHER auth required /usr/lib/security/pam_deny.so OTHER account required /usr/lib/security/pam_deny.so OTHER password required /usr/lib/security/pam_deny.so OTHER session required /usr/lib/security/pam_deny.so ±Ùº»ÀûÀ¸·Î ¾ÈÀüÇÑ ¹Ý¸é, À߸ø ¼³Á¤µÈ ½Ã½ºÅÛ¿¡°Ô´Â ´ë´ÜÈ÷ ÁÁ´Ù°í ¸»ÇÒ ¼ö ¾ø´Ù. ¿¹¸¦µé¾î, ³ª¸ÓÁö ÆÄÀϵéÀÌ À߸ø ¾º¿©Áö¸é ¸ðµç »ç¿ëÀÚµéÀ» ¸·¾Æ¹ö¸± °¡´É¼ºÀÌ ÀְԵȴÙ. pam_deny¸ðµâ(³ªÁß¿¡ ¼³¸íµÈ´Ù)Àº ¼³Á¤Çϱ⿡ ÁÁÁö ¾Ê´Ù. ¿¹¸¦ µé¾î, ¼öÇàµÉ¶§ ·Î±×¸¦ ÀüÇô ³²±âÁö ¾Ê±â¶§¹®¿¡, »ç¿ëÀÚ°¡ ¼­ºñ½º ÇÁ·Î±×·¥À» »ç¿ëÇϴµ¥ ½ÇÆи¦ ÇßÀ»¶§ °ü¸®ÀÚ¿¡°Ô ¾Ë¸®Áö ¾Ê´Â´Ù¸é °ü¸®ÀÚ´Â ½Ã½ºÅÛÀÇ ¼³Á¤ ½Ç¼ö¿¡ ´ëÇÑ »ç½ÇÀ» ¸ð¸¥Ã¤·Î ¿À·§µ¿¾È Áö³¾°Í ÀÌ´Ù. À§ÀÇ ¿¹Á¦¿Í °°Àº ¼³Á¤¾Õ¿¡ ´ÙÀ½À» Ãß°¡ÇÏ¸é °ü¸®ÀÚ¿¡°Ô ÀûÀýÇÑ °æ°í ¸Þ½ÃÁö¸¦ ÁÙ °ÍÀÌ´Ù. # # default; wake up! This application is not configured # OTHER auth required /usr/lib/security/pam_warn.so OTHER password required /usr/lib/security/pam_warn.so µÎÁÙÀÇ 'OTHER auth'°¡ °°Àº typeÀÇ ¿©·¯¸ðµâ ÀûÃþ»ç¿ëÀÇ ¿¹ÀÌ´Ù. /etc/pam.d/¼³Á¤À» »ç¿ëÇÏ´Â ½Ã½ºÅÛ¿¡¼­´Â ¾Æ·¡¿Í °°Àº ÆÄÀÏÀÌ À§¿¡¼­ ¾ê±âÇÑ µðÆúÆ® ¼³Á¤ÀÌ µÈ´Ù: # # default configuration: /etc/pam.d/other # auth required /usr/lib/security/pam_warn.so auth required /usr/lib/security/pam_deny.so account required /usr/lib/security/pam_deny.so password required /usr/lib/security/pam_warn.so password required /usr/lib/security/pam_deny.so session required /usr/lib/security/pam_deny.so ÀÌ°Ô /etc/pam.d/ÇüÅÂÀÇ ¼³Á¤ ¹æ¹ýÀÇ ¿¹·Î º¸¿©ÁÖ´Â À¯ÀÏÇÑ ¿¹ÀÌ´Ù. ³ª¸ÓÁö ¿¹µé¿¡¼­ ÀÌ ¼³Á¤ ¹æ¹ýÀ¸·Î º¯È¯ÇÏ´Â ¹æ¹ýÀº ¸íÈ®ÇÒ °ÍÀÌ´Ù. ´ú ¹Î°¨ÇÑ ÄÄÇ»ÅÍ, °ü¸®ÀÚ°¡ Linux-PAMÀÇ ¸¹Àº ±â´ÉµéÀ» ¹«½ÃÇÑä·Î µÎ°í ½ÍÀº °æ¿ì´Â ´ÙÀ½ÀÇ ÁÙµéÀÇ ¿¹ (/etc/pam.conf¿¡¼­)°¡ ÀüÅëÀûÀ¸·Î Ä£¼÷ÇÑ linux ¼³Á¤À» ¸ð¹æÇÑ ¼³Á¤ÀÌ µÉ ¼ö ÀÖ´Ù. # # default; standard UNIX access # OTHER auth required /usr/lib/security/pam_unix_auth.so OTHER account required /usr/lib/security/pam_unix_acct.so OTHER password required /usr/lib/security/pam_unix_passwd.so OTHER session required /usr/lib/security/pam_unix_session.so [¿ªÁÖ: Áö±Ý ¹öÁ¯¿¡¼­´Â pam_unix_auth, pam_unix_acct, pam_unix_passwd, pam_unix_sessionÀÌ pam_unix.so·Î ÅëÇյǾú°í, Á»´õ ¹ßÀüÇÑ ÇüÅ·Πpam_pwdb.so°¡ Á¸ÀçÇÑ´Ù.] ÀÌ ³»¿ëÀÌ ÀϹÝÀûÀ¸·Î ´ëºÎºÐÀÇ ÀÀ¿ëÇÁ·Î±×·¥¿¡ ´ëÇØ Ãʱ⼳Á¤À¸·Î »ç¿ëµÉ ¼ö ÀÖ´Ù. ºÒÇàÇÏ°Ôµµ, ´ëºÎºÐÀÌ ¸ðµÎ¶ó´Â °ÍÀº ¾Æ´Ï´Ù. ftpd°°Àº °æ¿ì´Â anonymous-ftp¸¦ °¡´ÉÇÏ°Ô Çϱâ À§ÇØ Ãß°¡ÀûÀÎ ¼³Á¤ÀÌ ÇÊ¿äÇÏ´Ù. anonymous-ftp¸¦ °¡´ÉÇÏ°Ô Çϱâ À§ÇØ ´ÙÀ½ÀÇ ÁÙÀÌ µðÆúÆ®(OTHER) ¼³Á¤À» ´ëüÇؼ­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. (*°æ°í* 1996/12/28ÀÌÈÄ, ¾î¶°ÇÑ ftpd¿Íµµ ÀÌ ¼³Á¤ÀÌ Á¦´ë·Î µ¿ÀÛÇÏÁö ¾Ê¾Ò´Ù. °á°úÀûÀ¸·Î ÀÌ ¼³¸íÀº ¹Ù²î°Å³ª ÀÀ¿ëÇÁ·Î±×·¥ÀÌ °íÃÄÁú °ÍÀÌ´Ù.) # # ftpd; add ftp-specifics. These lines enable anonymous ftp over # standard UNIX access (the listfile entry blocks access to # users listed in /etc/ftpusers) # ftpd auth sufficient /usr/lib/security/pam_ftp.so ftpd auth required /usr/lib/security/pam_unix_auth.so use_first_pass ftpd auth required /usr/lib/security/pam_listfile.so \ onerr=succeed item=user sense=deny file=/etc/ftpusers /etc/pam.conf¿¡ ÇØ´ç ¼­ºñ½º(¿©±â¼­´Â ftpd)ÀÇ ¼³Á¤ÆÄÀÏÀÌ ÀÖÀ¸¸é µðÆúÆ® ¼³Á¤ÀÌ ¹«½ÃµÇ±â ¶§¹®¿¡ µÎ¹ø° ÁÙÀÌ ÇÊ¿äÇÏ´Ù. ´Ù½Ã Çѹø ÀÌ ¿¹Á¦´Â authentication¸ðµâ¿¡ À־ °°Àº typeÀÇ ¿©·¯ ¸ðµâÀ» ÀûÃþÇؼ­ °°ÀÌ »ç¿ëµÉ ¼ö ÀÖÀ½À» º¸¿©ÁØ´Ù. sufficient control-flagÀ» »ç¿ëÇßÀ½À» ÁÖ¸ñÇ϶ó. ÀÌ°ÍÀº ÀÌ ¸ðµâÀÌ »ç¿ëÀÚ¸¦ ÀÎÁõÇϸé ÀÌÈÄÀÇ auth¸ðµâÀº ¹«½ÃÇ϶ó´Â °ÍÀÌ´Ù. ¶ÇÇÑ 'use_first_pass' module-argument¸¦ »ç¿ëÇßÀ½À» ÁÖ¸ñÇ϶ó. ÀÌ°ÍÀº UNIX ÀÎÁõ ¸ðµâÀÌ »ç¿ëÀÚ¿¡°Ô Æнº¿öµå¸¦ ¹°¾îº¸Áö ¾Ê°í ¾Õ¼­ ½ÇÇàµÈ ftp¸ðµâ¿¡ ÀÇÇØ ¾òÀº Æнº¿öµå¸¸À» »ç¿ëÇϵµ·Ï ¼³Á¤ÇÑ´Ù. Linux-PAMÀÇ º¸¾È À̽´(Security issues of Linux-PAM) ÀÌ Àå¿¡¼­´Â Linux-PAMÀ» º¸¾È°¨°¢À» °®°í »ç¿ëÇÏ´Â ÁÁÀº »ç·Ê¿¡ ´ëÇØ ³íÀÇÇÒ °ÍÀÌ´Ù. ³»¿ëÀÌ ºÎÁ·Çѵ¥... Á¦¾ÈÀº ȯ¿µÇÑ´Ù! ¹º°¡°¡ À߸ø µÇ°í ÀÖ´Ù¸é(If something goes wrong) Linux-PAMÀº ½Ã½ºÅÛÀÇ º¸¾ÈÀ» º¯°æ½ÃÅ°´Â ½É°¢ÇÑ ÀáÀç·ÂÀ» °®°í ÀÖ´Ù. ´ç½ÅÀº ¾Æ¹«·± º¸¾Èµµ ÇÏÁö ¾Ê°Ô ÇÒ ¼öµµ ÀÖ°í, ¿Ïº®º¸¾È (¾Æ¹«µµ Á¢±ÙÇÒ ¼ö ¾ø°Ô)À» ÇÒ ¼öµµ ÀÖ´Ù. º¸ÅëÀº Linux-PAMÀÌ ÈÄÀÚÀÇ °æ¿ì ¿¡·¯¸¦ ³½´Ù. ¼³Á¤¿¡·¯´Â ½Ã½ºÅÛÀ» ºÎºÐÀûÀ¸·Î ¶Ç´Â ¿ÏÀüÈ÷ Á¢±ÙÀ» ¸·¾Æ¹ö¸± ¼ö ÀÖ´Ù. °¡Àå Linux-PAMÀ» ¼³Á¤ÇÒ ¶§ ºÎ´ÚÄ¡°Ô µÇ´Â °¡Àå ±â°¡ ¸·Èù »óȲÀº ¼³Á¤ÆÄÀÏ(/etc/pam.d/* ³ª /etc/pam.conf)À» Áö¿ì´Â °ÍÀÌ´Ù. ÀÌ·¸°Ô µÇ¸é ´ç½ÅÀÇ ½Ã½ºÅÛÀº ´ç½ÅÀڽŵµ ¾µ ¼ö ¾ø°Ô ¿ÏÀüÈ÷ Àá°Ü¹ö¸°´Ù! À̸¦ º¹±¸Çϱâ À§ÇÑ ÃÖ¼±ÀÇ ¹æ¹ýÀº ½Ã½ºÅÛÀ» ÀçºÎÆÃÇÑ ÈÄ ½Ì±Û À¯Àú ¸ðµå·Î µé¾î°¡¼­ ¹®Á¦¸¦ °íÄ¡´Â °ÍÀÌ´Ù. ´ÙÀ½Àº ÀÌ ¹®Á¦¿¡ ´ëÇØ David Wood°¡ ´äÇÑ email¿¡¼­ ±ÍÁßÇÑ ³»¿ëÀ» ÀοëÇÑ °ÍÀÌ´Ù. > ³»°¡ µµ´ëü Áö±Ý ¹«¾ùÀ» ÇѰ̴ϱî? ¾Ë¾Ò½À´Ï´Ù. ÁøÁ¤Çϼ¼¿ä. ´ç½ÅÀÌ ¿ì¼± PAMÀ» »ç¿ëÇÏ´Â »ç¿ëÀÚÀÇ Àý¹Ý °¡·®¿¡°Ô ÀÌ ÀÏÀÌ »ý±ä´Ù´Â °ÍÀ» ¾Æ¼Å¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ¿©±â¿¡¼­µµ Çѹøµµ¾Æ´Ï°í µÎ¹øµµ ¾Æ´Ï°í ¼¼¹øÀ̳ª ÀϾ½À´Ï´Ù. °á±¹, ¸Å¹ø ÇØ°áÃ¥Àº Ç×»ó °°¾Ò½À´Ï´Ù. ù°·Î, ´ç½ÅÀÌ LILO¸¦ µô·¹À̸¦ °®µµ·Ï ¼³Á¤Ç߱⸦ ¹Ù¶ø´Ï´Ù. °¡´ÉÇÏ´Ù¸é, ¸®ºÎÆÃÀ» ÇÏ°í shift³ª tabÀ» Ä£ ÈÄ ¾Æ·¡¿Í °°ÀÌ Ä¡½Ê½Ã¿À: LILO boot: linux single ('linux'¸¦ '´ç½ÅÀÌ ¾²´Â linux À̹ÌÁö À̸§'À¸·Î ¹Ù²Ù¼¼¿ä). ÀÌ°ÍÀº ´ç½ÅÀÌ ·Î±×ÀÎ ¾øÀÌ ½Ã½ºÅÛ¿¡ µé¾î°¡°Ô ÇØÁÙ °ÍÀÔ´Ï´Ù. Äֿܼ¡¼­ linux¸Ó½Å¿¡ ħÀÔÇÏ´Â °ÍÀÌ ¾ó¸¶³ª ½¬¿îÁö ±Ã±ÝÇØÇÏÁö ¾Ê¾Ò½À´Ï±î? ÀÌÁ¦ ´ç½Åµµ ¾Ð´Ï´Ù. ÀÌ°ÍÀ» ÇÒ ¼ö ¾ø´Ù¸é, bootkernel Ç÷ÎÇÇ¿Í slackwareÀÇ rescue.gz°°Àº rootµð½ºÅ©¸¦ ±¸ÇϽʽÿÀ. (RedHatÀÇ ¼³Ä¡ µð½ºÅ©¸¦ ÀÌ ¸ðµå·Îµµ »ç¿ë°¡´ÉÇÕ´Ï´Ù.) µÎ °æ¿ì ¸ðµÎ, root ÇÁ·ÒÇÁÆ®¸¦ ´Ù½Ã º¼ ¼ö ÀÖÀ»°Ì´Ï´Ù. µÎ¹ø°·Î, ´ç½ÅÀÌ pam ¼³Ä¡¸¦ ¿ÏÀüÈ÷ ¸Á°¡¶ß¸®Áö ¾Ê¾Ò´Ù°í °¡Á¤ÇÏ°Ú½À´Ï´Ù. Áï, ¼³Á¤ÆÄÀϸ¸ ¾ø¾Ý°ÍÀ¸·Î ¾Ë°Ú½À´Ï´Ù. ¿©±â¿¡ ¾î¶»°Ô ´ç½ÅÀÇ ¼³Á¤ÆÄÀÏÀ» ´Ù½Ã ¸ÚÀÖ°Ô ¸¸µå´ÂÁö º¸¿©µå¸®°Ú½À´Ï´Ù: cd /etc mv pam.conf pam.conf.orig mv pam.d pam.d.orig mkdir pam.d cd pam.d ±×¸®°í vi¸¦ »ç¿ëÇؼ­ "other"¶ó´Â ÆÄÀÏÀ» ÀÌ µð·ºÅ丮¿¡ ¸¸µå½Ê½Ã¿À. ÀÌ ÆÄÀÏ¿¡ ¾Æ·¡ÀÇ ³×ÁÙÀ» Æ÷ÇÔÇϵµ·Ï ÇϽʽÿÀ: auth required pam_unix_auth.so account required pam_unix_acct.so password required pam_unix_passwd.so session required pam_unix_session.so ÀÌÁ¦ ´ç½ÅÀº ´ç½ÅÀÌ »ç¿ëÇÏ´ø´ë·Î µ¿ÀÛÇÏ´Â °¡Àå ´Ü¼øÇÑ PAM¼³Á¤ ÆÄÀÏÀ» °®°Ô µÇ¾ú½À´Ï´Ù. ¸ðµç°Ô ¸¶¹ýó·³ ´Ù½Ã µ¿ÀÛÇÒ °ÍÀÔ´Ï´Ù. ALT-F2¸¦ ´©¸£°í, ´Ù¸¥ ¹öÃò¾ó Äֿܼ¡¼­ ·Î±×ÀÎ Çغ¸½Ê½Ã¿À. ¸¸ÀÏ Á¦´ë·Î µÇÁö ¾Ê´Â´Ù¸é, ´ç½ÅÀº ´õ Å« ¹®Á¦¸¦ °¡Áö°í Àְųª, ¼³Á¤ÆÄÀÏ¿¡ ¿ÀÀÚ°¡ ÀÖÀ» °Ì´Ï´Ù. ÀÌ ½Ã½ºÅÛÀÇ ÀÌ»óÇÑÀÏÀÌ ¼³Á¤ÆÄÀÏ¿¡ ¿ÀŸ°¡ ÀÖ´Â °ÍÀ̶ó¸é Äֿܼ¡¼­´Â ¿¡·¯ ¸Þ½ÃÁö¸¦ º¼¼ö ¾ø°í, logÆÄÀÏ¿¡¼­ º¼ ¼ö ÀÖ½À´Ï´Ù. Çѹø º¸¼¼¿ä. ('tail /var/log/messages'¶ó°í Çغ¸¼¼¿ä) ÀÌÁ¦ºÎÅÍ ¿¹Àüó·³ µ¹¾Æ°¡¼­ ½ÇÁ¦ ¼³Á¤ÆÄÀÏÀ» °¡Á®¿É½Ã´Ù. ¸Á°¡¶ß·Áµµ »ó°ü¾ø´Â ½Ã½ºÅÛ¿¡¼­ ½ÃÇèÀ» °ÅÄ£ÈÄ¿¡ °¡Á®¿À´Â °ÍÀÌ ÁÁ°ÚÁö¿ä. :/ ¾à°£ÀÇ Áö½Ã»çÇ×(RedHat¿¡¼­´Â ¸ðµÎ Àß µÉ°Ì´Ï´Ù.): ÃֽŠpam, pamconfig, pwdb¸¦ redhatÀÇ current µð·ºÅ丮¿¡¼­ ÀνºÅçÇϼ¼¿ä. rpm -Uvh [¾Æ¸¶ --forceµµ] pam-* pamconfig-* pwdb-* ±×¸®°í, ÃÖ½ÅÀÇ libc, util-linux, wuftp, NetKitÀ» ¼³Ä¡/À缳ġÇß´ÂÁö È®ÀÎÇϼ¼¿ä. xlock°°Àº X ÀÀ¿ëÇÁ·Î±×·¥¿¡ ¿µÇâÀ» ÁÖ´Â »õ ¹öÁ¯ÀÇ ¼³Ä¡¸¦ ½ÃµµÇÏ´Ù°¡ ´çÇÏ´Â ÅðÂ¥´Â ¾ÆÁ÷±îÁö´Â ¾ø¾ú½À´Ï´Ù. ¾àÇÑ 'other'¼³Á¤ÇÏÁö ¾Ê±â(Avoid having a weak 'other' configuration) ¾àÇÏ°Ô µðÆúÆ®(OTHER)¼³Á¤À» µÎ´Â °ÍÀº ÁÁÁö ¾Ê´Ù. PAMÀ» Áö¿øÇÏ´Â ÀÀ¿ëÇÁ·Î±×·¥µé¿¡ ´ëÇØ ÀÌ µðÆúÆ® ¼³Á¤ÀÌ Àû¿ëµÇ°í ¸¸¾à ÀÌ ¼³Á¤ÀÌ ¾àÇÏ´Ù¸é, ½Ã½ºÅÛÀÌ °ø°Ý¹Þ±â ½±´Ù. ¿©±â¿¡ 'other'¼³Á¤ÆÄÀÏ¿¡ ´ëÇÑ ¿¹°¡ ÀÖ´Ù. pam_deny ¸ðµâÀº Ç×»ó Á¢±ÙÀ» ºÒÇãÇÏ°í pam_warn ¸ðµâÀº syslog ¸Þ½ÃÁö¸¦ auth.notice¿¡°Ô º¸³¾ °ÍÀÌ´Ù: # # The PAM configuration file for the `other' service # auth required pam_deny.so auth required pam_warn.so account required pam_deny.so account required pam_warn.so password required pam_deny.so password required pam_warn.so session required pam_deny.so session required pam_warn.so »ç¿ë°¡´ÉÇÑ ¸ðµâµé¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸í(A reference guide for available modules) ÀÌÀå¿¡¼­´Â Linux-PAM¿¡¼­ »ç¿ë°¡´ÉÇÑ ¿©·¯ ¸ðµâµé¿¡ ´ëÇÑ ¼³¸íÀ» ÇÏ°í ÀÖ´Ù. ´ëºÎºÐ ÀÌ ¸ðµâµéÀº ¹«·á·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì´Â Ç¥½Ã¸¦ ÇسõÀ» °ÍÀÌ´Ù. ¿¹Á¦µéÀ» º¹»çÇÒ ¶§¿¡´Â 2Àå¿¡¼­ ¾ð±ÞÇÑ ³»¿ëÀ» ²À Àаí ÁÖÀÇÇϱ⠹ٶõ´Ù. The access module °³¿ä ¸ðµâ À̸§: pam_access ÀúÀÚ: Alexei Nogin <alexei@nogin.dnttm.ru> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: account ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: ¼³Á¤ ÆÄÀÏÀ» ¿ä±¸ÇÑ´Ù. µðÆúÆ®´Â /etc/security/access.confÀÌÁö¸¸, ¹Ù²Ü ¼ö ÀÖÀ½. ³×Æ®¿öÅ© ÀνÄ: PAM_TTY°¡ ÁöÁ¤µÇ¾î ÀÖ´Ù¸é, PAM_TTY¸¦ ÅëÇؼ­ ¾ò°í, ±×·¸Áö ¾Ê´Ù¸é ttyname()À¸·Î stdinÆÄÀÏ ¼³¸íÀÚ(descriptor)ÀÇ tty À̸§À» ¾ò´Â ½Ãµµ¸¦ÇÑ´Ù. Ç¥ÁØ gethostname(), yp_get_default_domain(), gethostbyname()È£Ãâ. netgroupÁö¿øÀ» À§ÇÑ NIS°¡ »ç¿ë. ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í logdaemonÇüÅÂÀÇ login Á¢±Ù Á¦¾î¸¦ Á¦°øÇÑ´Ù. °èÁ¤°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: accessfile=/path/to/file.conf ¼³¸í: ÀÌ ¸ðµâÀº login name, È£½ºÆ®(¶Ç´Â µµ¸ÞÀÎ) À̸§, ÀÎÅÍ³Ý ÁÖ¼Ò(¶Ç´Â ³×Æ®¿öÅ© ¹øÈ£), ¶Ç´Â ³×Æ®¿öÅ©°¡ ¾Æ´Ñ loginÀÏ°æ¿ì Å͹̳ΠÀ̸§À» ¹ÙÅÁÀ¸·Î logdaemonÇüÅÂÀÇ loginÁ¢±Ù Á¦¾î¸¦ Á¦°øÇÑ´Ù. Áø´ÜÀº syslog(3)¸¦ ÅëÇØ º¸°íµÈ´Ù. Wietse Venema°¡ Á¦ÀÛÇÑ logdaemon-5.6ÀÇ login_access.c¸¦ A. NoginÀÌ ¸î°¡Áö ¼öÁ¤ÇØ »ç¿ëÇÏ¿´´Ù. ÀÌ ¸ðµâÀÇ µ¿ÀÛÀº ´ÙÀ½ÀÇ ÀÎÀÚ·Î Á¦¾îÇÒ ¼ö ÀÖ´Ù: * accessfile=/path/to/file.conf - µðÆúÆ® ´ë½Å »ç¿ëÇÒ access¼³Á¤ ÆÄÀÏÀ» °¡¸£Å²´Ù. ÀÌ°ÍÀº ¼­·Î ´Ù¸¥ ¼­ºñ½ºµéÀÌ °¢ÀÚÀÇ accessÆÄÀÏÀ» »ç¿ëÇÒ ¶§ À¯¿ëÇÏ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ¸î¸î °èÁ¤Àº µ¿ÀÛÇÏÁö¸¸ ÀüºÎ login ÇÏ°Ô ÇÒ ÇÊ¿ä°¡ ¾ø´Â NIS¼­¹ö³ª ¸ÞÀÏ ¼­¹ö°°Àº °ü¸®¿ë ±â°è¿¡ ÀÌ ¸ðµâÀ» »ç¿ëÇÒ °ÍÀ» ±ÇÀåÇÑ´Ù. /etc/pam.d ÇüÅÂÀÇ ¼³Á¤ÀÇ °æ¿ì¿¡, ¸ðµâÀÌ /lib/security¿¡ ÀÖ´Ù¸é, /etc/pam.d/login, /etc/pam.d/rlogin, /etc/pam.d/rsh ±×¸®°í /etc/pam.d/ftp¿¡ ´ÙÀ½ÀÇ ÁÙÀ» ¿ì¼± Ãß°¡ÇÑ´Ù: account required /lib/security/pam_access.so ½Ã½ºÅÛÀÌ .rhostsÆÄÀÏÀ» ¹«½ÃÇÏÁö ¾Ê´Â´Ù¸é ÀÌ ¸ðµâÀÇ »ç¿ëÀÌ È¿°ú°¡ ¾ø´Ù´Â °ÍÀ» ÁÖ¸ñÇ϶ó. pam_rhosts_auth¹®¼­¸¦ º¸¶ó. ¿¹Á¦ access.conf¼³Á¤ ÆÄÀÏÀº ¹èÆ÷ÆÇ¿¡ Æ÷ÇԵǾî ÀÖ´Ù. Chroot °³¿ä ¸ðµâ À̸§: pam_chroot ÀúÀÚ: Bruce Campbell <brucec@humbug.org.au> À¯Áöº¸¼ö: ÀúÀÚ; proposed on 20/11/96 - email for status Á¦°øµÇ´Â °ü¸® ±×·ì: account; session; authentication ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ±â·ÏµÇÁö ¾Ê¾ÒÀ½ ½Ã½ºÅÛ ÀÇÁ¸¼º: ³×Æ®¿öÅ© ÀνÄ: localhost·Î °¡Á¤ÇÔ ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº ÀÏ¹Ý »ç¿ëÀڵ鿡°Ô ÆÄÀϽýºÅÛÀÇ ·çÆ®¸¦ ¼ÓÀ̱â À§ÇÑ ¸ñÀûÀ¸·Î ¸¸µé¾îÁ³´Ù.(¿¹¸¦µé¾î, »ç¿ëÀÚÀÇ '/'´Â ½ÇÁ¦·Î´Â /some/where/elseÀÌ´Ù.) ¿©·¯ ºÐ·ùÀÇ »ç¿ëÀÚµéÀÌ ½Ã½ºÅÛÀ» »ç¿ëÇÏ°í, ´ç½ÅÀÌ º¸¾È¿¡ °üÇØ ¾à°£ ½Å°æÀ» ¸¹ÀÌ ¾´´Ù¸é À¯¿ëÇÒ °ÍÀÌ´Ù. ½Ã½ºÅÛ¿¡¼­ »ç¿ëÀÚµéÀÌ º¼¼ö ÀÖ´Â °ÍÀ» Á¦ÇÑÇÏ°í ½ÇÇà½Ãų ¼ö ÀÖ´Â ÇÁ·Î±×·¥À» Á¦ÇÑÇϴµ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù. °èÁ¤°ü¸® ±¸¼º¿ä¼Ò: ³»¿ëÀÌ ¾ÆÁ÷ ¾øÀ½. ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò: ³»¿ëÀÌ ¾ÆÁ÷ ¾øÀ½. ¼¼¼Ç°ü¸® ±¸¼º¿ä¼Ò: ³»¿ëÀÌ ¾ÆÁ÷ ¾øÀ½. ÀνÄÇÏ´Â ÀÎÀÚµé: PAM ¹öÁ¯¿¡ ¸Â´Â ÀÎÀÚµé°ú ·Î±× ¼öÁØÀº ÀÛ¾÷ÁßÀÌ´Ù. ¼³¸í: ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: Àû´çÇÑ ÇÁ·Î±×·¥µéÀÇ ¸®½ºÆ®¸¦ Á¦°øÇ϶ó - 'cat', 'ls', 'rm', 'cp', 'ed'°°Àº °Íµé. ³Ê¹« ½ÉÇÏ°Ô ÇÏÁö¸¶¶ó.(¿¹¸¦µé¾î °¢ »ç¿ëÀÚ¸¶´Ù º°µµÀÇ È¯°æÀ» ±¸¼ºÇÒ ¼ö ÀÖÁö¸¸ ¸¸¾à ±×·¸°Ô ÇÑ´Ù¸é µð½ºÅ© ³¶ºñ°¡ ½ÉÇÒ°ÍÀÌ´Ù.) Cracklib pluggable password strength-checker °³¿ä ¸ðµâ À̸§: pam_cracklib ÀúÀÚ: Cristian Gafton <gafton@redhat.com> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: password ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: libcrack ½Ã½ºÅÛ ¶óÀ̺귯¸®¿Í ½Ã½ºÅÛ »çÀü:/usr/lib/cracklib_dict. ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº passwordÀÇ Æ°Æ°ÇÑ Á¤µµ¸¦ °Ë»çÇϵµ·Ï Çϱâ À§ÇØ ÀÀ¿ëÅ©·Î±×·¥ÀÇ Æнº¿öµå ½ºÅÿ¡ µî·ÏÇؼ­ »ç¿ëµÈ´Ù. ÀÌ ¸ðµâÀº ´ÙÀ½°ú °°ÀÌ µ¿ÀÛÇÑ´Ù: ¿ì¼± Æнº¿öµåÀÇ Æ°Æ°ÇÔÀ» °Ë»çÇϱâ À§ÇØ Cracklib ·çƾÀ» È£ÃâÇÑ´Ù. Æнº¿öµå°¡ crackµÇÁö ¾ÊÀ¸¸é ´ÙÀ½ÀÇ Ãß°¡ÀûÀÎ °Ë»ç¸¦ ÇÑ´Ù: ȸ¹® - »õ Æнº¿öµå°¡ ¿¹Àü Æнº¿öµåÀÇ È¸¹®(palindrome) - ¿ªÁÖ: ¾ÕÀ¸·Î ÀÐÀ¸³ª µÚ·Î ÀÐÀ¸³ª °°Àº ±ÛÀÚ - ÀÌ ¾Æ´Ñ°¡? ´ë¼Ò¹®ÀÚ º¯°æ¸¸ ÇÑ °ÍÀΰ¡? - »õ Æнº¿öµå°¡ ¿¹Àü Æнº¿öµå¿¡¼­ ´ë¼Ò¹®ÀÚ º¯°æ¸¸ µÈ°Ô ¾Æ´Ñ°¡? À¯»ç¼º - »õ Æнº¿öµå°¡ ¿¹Àü Æнº¿öµå¿Í ¾ó¸¶³ª ¸¹ÀÌ ºñ½ÁÇÑ°¡? ÀÌ°ÍÀº 'difok' ÀÎÀÚ¿¡ ÀÇÇØ ÁÖ·Î Á¶ÀýµÈ´Ù. 'difok'´Â »õ Æнº¿öµå°¡ ¿¹Àü Æнº¿öµå¿Í ¾ó¸¶³ª ¸¹Àº ´Ù¸¥ ¹®ÀÚµéÀ» °¡Áö°í ÀÖ¾î¾ß Çϴ°¡¸¦ ³ªÅ¸³½´Ù. ÀÌ°ÍÀÇ µðÆúÆ®°ªÀº 10À̰ųª »õ Æнº¿öµåÀÇ Å©±âÀÇ 1/2Áß ÀÛÀº °ªÀÌ´Ù. ±æ°í º¹ÀâÇÑ Æнº¿öµå·Î º¯°æÇؾ߸¸ ÇÏ´Â °ÍÀ» ÇÇÇϱâ À§ÇØ 'difignore'°¡ ÀÖ´Ù. ÀÌ°ÍÀº »õ Æнº¿öµå ±æÀÌÀÇ ÃÖ¼Ò°ªÀ» Á¤Çؼ­, ±æÀÌ°¡ ±× ÀÌ»óÀ̸é 'difok'¸¦ ¹«½ÃÇÑ´Ù. difignoreÀÇ µðÆúÆ®°ªÀº 23ÀÌ´Ù. ´Ü¼øÇÔ - »õ Æнº¿öµå°¡ ³Ê¹« ªÁö ¾ÊÀº°¡? ÀÌ°ÍÀº ´ÙÀ½ 5°³ÀÇ ÀÎÀÚ·Î Á¶ÀýµÈ´Ù. 'minlen', 'dcredit', 'ucredit', 'lcredit', 'ocredit'ÀÌ´Ù. ÀÌ ÀÎÀڵ鿡 ´ëÇÑ ±âº»°ª°ú µ¿ÀÛ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀº ÀÎÀÚ¿¡ ´ëÇÑ ¼³¸íÀÌ ÀÖ´Â ¶õÀ» º¸¶ó. µ¹·Á½è´Â°¡? - »õ Æнº¿öµå°¡ ¿¹Àü Æнº¿öµå¸¦ µ¹·Á¾²±â¸¸ ÇÑ °ÍÀÌ ¾Æ´Ñ°¡? ÀÌ¹Ì »ç¿ëµÈ Æнº¿öµå - »õ Æнº¿öµå°¡ °ú°Å¿¡ »ç¿ëµÇ¾ú´Â°¡? ¿¹Àü Æнº¿öµå´Â /etc/security/opasswd¿¡ ÀúÀåµÈ´Ù. ÀÌ ¸ðµâÀº ÀÎÀÚ ¾øÀÌ »ç¿ëµÇ¸é Ç¥ÁØ À¯´Ð½º Æнº¿öµå ¾Ïȣȭ ¹æ½ÄÀ» »ç¿ëÇÑ´Ù. md5¾Ïȣȭ¸¦ »ç¿ëÇϸé, Æнº¿öµå´Â 8ÀÚ ÀÌ»óÀ̾ µÇ°í, ÀÌ ¸ðµâÀÇ µðÆúÆ® ¼³Á¤Àº »ç¿ëÀÚ°¡ ¸¸Á·½º·¯¿î »õ Æнº¿öµå¸¦ ¼±ÅÃÇϴµ¥ ¾î·Æ°Ô ¸¸µé ¼ö ÀÖ´Ù. ¸í¹éÈ÷, »õ Æнº¿öµå°¡ ¿¹Àü Æнº¿öµåÀÇ 1/2ÀÌ»óÀÇ ¹®ÀÚµéÀ» Æ÷ÇÔÇÏÁö ¾Êµµ·Ï ÇÏ´Â °ÍÀº »ç¼ÒÇÏÁö ¾ÊÀº Á¦¾àÀÌ µÇ¾ú´Ù. ¿¹¸¦ µé¾î, ¿¹Àü Æнº¿öµå°¡ 'the quick brown fox jumped over the lazy dogs'ÀÌ¸é ¹Ù²Ù±â°¡ ¾î·Æ´Ù. °Ô´Ù°¡ µðÆúÆ®¼³Á¤ÀÌ 5ÀÚÀÇ ÂªÀº ±æÀÌÀÇ Æнº¿öµå¸¦ Çã¿ëÇÑ´Ù. md5½Ã½ºÅÛ¿¡ ´ëÇؼ­, »õ Æнº¿öµåÀÇ ÃÖ¼Ò ±æÀ̸¦ ´Ã¸®´Â °ÍÀº ÁÁÀº »ý°¢ÀÌ´Ù. ÀÌ·¸°Ô ÇÏ¸é ¼­·Î´Ù¸¥ Á¾·ùÀÇ ¹®ÀÚµéÀ» »ç¿ëÇؼ­ Æнº¿öµå¸¦ ¸¸µé°ÔÇÏ´Â °ÍÀ» Àå·ÁÇÏ°í, µ¿½Ã¿¡ ¿¹Àü Æнº¿öµå¿¡ ÀÖ´Â ¹®ÀÚµé ´ëºÎºÐÀ» ±×´ë·Î »õ Æнº¿öµå¿¡¼­µµ ¾µ ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀ» Çã¿ëÇÒ ¼ö ÀÖ´Ù. Æнº¿öµå°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; type=XXX; retry=N; difok=N; minlen=N; dcredit=N; ucredit=N; lcredit=N; ocredit=N; use_authtok; ¼³¸í: ÀÌ ¸ðµâÀÇ µ¿ÀÛÀº ³ª»Û Æнº¿öµå¸¦ ¾Ë¾Æ³»±â À§ÇØ »ç¿ëÀÚ¿¡°Ô Æнº¿öµå¸¦ ¹¯°í, ½Ã½ºÅÛ »çÀü°ú ¸î°¡Áö ±ÔÄ¢À¸·Î Æнº¿öµåÀÇ Æ°Æ°ÇÔÀ» °Ë»çÇÑ´Ù. ±âº» µ¿ÀÛÀº ÇϳªÀÇ Æнº¿öµå¸¦ ¹¯°í, Æ°Æ°ÇÔÀ» °Ë»çÇÏ°í, Æ°Æ°ÇÏ´Ù°í »ý°¢µÇ¸é ´Ù½Ã Æнº¿öµå¸¦ ¹¯´Â´Ù(ù¹ø°°ÍÀÌ ¿Ã¹Ù·Î ÀÔ·ÂµÈ °ÍÀÎÁö È®ÀÎÇϱâ À§Çؼ­). ¸ðµÎ Åë°úÇϸé Æнº¿öµå´Â ¼³Ä¡µÈ ´ÙÀ½ ¸ðµâ·Î »õ ÀÎÁõ ÅäÅ«À¸·Î¼­ Àü´ÞµÈ´Ù. ±âº» µ¿ÀÛÀº ÀÎÀÚµéÀ» »ç¿ëÇؼ­ ¿©·¯°¡Áö·Î °íÄ¥ ¼ö ÀÖ´Ù. debug - ÀÌ ¿É¼ÇÀº ¸ðµâÀÌ µ¿ÀÛÀ» º¸¿©ÁÖ±â À§ÇØ syslog(3)¿¡ Á¤º¸¸¦ ³²±âµµ·Ï ÇÑ´Ù.(ÀÌ ¿É¼ÇÀÌ logÆÄÀÏ¿¡ Æнº¿öµå Á¤º¸¸¦ ³²±âÁö´Â ¾Ê´Â´Ù.) type=XXX - ¸ðµâÀÇ µðÆúÆ® µ¿ÀÛÀº Æнº¿öµå¸¦ ¹°¾îº¼ ¶§ "New UNIX password: ", "Retype UNIX password:"¶ó°í ¹¯´Âµ¥, ÀÌ ¿É¼ÇÀ» »ç¿ëÇؼ­ 'UNIX'¶ó´Â ¸» ´ë½Å 'XXX'·Î ¹Ù²Ü ¼ö ÀÖ´Ù. retry=N - »õ Æнº¿öµå¸¦ ¹°¾îº¸´Â Ƚ¼ö·Î µðÆúÆ®´Â 1ÀÌ´Ù. ÀÌ ¿É¼ÇÀ» »ç¿ëÇؼ­ N¸¸Å­ Ƚ¼ö¸¦ ´Ã¸± ¼ö ÀÖ´Ù. difok=N - »õ Æнº¿öµå¿¡¼­ ¿¹Àü Æнº¿öµå¿¡ ÀÖÁö ¾ÊÀº ¹®ÀÚµéÀ» ¸îÀÚ³ª »ç¿ëÇØ¾ß ÇÏ´ÂÁö ³ªÅ¸³»´Â ¼ö·Î µðÆúÆ®´Â 10ÀÌ´Ù. ±×¸®°í, »õ Æнº¿öµå¿¡¼­ 1/2ÀÌ»óÀÇ ±ÛÀÚ°¡ ÀÌÀü°ú ´Ù¸£´Ù¸é »õ Æнº¿öµå´Â ¹Þ¾Æµé¿©Áø´Ù. minlen=N - »õ Æнº¿öµåÀÇ ÃÖ¼Ò Å©±â¿¡ 1À» ´õÇÑ Å©±âÀÌ´Ù. »õ Æнº¿öµå¿£ »ç¿ëµÈ ¹®ÀÚ¿­ÀÇ ±æÀÌ ¿Ü¿¡ °¢ ¹®ÀÚÁ¾·ù (¼ýÀÚ, ´ë¹®ÀÚ, ¼Ò¹®ÀÚ, ±âŸ¹®ÀÚ)¸¦ »ç¿ëÇÑ °Í¿¡ ´ëÇؼ­ °¢°¢ Å©·¹µ÷À» ÁØ´Ù. ÀÌ ÀÎÀÚÀÇ ÃʱⰪÀº 9Àε¥, °°Àº ¹®ÀÚ Á¾·ù¸¸À» »ç¿ëÇÏ´Â ¿¹Àü UNIXÆнº¿öµå¿¡ Àû´çÇÏÁö¸¸ md5½Ã½ºÅÛÀÇ Ãß°¡µÈ º¸¾È´É·ÂÀ» ÃæºÐÈ÷ ¾²±â¿¡´Â Àû´çÇÏÁö ¸øÇÏ´Ù. (¿ªÁÖ: ¹®ÀÚ Á¾·ù¿¡ ´ëÇÑ Å©·¹µ÷µéÀÌ 1À̶ó°í Çϸé, ¸ðµÎ °°Àº Á¾·ù·Î¸¸ µÈ Æнº¿öµå´Â 8ÀÇ ±æÀ̸¦ °¡Á®¾ß ÇÏ°í, µÎ°¡Áö Á¾·ù¸¦ °®´Â °æ¿ì¿¡´Â 7ÀÇ ±æÀ̸¦ °¡Á®¾ß ÇÏ´Â °ÍÀÌ´Ù.) CracklibÀÚü¿¡ µÎ°¡Áö ±æÀÌ Á¦ÇÑÀÌ ÀÖ´Ù´Â °ÍÀ» ¿°µÎÇØ µÎ¶ó. Cracklib¿¡´Â 4ÀÚ ÀÌ»óÀ¸·Î Çϵµ·Ï ÇϵåÄÚµùµÇ¾î ÀÖ°í minlen°ªÀ» Âü°íÇÏÁö ¾Ê°í °Ë»çÇϵµ·Ï Á¤ÀÇµÈ °ª(6)ÀÌ Àִµ¥, ¸¸ÀÏ ´õ ªÀº Æнº¿öµå¸¦ Çã¿ëÇÏ°í ½ÍÀ¸¸é ÀÌ ¸ðµâÀ» »ç¿ëÇÏÁö ¸»°Å³ª Cracklib°ú ÀÌ ¸ðµâÀ» ´Ù½Ã ÄÄÆÄÀÏÇضó. dcredit=N - ¼ýÀÚ ¹®ÀÚ°¡ °¡Áú ¼ö ÀÖ´Â Å©·¹µ÷ÀÇ ÃÖ´ë°ªÀÌ´Ù. ¸¸¾à Æнº¿öµå¿¡ N°³ ÀÌÇÏÀÇ ¼ýÀÚ¸¦ »ç¿ëÇß´Ù¸é »ç¿ëµÈ ¼ýÀÚÀÇ °¹¼ö°¡ ÇöÀç Á¤ÀÇµÈ minlen°ªÀ» °è»êÇϴµ¥ Å©·¹µ÷°ªÀ¸·Î Àû¿ëµÈ´Ù. ÀÌ°ÍÀÇ ±âº»°ªÀº 1Àε¥, 1Àº minlenÀÌ 10º¸´Ù ÀÛÀ»¶§ ±ÇÀå°ªÀÌ´Ù. ucredit=N - ´ë¹®ÀÚ°¡ °¡Áú ¼ö ÀÖ´Â Å©·¹µ÷ÀÇ ÃÖ´ë°ªÀÌ´Ù. ¸¸¾à Æнº¿öµå¿¡ N°³ ÀÌÇÏÀÇ ´ë¹®ÀÚ¸¦ »ç¿ëÇß´Ù¸é »ç¿ëµÈ ´ë¹®ÀÚÀÇ °¹¼ö°¡ ÇöÀç Á¤ÀÇµÈ minlen°ªÀ» °è»êÇϴµ¥ Å©·¹µ÷°ªÀ¸·Î Àû¿ëµÈ´Ù. ÀÌ°ÍÀÇ ±âº»°ªÀº 1Àε¥, 1Àº minlenÀÌ 10º¸´Ù ÀÛÀ»¶§ ±ÇÀå°ªÀÌ´Ù. lcredit=N - ¼Ò¹®ÀÚ°¡ °¡Áú ¼ö ÀÖ´Â Å©·¹µ÷ÀÇ ÃÖ´ë°ªÀÌ´Ù. ¸¸¾à Æнº¿öµå¿¡ N°³ ÀÌÇÏÀÇ ¼Ò¹®ÀÚ¸¦ »ç¿ëÇß´Ù¸é »ç¿ëµÈ ¼Ò¹®ÀÚÀÇ °¹¼ö°¡ ÇöÀç Á¤ÀÇµÈ minlen°ªÀ» °è»êÇϴµ¥ Å©·¹µ÷°ªÀ¸·Î Àû¿ëµÈ´Ù. ÀÌ°ÍÀÇ ±âº»°ªÀº 1Àε¥, 1Àº minlenÀÌ 10º¸´Ù ÀÛÀ»¶§ ±ÇÀå°ªÀÌ´Ù. ocredit=N - ¾Õ¼­ Á¤ÀÇµÈ ¹®ÀÚ ÀÌ¿ÜÀÇ ±âŸ ¹®ÀÚ°¡ °¡Áú ¼ö ÀÖ´Â Å©·¹µ÷ÀÇ ÃÖ´ë°ªÀÌ´Ù. (¿ªÁÖ: Áï, ±âŸ ¹®ÀÚ´Â ¼ýÀÚ, ´ë¹®ÀÚ, ¼Ò¹®ÀÚ¸¦ Á¦¿ÜÇÑ ³ª¸ÓÁö ¹®ÀÚ¸¦ °¡¸£Å²´Ù.) ¸¸¾à Æнº¿öµå¿¡ N°³ ÀÌÇÏÀÇ ±âŸ ¹®ÀÚ¸¦ »ç¿ëÇß´Ù¸é »ç¿ëµÈ ±âŸ¹®ÀÚÀÇ °¹¼ö°¡ ÇöÀç Á¤ÀÇµÈ minlen°ªÀ» °è»êÇϴµ¥ Å©·¹µ÷°ªÀ¸·Î Àû¿ëµÈ´Ù. ÀÌ°ÍÀÇ ±âº»°ªÀº 1Àε¥, 1Àº minlenÀÌ 10º¸´Ù ÀÛÀ»¶§ ±ÇÀå°ªÀÌ´Ù. use_authok - ÀÌ ÀÎÀÚ´Â »ç¿ëÀÚ¿¡°Ô »õ Æнº¿öµå¸¦ ¹¯Áö¸»°í, ¾Õ¼­ ½ÇÇàµÈ password¸ðµâ¿¡¼­ ¹ÞÀº °ÍÀ» »ç¿ëÇϵµ·Ï ¸ðµâ¿¡°Ô °­Á¦ÇÑ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâ »ç¿ëÀÇ ¿¹¸¦À§ÇØ, pam_pwdbÀÇ password component¿Í ÀûÃþ±¸Á¶·Î ¼³Á¤ÇÏ´Â °ÍÀ» º¸¿©ÁØ´Ù. # # ÀÌ ÁÙµéÀº 2°³ÀÇ password ŸÀÔÀÇ ¸ðµâÀ» °®°í ÀÖ´Ù. ÀÌ ¿¹¿¡¼­ »ç¿ëÀÚ´Â 3¹øÀÇ # Æ°Æ°ÇÑ Æнº¿öµå¸¦ ÀÔ·ÂÇÒ ±âȸ¸¦ °®´Â´Ù. 'use_authok'ÀÎÀÚ´Â pam_pwdb¸ðµâÀÌ # Æнº¿öµå¸¦ ¹¯Áö ¾Êµµ·ÏÇÏ°í, ´ë½Å¿¡ pam_cracklibÀÌ Á¦°øÇÏ´Â °ÍÀ» »ç¿ëÇϵµ·Ï # ÇÑ´Ù. # passwd password required pam_cracklib.so retry=3 passwd password required pam_pwdb.so use_authtok ¶ÇÇϳªÀÇ ¿¹·Î(/etc/pam.d/passwd ÇüÅ¿¡¼­) md5 Æнº¿öµå ¾Ïȣȭ¸¦ »ç¿ëÇÏ±æ ¿øÇÏ´Â °æ¿ìÀÌ´Ù. # # ÀÌ ÁÙµéÀº md5½Ã½ºÅÛÀÌ Àû¾îµµ 14ÀÚÀÌ°í, ¼ýÀÚ2, ´Ù¸¥¹®ÀÚ2¿¡ ´ëÇÑ Å©·¹µ÷°ªÀ» # °®µµ·Ï ÇÏ°í, ¿¹Àü Æнº¿öµå¿¡ Á¸ÀçÇÏÁö ¾Ê´Â ¹®ÀÚµéÀ» Àû¾îµµ 3°³ÀÌ»ó °®µµ·Ï # ÇÏ´Â °ÍÀÌ´Ù. # password required pam_cracklib.so difok=3 minlen=15 dcredit= 2 ocredit=2 password required pam_pwdb.so use_authtok nullok md5 Àá±Ý ¸ðµâ(The locking-out module) °³¿ä ¸ðµâ À̸§: pam_deny ÀúÀÚ: Andrew G. Morgan <morgan@parc.power.net> À¯Áöº¸¼ö: ÇöÀçÀÇ Linux-PAM À¯Áöº¸¼öÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: account; authentication; password; session ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ¿¡·¯¸Þ½ÃÁö ¾øÀ½ ½Ã½ºÅÛ ÀÇÁ¸¼º: ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº Á¢±ÙÀ» °ÅºÎÇϴµ¥ »ç¿ëµÈ´Ù. ÀÌ°ÍÀº PAM±¸Á¶¸¦ ÅëÇØ ÀÀ¿ëÇÁ·Î±×·¥¿¡°Ô Ç×»ó ½ÇÆи¦ ¸®ÅÏÇÑ´Ù. ¾Õ¼­(3.°³¿ä) ¸»ÇßµíÀÌ ÀÌ ¸ðµâÀº µðÆúÆ®(OTHER) ¼ÂÆÃÀ¸·Î Àû´çÇÏ´Ù. °èÁ¤°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: ¼³¸í: ¿ÀÁ÷ ½ÇÆи¸À» ¸®ÅÏÇÑ´Ù. ½ÇÆÐtypeÀº PAM_ACCT_EXPIRED. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâÀ» account ŸÀÔ¿¡ ¼³Á¤Çϸé Linux-PAMÀÇ account managementÇÔ¼öÀÎ pam_acct_mgmt()¸¦ »ç¿ëÇÏ´Â ÀÀ¿ëÇÁ·Î±×·¥µéÀ» ÅëÇØ ½Ã½ºÅÛ¿¡ Á¢±ÙÇÏ·Á´Â ¸ðµç »ç¿ëÀÚµéÀ» ¸·À» ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹´Â ·Î±×ÀÎÀ» ºÒ°¡´ÉÇÏ°Ô ¸¸µå´Â °ÍÀÌ´Ù. # #¸ðµç °èÁ¤À» ¸·±â À§Çؼ­ ÀÌ ÁÙÀ» Ãß°¡Ç϶ó. # login account required pam_deny.so ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: ¼³¸í: ¾Æ¹«°Íµµ ÇÏÁö ¾Ê°í ½ÇÆи¦ ¸®ÅÏÇÑ´Ù. ½ÇÆÐtypeÀº pam_authenticate()°¡ ºÒ¸®´Â °æ¿ì¿¡´Â(»ç¿ëÀÚ ÀÎÁõÀ» ½ÃµµÇÏ´Â °æ¿ì) PAM_AUTH_ERRÀÌ°í pam_setcred()°¡ ºÒ¸®´Â °æ¿ì¿¡´Â(»ç¿ëÀÚ¿¡°Ô ±ÇÇÑÀ» ÁÖ´Â °æ¿ì -- ½ÇÁ¦ÀÇ °æ¿ì¿¡ ÀÌ ÇÔ¼ö´Â Àý´ë ¾ÈºÒ¸±°ÍÀÌ´Ù.) PAM_CRED_UNAVAILÀÌ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: º°µµÀÇ ¼³Á¤ÀÌ ¾ø´Â ÀÀ¿ëÇÁ·Î±×·¥µé¿¡ ´ëÇÑ Á¢±ÙÀ» ÀÌ pam_deny¸ðµâÀ» »ç¿ëÇØ ¸·À» ¼ö ÀÖ´Ù. ¾Æ·¡¿Í °°ÀÌ Linux-PAM ¼³Á¤ÆÄÀÏ¿¡ Ãß°¡ÇÏ¸é µÈ´Ù. # # OTHER ¶õ¿¡ ÀÌ ÁÙÀ» Ãß°¡Çؼ­ ±âº»ÀûÀ¸·Î ÀÀ¿ëÇÁ·Î±×·¥µéÀÇ ÀÎÁõÀÌ ¼º°øÇÏÁö # ¸øÇϵµ·Ï ¸¸µé¾î¶ó. # OTHER auth required pam_deny.so Æнº¿öµå°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: ¼³¸í: »ç¿ëÀÚ¿¡°Ô Æнº¿öµå¸¦ º¯°æÇÏÁö ¸øÇÏ°Ô ÇÑ´Ù. Ç×»ó PAM_AUTHTOK_ERR¸¦ ¸®ÅÏÇÑ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâÀº ÀÀ¿ëÇÁ·Î±×·¥ÀÌ »ç¿ëÀÚÀÇ Æнº¿öµå¸¦ º¯°æÇÏ´Â °ÍÀ» ¸·´Âµ¥ »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¾î loginÀÌ ¿¾³¯ Æнº¿öµå°¡ ¸¸·áµÇ¾î »õ Æнº¿öµå¸¦ ÀÚµ¿ÀûÀ¸·Î ¹¯°Ô ÇÏ´Â °ÍÀ» ¸·À¸·Á¸é ¾Æ·¡ ³»¿ëÀ» ¼³Á¤ÆÄÀÏ¿¡ Ãß°¡ÇØ¾ß ÇÑ´Ù. # # ´Ù¸¥ ·Î±×ÀÎ Ç׸ñ¿¡ ÀÌ ÁÙÀ» Ãß°¡Çؼ­ ·Î±×ÀÎ ÇÁ·Î±×·¥ÀÌ »ç¿ëÀÚ Æнº¿öµå¸¦ # º¯°æÇÒ ¼ö ¾øµµ·Ï ¸·¾Æ¶ó. # login password required pam_deny.so ¼¼¼Ç°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: ¼³¸í: È£½ºÆ® ÄÄÇ»ÅÍ¿¡¼­ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¼¼¼ÇÀ» ½ÃÀÛÇÏ´Â °ÍÀ» ¸·´Â´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ³¯Â¥°°Àº ¸Þ½ÃÁö¸¦ º¸¿©ÁÖ´Â ¼¼¼Ç ¸ðµâ(XXX -ÀÌ·± ¸ðµâÀº ´©°¡ ¸¸µé¾î¾ß ÇÑ´Ù)À» °°ÀÌ »ç¿ëÇÏ°í, ÀÌ ¸ðµâÀº »ç¿ëÀÚ°¡ shellÀ» ½ÃÀÛÇÏÁö ¸øÇÏ°Ô ¸·´Â´Ù. pam_motd¸ðµâÀÌ ÀÖ´Ù¸é, ¾Æ·¡ ¼³Á¤Ã³·³ Çؼ­ »ç¿ëÀÚ¿¡°Ô ½Ã½ºÅÛ ½Ã°£À» ¾Ë·ÁÁÖ°Ô ÇÒ ¼ö ÀÖ´Ù. # # »ç¿ëÀÚÀÇ ·Î±×ÀÎÀ» (Á¤ÁßÇÏ°Ô) °ÅºÎÇÏ´Â ¼³Á¤ ¿¹ # login session required pam_motd.so file=/etc/system_time login session required pam_deny.so ȯ°æ º¯¼ö ¼³Á¤/ÇØÁ¦(Set/unset environment variables) °³¿ä ¸ðµâ À̸§: pam_env ÀúÀÚ: Dave Kinchlea <kinch@kinch.ark.com> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: Authentication (setcred) ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: /etc/security/pam_env.conf ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº ȯ°æº¯¼ö¸¦ ¼³Á¤/ÇØÁ¦ÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù. ÀÌÀü¿¡ ¼³Á¤ÇÑ È¯°æº¯¼ö³ª PAM_RHOST°°Àº PAM_ITEMµéÀ» »ç¿ëÇÏ¿© ȯ°æº¯¼ö¸¦ ¼³Á¤ ÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù. ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; conffile=configuration-file-name; envfile=env-file-name; readenv=0|1 ¼³¸í: ÀÌ ¸ðµâÀº °íÁ¤ Å©±âÀÇ ½ºÆ®¸µ(ÀÌ°ÍÀÇ ³»¿ëÀº ÀÌ¹Ì ¼³Á¤µÈ ȯ°æº¯¼ö³ª PAM_ITEMÀÌ µÉ ¼ö ÀÖ´Ù.)À» »ç¿ëÇÏ´Â ÀÓÀÇÀÇ È¯°æº¯¼ö°ªÀ» ¼³Á¤/ÇØÁ¦ÇÏ°Ô ÇØÁØ´Ù. ¸ðµç °ÍÀº ¼³Á¤ÆÄÀÏ(µðÆúÆ®´Â /etc/security/pam_env.confÀε¥ conffileÀÎÀÚ·Î ¹Ù²Ü ¼ö ÀÖ´Ù.)¿¡ ÀÇÇØ Á¶Á¤µÈ´Ù. °¢ ÁÙÀº º¯¼öÀ̸§À¸·Î ½ÃÀÛÇÏ°í °¢ º¯¼ö¿¡ ´ëÇØ DEFAULT¿Í OVERRIDE µÎ°¡Áö ¿É¼ÇÀÌ °¡´ÉÇÏ´Ù. DEFAULT´Â °ü¸®ÀÚ°¡ º¯¼öÀÇ °ªÀ» ¾î¶² µðÆúÆ® °ªÀ¸·Î ÁöÁ¤ÇÏ°Ô ÇÏ´Â °ÍÀÌ´Ù. DEFAULT°¡ ¾øÀ¸¸é, ºó ½ºÆ®¸µÀ¸·Î °£ÁֵȴÙ. OVERRIDE´Â pam_env¿¡°Ô »ç¿ëµÇ´Â °ªÀÌ ÀÖ´Ù¸é ±× °ªÀ»(default°ªÀ» ¾þ¾î¾²°Ô) ³Ö°Ô ÇÏ´Â °ÍÀÌ´Ù. OVERRIDE°¡ »ç¿ëµÇÁö ¾ÊÀ¸¸é, ""·Î °£ÁÖµÇ°í º¯¼ö°ªÀ» µ¤¾î¾²Áö ¾Ê´Â´Ù. VARIABLE [DEFAULT=[value]] [OVERRIDE=[value]] (¾Æ¸¶ Á¸ÀçÇÏÁö ¾Ê´Â)ȯ°æ º¯¼öµéÀÌ ${string}¹®¹ýÀ» »ç¿ëÇØ ¾²Àϼö ÀÖ°í, (¾Æ¸¶ Á¸ÀçÇÏÁö ¾Ê´Â)PAM_ITEMµéÀÌ &commat;{string}¹®¹ýÀ» »ç¿ëÇØ ¾µ ¼ö ÀÖ´Ù. $, &commat; ¹®ÀÚ´Â ¹é½½·¡½¬(\)¸¦ ¾Õ¿¡ ºÙ¿©¼­ ÀÏ¹Ý ¹®ÀÚ·Î »ç¿ëµÉ ¼ö ÀÖ´Ù. (¿¹¸¦ µé¾î \$) °ª¾È¿¡ Å«µû¿ÈÇ¥¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.(ȯ°æ º¯¼ö À̸§¿¡´Â »ç¿ëÇÒ ¼ö ¾ø´Ù.) °ª¾È¿¡ °ø¹éÀÌ ÇÊ¿äÇÑ °æ¿ì¿¡´Â µû¿ÈÇ¥¸¦ °ª ÀüüÀÇ ¾ÕµÚ¿¡ ºÙ¿© »ç¿ëÇÒ ¼ö ÀÖ´Ù. À̶§¿¡ µû¿ÈÇ¥¸¦ °ª¾È¿¡ ³Ö´Â ¹æ¹ý(escaped quotes)Àº Áö¿øÇÏÁö ¾Ê´Â´Ù. ÀÌ ¸ðµâÀº °¢°¢ÀÇ ÁÙ¿¡ KEY=VALÇüŸ¦ °®´Â ´Ü¼øÇÑ È¯°æº¯¼ö ÆÄÀÏÀ» ÀÐÀ» ¼ö ÀÖ´Ù. (µðÆúÆ® ÆÄÀÏÀº /etc/environment)ÀÌ´Ù.) envfile ÀÎÀÚ¸¦ »ç¿ëÇØ ÀÐÀ» ÆÄÀÏÀ» ¹Ù²Ü ¼öµµ ÀÖ°í, readenvÀÎÀÚ¸¦ 1À̳ª 0À¸·Î »ç¿ëÇØ ÀÌ ±â´ÉÀ» ÄѰųª(1) ²ø(0) ¼ö ÀÖ´Ù. ÀÌ ¸ðµâÀÇ µ¿ÀÛÀº ´ÙÀ½ÀÇ ÀÎÀÚµé·Î Á¶Á¤ÇÒ ¼ö ÀÖ´Ù: debug - syslog(3)¿¡ Á»´õ ¸¹Àº Á¤º¸¸¦ ±â·ÏÇϵµ·Ï ÇÑ´Ù. conffile=filename - µðÆúÆ® ¼³Á¤ÆÄÀÏÀº /etc/security/pam_env.confÀε¥, ÀÌ ¿É¼ÇÀ» »ç¿ëÇØ ¼³Á¤ÆÄÀÏÀ» ¹Ù²Ü ¼ö ÀÖ´Ù. full path¸¦ ½á¾ßÇÑ´Ù. envfile=filename - µðÆúÆ® ÆÄÀÏ /etc/environment´Â KEY=VALÇüÅÂÀÇ º¯¼ö¸¦ ¹Ù·Î ·ÎµåÇϴµ¥ »ç¿ëµÈ´Ù. ÀÌ ¿É¼ÇÀº µðÆúÆ® ÆÄÀÏÀ» ¹Ù²Ü ¼ö ÀÖ´Ù. full path¸¦ ½á¾ß ÇÑ´Ù. readenv=0/1 - envfileÀ» Àоîµå¸®´Â °ÍÀ» ÄѰųª ²ö´Ù.(0Àº ²ô±â, 1Àº Äѱâ). µðÆúÆ®´Â 1ÀÌ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: pam_env.conf¿¡ ´õ ¸¹Àº Á¤º¸¿Í ¿¹°¡ ÀÖ´Ù. The filter module °³¿ä ¸ðµâ À̸§: pam_filter ÀúÀÚ: Andrew G. Morgan <morgan@parc.power.net> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: account; authentication; password; session ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: ¾ÆÁ÷ ¾øÀ½. º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ¸®´ª½º ±â¹Ý ½Ã½ºÅÛ¿¡¼­´Â ¿¡·¯¸Þ½ÃÁö ¾øÀÌ ±ú²ýÇÏ°Ô ºôµåµÊ. ½Ã½ºÅÛ ÀÇÁ¸¼º: ÀÛµ¿Çϱâ À§Çؼ­ ½Ã½ºÅÛ¿¡ filter°¡ ¼³Ä¡µÇ¾î ÀÖ¾î¾ß ÇÔ. ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº ttysnoop(XXX - ·¹ÆÛ·±½º ÇÊ¿ä)°ú °°Àº ÇÁ·Î±×·¥ÀÇ ´ë¾ÈÀ¸·Î Ç÷¯±×ÀÎÀ» Á¦°øÇϱâ À§ÇØ ÀÛ¼ºµÇ¾ú´Ù. ÀÌ ±â´ÉÀ» ¼öÇàÇÏ´Â ÇÊÅÍ°¡ ¾ÆÁ÷ ÀÛ¼ºµÇÁö ¾Ê¾Ò±â ¶§¹®¿¡ ÇöÀç·Î¼­´Â ´ÜÁö Àå³­°¨¿¡ ºÒ°úÇÏ´Ù. ¸ðµâ°ú ÇÔ²² Á¦°øµÇ´Â À¯ÀÏÇÑ ÇÊÅÍ´Â °£´ÜÇÏ°Ô ÀÔÃâ·Â ½ºÆ®¸²¿¡¼­ ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ°£¿¡ º¯È¯ÇÏ´Â ±â´ÉÀ» ÇÑ´Ù.(ÀÌ ÀÏÀº termcap¿¡ ±Ù°£À» µÐ ¿¡µðÅ͵鿡¼­ ´Â ¸Å¿ì ±ÍÂúÀº ÀÏÀÌ µÉ ¼ö ÀÖ´Ù.) °èÁ¤°ü¸® + ÀÎÁõ°ü¸® + Æнº¿öµå°ü¸® + ¼¼¼Ç°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; new_term; non_term; runX ¼³¸í: ¸ðµâÀÇ °¢ ¿ä¼Ò´Â ¿øÇÏ´Â ÇÊÅ͸¦ È£ÃâÇÏ´Â ÀáÀçÀû ±â´ÉÀ» °¡Áø´Ù. ÇÊÅÍ´Â Ç×»ó »ç¿ëÀÚÀÇ ±ÇÇÑÀÌ ¾Æ´Ñ È£ÃâÇÏ´Â ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ±ÇÇÑÀ» °¡Áø execv(2)·Î È£ÃâµÈ´Ù. ÀÌ ¶§¹®¿¡ ¼¼¼ÇÀ» ´ÝÀ» ¶§¸¦ Á¦¿ÜÇÏ¸é º¸Åë »ç¿ëÀÚ°¡ ÇÊÅ͸¦ killÇÒ ¼ö ¾ø´Ù. Linux-PAM ȯ°æÆÄÀÏ¿¡¼­ Àü´ÞµÇ´Â ÀÎÀÚ¿¡ ÀÇÇØ ¸ðµâÀÇ ÇൿÀº ´ë´ÜÈ÷ ¹Ù²ð ¼ö ÀÖ´Ù. debug - ÀÌ ¿É¼ÇÀº ¸ðµâÀÌ ½ÇÇàµÉ ¶§ syslog(3)¿¡ ±â·ÏµÇ´Â Á¤º¸ÀÇ ¾çÀ» ´Ã¸°´Ù. new_term - ÇÊÅÍÀÇ ±âº»µ¿ÀÛÀº ÀÀ¿ëÇÁ·Î±×·¥¿¡ ¿¬°áÇϱâ À§ÇØ »ç¿ëÇÏ°í ÀÖ´Â Å͹̳ÎÀ» ³ªÅ¸³»´Â PAM_TTY ¾ÆÀÌÅÛÀ» ¼³Á¤ÇÏ´Â °ÍÀÌ´Ù. ÀÌ ¸Å°³º¯¼ö´Â ÇÊÅÍµÈ °¡»ó Å͹̳ηΠPAM_TTY¸¦ ¼³Á¤Çϵµ·Ï ÇÑ´Ù. non_term - PAM_TTY ¾ÆÀÌÅÛÀ» ¼³Á¤ÇÏ·Á°í ½ÃµµÇÏÁö ¾Ê´Â´Ù. runX - ¸ðµâÀÌ ÇÊÅ͸¦ È£ÃâÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ ¸ðµâÀÌ ¾ðÁ¦ ÇÊÅ͸¦ È£Ãâ ÇÒ °ÍÀÎÁö¸¦ ¾Ë¾Æ¾ß¸¸ ÇÑ´Ù. ÀÌ ÀÎÀÚ´Â ÇÊÅÍ°¡ ¾ðÁ¦ ÀÌÀÏÀ» ÇÏ´ÂÁö ¾Ë¸®´Âµ¥ ÇÊ¿äÇÏ´Ù. µÚµû¸£´Â ÀÎÀÚ´Â °¢°¢ ½ÇÇàµÇ´Â ÇÊÅÍÀÇ Àüü °æ·Î¸í°ú ÇÊÅÍ°¡ ÀνÄÇÏ´Â ¸í·É ÀÎÀÚÀÌ´Ù. X¿¡ ÇØ´çÇÏ´Â °ªÀº 1°ú 2ÀÌ´Ù. ÀÌ´Â ÇÊÅÍ°¡ ½ÇÇàµÇ´Â Á¤È®ÇÑ ½Ã°£À» ³ªÅ¸³½´Ù. ÀÌ °³³äÀ» ÀÌÇØÇϱâ À§Çؼ­ 'Linux-PAM ¸ðµâ °³¹ßÀÚ¸¦ À§ÇÑ °¡À̵å'¸¦ Àд °ÍÀÌ À¯¿ëÇÒ °ÍÀÌ´Ù. ±âº»ÀûÀ¸·Î °¢°¢ÀÇ °ü¸®±×·ì¿¡´Â ¸ðµâÇÔ¼ö¸¦ È£ÃâÇÏ´Â µÎ°¡Áö ¹æ½ÄÀÌ ÀÖ´Ù. ÀÎÁõ°ü¸®¿Í ¼¼¼Ç°ü¸®ÀÇ °æ¿ì¿¡´Â ½ÇÁúÀûÀ¸·Î ºÐ¸®µÈ µÎ°¡Áö ÇÔ¼ö°¡ ÀÖ´Ù. ÀÎÁõ°ü¸®ÀÇ °æ¿ì ÀÌ ÇÔ¼öµéÀº _authenticate¿Í _setcredÀÌ´Ù. -- ¿©±â¼­ run1Àº _authenticate ÇÔ¼ö·ÎºÎÅÍ ÇÊÅ͸¦ ½ÇÇàÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÏ°í run2´Â _setcred ÇÔ¼ö·ÎºÎÅÍ ÇÊÅ͸¦ ½ÇÇàÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¼¼¼Ç°ü¸® ¸ðµâÀÇ °æ¿ì run1Àº ÇÊÅÍ°¡ _open_session ´Ü°è¿¡¼­ È£ÃâµÇ°í, run2´Â _close_session´Ü°è¿¡¼­ È£ÃâµÊÀ» ³ªÅ¸³½´Ù. °èÁ¤°ü¸®ÀÇ °æ¿ì run1, run2 µÑ´Ù »ç¿ëÀÌ °¡´ÉÇÏ´Ù. Æнº¿öµå°ü¸®ÀÇ °æ¿ì run1Àº _chauthtok°¡ ½ÇÇàµÇ´Â(PAM_PRELIM_CHECK»óÅÂ) ù¹ø° °æ¿ì¿¡ ½ÇÇàµÇ´Â °ÍÀ» ³ªÅ¸³»´Âµ¥ »ç¿ëµÇ°í, run2´Â µÎ¹ø° °æ¿ì (PAM_UPDATE_AUTHTOK »óÅÂ)¿¡ ÇÊÅÍ°¡ ½ÇÇàµÇ´Â °ÍÀ» ³ªÅ¸³»´Âµ¥ »ç¿ëµÈ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ±ÛÀ» ¾²°í ÀÖ´Â ÇöÀç ÀÌ ¸ðµâÀ» ½ÇÁ¦·Î »ç¿ëÇØ º¼ ¸¸ÇÑ °÷ÀÌ º°·Î ¾ø´Ù. Àç¹Ì»ï¾Æ ´ÙÀ½ÇàµéÀ» login ȯ°æÆÄÀÏ¿¡ Ãß°¡Çغ¼ ¼öµµ ÀÖ´Ù. # # »ç¿ëÀÚ°¡ ·Î±×ÀÎ ÇÑ ÈÄ ´ë¼Ò¹®ÀÚ¸¦ ¹Ù²Ùµµ·Ï ·Î±×ÀÎÀ» ¼³Á¤ÇÑ ¿¹ # login session required pam_filter.so \ run1 /usr/sbin/pam_filter/upperLOWER Anonymous access module °³¿ä ¸ðµâ À̸§: pam_ftp ÀúÀÚ: Andrew G. Morgan <morgan@parc.power.net> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: authentication ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: ³×Æ®¿öÅ© ÀνÄ: »ç¿ëÀÚÀÇ À̸ÞÀÏ ÁÖ¼Ò¸¦ ÀԷ¹ÞÀ½, ½±°Ô ¼ÓÀÏ ¼ö ÀÖÀ½(XXX - º¸¿Ï ÀÛ¾÷ÀÌ ÇÊ¿äÇÔ) ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀÇ ¸ñÀûÀº ½±°Ô »ðÀÔ°¡´ÉÇÑ À͸í ftp¸ðµå Á¢¼ÓÀ» Á¦°øÇÏ´Â °ÍÀÌ´Ù. ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; users=XXX,YYY,...;ignore ¼³¸í: ÀÌ ¸ðµâÀº »ç¿ëÀÚÀ̸§°ú ºñ¹Ð¹øÈ£¸¦ °¡·Îæ´Ù. ¸¸ÀÏ À̸§ÀÌ "ftp"³ª "anonymous" À̸é, »ç¿ëÀÚÀÇ ºñ¹Ð¹øÈ£´Â '@' ±¸ºÐÀÚ·Î ºÐ¸®µÇ¾î PAM_RUSER¿Í PAM_RHOSTºÎºÐ¿¡ ¼³Á¤µÈ´Ù. À̵é pam-Ç׸ñµéÀº °¢°¢¿¡ ÇØ´çÇÏ´Â °ªÀ¸·Î ¼³Á¤µÈ´Ù. »ç¿ëÀÚÀ̸§Àº "ftp"·Î ¼³Á¤µÈ´Ù. ÀÌ°æ¿ì¿¡´Â ¸ðµâÀÌ ¼º°øÀ¸·Î ó¸®ÇÏ°í ´Ù¸¥°æ¿ì¿¡´Â ¸ðµâÀÌ ÀÔ·ÂµÈ ºñ¹Ð¹øÈ£·Î PAM_AUTHTOK ¾ÆÀÌÅÛÀ» ¼³Á¤ÇÏ°í ½ÇÆзΠó¸®ÇÑ´Ù. ´ÙÀ½ÀÇ Ç÷¡±×¿¡ ÀÇÇØ ¸ðµâÀÇ µ¿ÀÛÀ» °íÄ¥ ¼ö ÀÖ´Ù. debug - syslog(3)·Î ´õ ¸¹Àº Á¤º¸¸¦ ±â·ÏÇÑ´Ù. users=XXX,YYY,... - "ftp"³ª "anonymouse"´ë½Å "XXX,YYY,..."°ú °°ÀÌ ½°Ç¥·Î ºÐ¸®µÈ »ç¿ëÀÚ¸ñ·Ï¿¡ ÀÇÇØ ÀÍ¸í ·Î±×ÀÎÀ» Á¦°øÇÑ´Ù. ¸¸¾à »ç¿ëÀÚ°¡ ÀÌ Áß ÇϳªÀÇ À̸§À» ÀÔ·ÂÇß´Ù¸é »ç¿ëÀÚ¸íÀº ±× ¸ñ·ÏÀÇ Ã¹¹ø°¿¡ ³ª¿À´Â "XXX"·Î ¼³Á¤µÈ´Ù. ignore - »ç¿ëÀÚÀÇ À̸ÞÀÏ ÁÖ¼Ò(ÀԷµǾú´Ù¸é)¸¦ ¹«½ÃÇÑ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâ »ç¿ëÀÇ ¿¹Á¦´Â ȯ°æ¼³Á¤ ÆÄÀÏ ºÎºÐ(4. Linux-PAM ¼³Á¤ ÆÄÀÏ)¿¡ ÀÖ´Ù. ÀÌ ¸ðµâÀº »õ·Î¿î/ÀÓ½ÃÀûÀÎ À͸í·Î±×ÀÎ °èÁ¤À» Á¦°øÇϴµ¥ »ç¿ëµÉ¼ö ÀÖ´Ù´Â °ÍÀ» Á¶½ÉÇϱ⠹ٶõ´Ù. The group access module °³¿ä ¸ðµâ À̸§: pam_group ÀúÀÚ: Andrew G. Morgan <morgan@parc.power.net> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: authentication ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: »ç¿ëÀÚ°¡ Á¢±Ù °¡´ÉÇÑ ÆÄÀϽýºÅÛÀÇ setgid »óÅ¿¡ ¹Î°¨ÇÏ´Ù. ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: /etc/security/group.confÆÄÀÏÀÌ ÇÊ¿äÇÏ´Ù. libpwdb°¡ Àְųª ¾ø°Å³ª ÄÄÆÄÀÏ °¡´ÉÇÏ´Ù. ³×Æ®¿öÅ© ÀνÄ: ¿Ã¹Ù¸£°Ô ¼³Á¤µÈ PAM_TTY Ç׸ñÀ» ÅëÇؼ­¸¸ ÀνÄÇÔ ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº ÁÖ¾îÁø ¼­ºñ½º¸¦ ¿ä±¸ÇÏ°í ÀÖ´Â »ç¿ëÀÚ¸í°ú Å͹̳ο¡ ±â¹ÝÇÑ ±×·ì¼¼ÆÃÀ» Á¦°øÇÑ´Ù. ÀÌ´Â time of dayÀÇ ±â·ÏÀ» °®´Â´Ù. ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: ¼³¸í: ÀÌ ¸ðµâÀº »ç¿ëÀÚ¸¦ ÀÎÁõÇÏÁö´Â ¾Ê´Â ´ë½Å ÀÎÁõ¸ðµâÀÇ º¸Áõ¼­(credential) ¼³Á¤»óÅ¿¡ µû¶ó »ç¿ëÀÚ¿¡°Ô ±×·ì ¸â¹ö½±À» ºÎ¿©ÇÑ´Ù. ¸â¹ö½±Àº »ç¿ëÀÚ°¡ ¿ä±¸ÇÏ´Â ¼­ºñ½º¿¡ ±â¹ÝÇÑ´Ù. ±×·ì ¸â¹ö½±Àº /etc/security/group.conf ÆÄÀÏ¿¡ ÅؽºÆ® ÇüÅ·Π³ª¿­µÇ¾î ÀÖ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâÀÌ ¿Ã¹Ù¸£°Ô µ¿ÀÛÇϱâ À§Çؼ­´Â ¿Ã¹Ù¸£°Ô ¼³Á¤µÈ /etc/security/groups.conf ÆÄÀÏÀÌ Á¸ÀçÇØ¾ß ÇÑ´Ù. ÀÌ ÆÄÀÏÀÇ Æ÷¸ËÀº ´ÙÀ½°ú °°´Ù. ±×·ì ¸â¹ö½±Àº ¼³Á¤ÆÄÀÏ ÇàÀÇ Á¶ÇÕÀ» ¸¸Á·ÇÏ´Â ¼­ºñ½º ÀÀ¿ëÇÁ·Î±×·¥¿¡ ±â¹ÝÇÏ¿© ºÎ¿©µÈ´Ù. °¢ ÁÙ('#'À¸·Î ½ÃÀÛÇÏ´Â ÁÖ¼®¹®À» Á¦¿Ü)Àº ´ÙÀ½°ú °°Àº ¹®¹ýÀ» °®´Â´Ù. services ; ttys ; users ; times ; groups óÀ½ ³×°³ÀÇ Çʵå´Â pam_time ¼³Á¤ÆÄÀÏ(/etc/security/pam_time.conf)ÀÇ ¹®¹ý°ú °°´Ù. ¸¶Áö¸· ÇʵåÀÎ groups´Â ½°Ç¥(ȤÀº ºóÄ­)·Î ±¸ºÐµÈ ±×·ì ¼±ÅÃÀÇ ÅؽºÆ® À̸§ ¸ñ·ÏÀÌ´Ù. ¸¸ÀÏ ¼­ºñ½º¿¡ ´ëÇÑ »ç¿ëÀÚ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ Ã³À½ ³×°³ÀÇ Çʵ带 ¸¸Á·ÇÑ´Ù¸é »ç¿ëÀÚ´Â ¸ñ·Ï¿¡ ³ª¿­µÈ ±×·ìÀÇ ¸â¹ö½±À» ºÎ¿©¹Þ´Â´Ù. ¾Õ¿¡¼­ ¾ð±ÞÇÑ¹Ù¿Í °°ÀÌ ÀÌ ¸ðµâÀÇ À¯¿ë¼ºÀº »ç¿ëÀÚ°¡ Á¢±Ù°¡´ÉÇÑ ÆÄÀϽýºÅÛ¿¡ ´Þ·ÁÀÖ´Ù. ±×·ìÀÇ ¸â¹ö½±À» ºÎ¿©¹ÞÀº ½ÃÁ¡¿¡¼­ »ç¿ëÀÚ´Â Á¦ÇÑµÈ ±×·ìÀÇ ¼ÒÀ¯±ÇÀ» °¡Áø setgid ¹ÙÀ̳ʸ®¸¦ ¸¸µé·Á°í ½ÃµµÇÒ ¼öµµ ÀÖ´Ù. ÈÄ¿¡ »ç¿ëÀÚ°¡ ÀÌ ±×·ì¿¡ ´ëÇÑ ¸â¹ö½±À» ºÎ¿©¹ÞÁö ¸øÇßÀ» ¶§ ±×µéÀº ¹Ì¸® ÄÄÆÄÀÏ µÈ ¹ÙÀ̳ʸ®¸¦ ÀÌ¿ëÇØ ±×·ì ¸â¹ö½±À» º¹¿øÇÏ·Á°í ÇÒ ¼ö ÀÖ´Ù. »ç¿ëÀÚ°¡ Á¢±Ù °¡´ÉÇÑ ÆÄÀÏ ½Ã½ºÅÛÀÌ ¸Å¿ì Áß¿äÇÑ ÀÌÀ¯´Â ½Ã½ºÅÛÀÌ nosuid·Î ¸¶¿îÆ® µÇ¾úÀ» ¶§ »ç¿ëÀÚ´Â ±×·± ¹ÙÀ̳ʸ® ÆÄÀÏÀ» ¸¸µé°Å³ª »ý¼ºÇÒ ¼ö ¾ø´Ù´Â °ÍÀÌ´Ù. ÀÌ ¸ðµâÀÌ º¸¾È ±â´ÉÀ» Á¦°øÇÏ±æ ¹Ù¶õ´Ù¸é »ç¿ëÀÚ°¡ ¾²±â±ÇÇÑÀ» °®´Â ¸ðµç ÆÄÀÏ ½Ã½ºÅÛÀº nosuid·Î ¸¶¿îÆ® ½ÃÄÑ¾ß ÇÑ´Ù. pam_group ¸ðµâÀº /etc/group ÆÄÀÏ°ú ÇÔ²² µ¿ÀÛÇÑ´Ù. »ç¿ëÀÚ°¡ ÀÌ ¸ðµâÀÇ µ¿ÀÛ¹æ½Ä¿¡ ±â¹ÝÇÏ¿© ¾î¶² ±×·ìÀ» ºÎ¿©¹ÞÀ¸¸é ±×µéÀº /etc/group ÆÄÀÏÀÇ ³»¿ë (¶Ç´Â µ¿µîÇÑ ³»¿ëÀÇ ´Ù¸¥ ÆÄÀÏ)¿¡ µ¡ºÙ¿© Ãß°¡·Î ±×·ìÀÇ ±ÇÇÑÀ» ºÎ¿©¹Þ´Â´Ù. Add issue file to user prompt °³¿ä ¸ðµâ À̸§: pam_issue ÀúÀÚ: Ben Collins <bcollins@debian.org> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: Authentication(pam_sm_authenticate) ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº »ç¿ëÀÚ¸íÀ» ÀԷ´ë±âÇÏ°í ÀÖÀ» ¶§ issue ÆÄÀÏ(±âº»ÀûÀ¸·Î /etc/issue ÆÄÀÏ)À» ¾Õ¿¡ Ãâ·ÂÇÑ´Ù. ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: issue=issue-file-name; noesc; ¼³¸í: ÀÌ ¸ðµâÀº »ç¿ëÀÚ¸íÀ» ÀԷ´ë±âÇÏ°í ÀÖÀ» ¶§ issueÆÄÀÏÀ» ¾Õ¿¡ Ãâ·ÂÇÑ´Ù. ¶ÇÇÑ ±âº»ÀûÀ¸·Î issue ÆÄÀÏ¿¡ ÀÖ´Â À̽ºÄÉÀÌÇÁ ÄÚµå(escape code)¸¦ ÆĽÌÇÑ´Ù. ÀÌ À̽ºÄÉÀÌÇÁ ÄÚµå´Â ÀϹÝÀûÀÎ gettyÀÇ °Í(\x ÇüÅ·Π»ç¿ë)°ú ºñ½ÁÇÏ´Ù. ÀνÄÇÏ´Â Å»ÃâÄÚµå d - ÇöÀç ½Ã°£ s - ¿î¿µÃ¼Á¦ À̸§ l - ÇöÀç tty À̸§ m - ½Ã½ºÅÛ ¾ÆÅ°ÅØÃÄ(i386, sparc, powerpc, ...) n - ½Ã½ºÅÛÀÇ È£½ºÆ®¸í o - ½Ã½ºÅÛÀÇ µµ¸ÞÀθí r - ¿î¿µÃ¼Á¦ ¸±¸®Áî ¹øÈ£(¿¹. 2.2.12) t - ÇöÀç ½Ã°£ u - ÇöÀç ·Î±×ÀÎÇÑ »ç¿ëÀÚ ¼ýÀÚ U - "user"³ª "users"°¡ µÚ¿¡ ºÙ´Â °ÍÀ» Á¦¿ÜÇÏ°í´Â u¿Í °°´Ù.(¿¹. "1 user" or "10 users") v - ¿î¿µÃ¼Á¦ÀÇ ¹öÀü/ºôµå ³¯Â¥(¿¹. "#3 Mon Aug 23 14:38:16 EDT 1999" on Linux) ÀÌ ¸ðµâÀÇ µ¿ÀÛÀº ´ÙÀ½°ú °°Àº Ç÷¡±×¿¡ ÀÇÇØ º¯°æµÉ ¼ö ÀÖ´Ù. issue - ±âº» ÆÄÀÏÀ» »ç¿ëÇÏÁö ¾ÊÀ¸¸é ÀÌ ÆÄÀÏÀ» Ãâ·ÂÇÑ´Ù. noesc - À̽ºÄÉÀÌÇÁ ÄÚµå ÆĽÌÀ» ÇÏÁö ¾Ê´Â´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: login auth pam_issue.so issue=/etc/issue The Kerberos 4 module °³¿ä ¸ðµâ À̸§: pam_kbr4 ÀúÀÚ: Derrick J. Brashear <shadow@dementia.org> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: authentication; password; session ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: API¸¦ »ç¿ëÇÔ º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: ¶óÀ̺귯¸® - libkrb, libdes, libcom_err, libkadm; ÀÏ·ÃÀÇ Kerberos include ÆÄÀÏµé ³×Æ®¿öÅ© ÀνÄ: ³×Æ®¿öÅ©¸¦ ÅëÇØ Á¢¼ÓÇÑ Kerberos Å° ¹èÆ÷ ¼¾ÅͷκÎÅÍ Kerberos ƼÄÏÀ» Áִ ƼÄÏÀ» ¹Þ´Â´Ù. ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº »ç¿ëÀÚ ºñ¹Ð¹øÈ£ÀÇ Kerberos °ËÁõÀ» ÇÏ°í, Kerberos ƼÄÏ¹ß±Þ ¼­ºñ½º¸¦ ¹Þ±â À§Çؼ­ Kerberos ƼÄÏÀ» Áִ ƼÄÏÀ» ¹Þ°í, ·Î±×¾Æ¿ôÇÒ ¶§ »ç¿ëÀÚÀÇ Æ¼ÄÏÀ» Æı«ÇÏ°í, Kerberos ºñ¹Ð¹øÈ£¸¦ º¯°æÇÏ´Â ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù. ¼¼¼Ç°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: ¼³¸í: ¸ðµâÀÇ ÀÌ ±¸¼º¿ä¼Ò´Â »ç¿ëÀÚÀÇ KRBTKFILE ȯ°æº¯¼ö¸¦ ¼³Á¤ÇÒ »Ó ¾Æ´Ï¶ó (ÇöÀç·Î¼­´Â ÀÌ º¯¼ö¸¦ exportÇÏ´Â ¹æ¹ýÀº ¾ø´Ù) ·Î±×¾Æ¿ô½Ã¿¡ (login¿¡ ÀÇÇØ PAM_CRED_DELETE°¡ À¯ÁöµÉ ¶§±îÁö)»ç¿ëÀÚÀÇ Æ¼ÄÏÀ» »èÁ¦ÇÑ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ¿ì¸®°¡ Linux-PAM ¸ðµâ ³»ºÎ·ÎºÎÅÍ È¯°æ¼³Á¤(environment)À» º¯°æÇÒ ¼ö ÀÖÀ» ¶§±îÁö ¸ðµâÀÇ ÀÌ ±¸¼º¿ä¼Ò´Â ±×¸® À¯¿ëÇÏÁö ¸øÇÒ °ÍÀÌ´Ù. Æнº¿öµå°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: use_first_pass; try_first_pass ¼³¸í: ¸ðµâÀÇ ÀÌ ±¸¼º¿ä¼Ò´Â ¸ÕÀú »ç¿ëÀÚÀÇ ¿¾³¯ Æнº¿öµå¸¦ ¹Þ¾Æ Æнº¿öµå º¯°æ ¼­ºñ½ºÀÇ ¼¼¼ÇÅ°¸¦ ¹Þ´Âµ¥ »ç¿ëÇÏ°í ´ÙÀ½¿¡ »õ Æнº¿öµå¸¦ ±× ¼­ºñ½º¿¡ º¸³»¼­ »ç¿ëÀÚÀÇ Kerberos Æнº¿öµå¸¦ º¯°æÇÑ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ°ÍÀº real Kerberos v4ÀÇ kadmindÇÏ°í¸¸ »ç¿ëÇØ¾ß ÇÑ´Ù. Ưº°ÇÑ ºÎºÐÀÌ ¸¸µé¾îÁöÁö ¾ÊÀ¸¸é AFS kaserver¿Í ÇÔ²² »ç¿ëÇÒ ¼ö ¾ø´Ù. ´õ ¸¹Àº Á¤º¸¸¦ À§Çؼ­´Â ¸ðµâ ÀÛ¼ºÀÚ¿¡°Ô ¹®ÀÇÇϱ⠹ٶõ´Ù. ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: use_first_pass: try_first_pass ¼³¸í: ¸ðµâÀÇ ÀÌ ±¸¼º¿ä¼Ò´Â Kerberos ¼­¹ö¿¡ ƼÄÏ¹ß±Þ Æ¼ÄÏÀ» ¿äûÇϰųª ¼±ÅÃÀûÀ¸·Î ·ÎÄÃÄÄÇ»ÅÍÀÇ È£½ºÆ®Å°¸¦ ¾ò°í ¸¸¾à ·ÎÄÃÄÄÇ»ÅÍ¿¡ Å° ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù¸é ±×°ÍÀ» °Ë»çÇÔÀ¸·Î½á »ç¿ëÀÚÀÇ Kerberos Æнº¿öµå¸¦ °Ë»çÇÑ´Ù. ÀÌ°ÍÀº ¶ÇÇÑ »ç¿ëÀÚ°¡ ³ªÁß¿¡ »ç¿ëÇÒ Æ¼ÄÏÆÄÀÏÀ» ¾²°í, ·Î±×¾Æ¿ôÀ» ÇÒ ¶§ ƼÄÏÆÄÀÏÀ» »èÁ¦ÇÑ´Ù. (login¿¡¼­ PAM_CRED_DELETE°¡ ºÒ¸±¶§±îÁø »èÁ¦ÇÏÁö ¾Ê´Â´Ù) ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâÀº MIT v4 Kerberos Å°¸¦ »ç¿ëÇÏ´Â real Kerberos¼­¹ö¿Í ÇÔ²² »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¸ðµâÀ̳ª ½Ã½ºÅÛ Kerberos ¶óÀ̺귯¸®´Â AFS ¹æ½ÄÀÇ KerberosÅ°¸¦ Áö¿øÇϵµ·Ï ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù. ÇöÀç·Î¼­´Â ¾ÏÈ£ÇÐÀû Á¦ÇÑÀ» ÇÇÇϱâ À§ÇØ ÀÌ°ÍÀ» Áö¿øÇÏÁö ¾Ê°í ÀÖ´Ù. The last login module °³¿ä ¸ðµâ À̸§: pam_lastlog ÀúÀÚ: Andrew G. Morgan <morgan@kernel.org> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: auth ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: API¸¦ »ç¿ëÇÔ º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: /var/log/lastlogÆÄÀÏ¿¡ ÀÖ´Â ³»¿ëÀ» »ç¿ëÇÑ´Ù. ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ session ¸ðµâÀº /var/log/lastlog ÆÄÀÏÀ» °ü¸®ÇÑ´Ù. pam_open_session()ÇÔ¼ö¸¦ ÅëÇØ È£ÃâµÉ ¶§ Á¢¼Ó ¿­¸² ±â·ÏÀ» Ãß°¡ÇÏ°í pam_close_session()ÀÌ È£ÃâµÉ ¶§ ±×°ÍÀ» ¿Ï¼ºÇÑ´Ù. ÀÌ ¸ðµâÀº »ç¿ëÀÚÀÇ ¸¶Áö¸· ·Î±×Àο¡ °üÇÑ Á¤º¸¸¦ ÇÑÁٷΠǥ½ÃÇÒ ¼ö ÀÖ´Ù. ¸¸ÀÏ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ÀÌ¹Ì ÀÌ·¯ÇÑ ÀÛ¾÷À» ¼öÇàÁßÀ̶ó¸é ÀÌ ¸ðµâÀ» »ç¿ëÇÒ ÇÊ¿ä´Â ¾ø´Ù. ¼¼¼Ç°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; nodate; noterm; nohost; silent; never ¼³¸í: PAM ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ´Â ¾î¶² ÇÁ·Î±×·¥À» »ç¿ëÇÏ´øÁö »ç¿ëÀÚ°¡ ½Ã½ºÅÛ¿¡ ·Î±×ÀÎÇÒ ¶§ "Last login on ..." ¸Þ½ÃÁö¸¦ Á¦°øÇϴµ¥ ÀÌ ¸ðµâÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. Ãß°¡·Î ¸ðµâÀº /var/log/lastlog ÆÄÀÏÀ» °ü¸®ÇÑ´Ù. ÀÌ ¸ðµâÀÇ µ¿ÀÛÀº ´ÙÀ½°ú °°Àº Ç÷¡±×¿¡ ÀÇÇØ Á¦¾îÇÒ ¼ö ÀÖ´Ù. debug - syslog(3)¿¡ ´õ ¸¹Àº Á¤º¸¸¦ ±â·ÏÇÑ´Ù. nodate - ½Ã½ºÅÛ¿¡ ¸¶Áö¸· ·Î±×ÀÎÇÑ Á¤º¸¸¦ Ãâ·ÂÇÒ ¶§ ³¯Â¥ Á¤º¸¸¦ »ý·«ÇÑ´Ù. noterm - ¸¶Áö¸·À¸·Î ·Î±×ÀÎ ½ÃµµÇÑ Å͹̳ΠÀ̸§À» Ãâ·ÂÇÏ´Â °ÍÀ» »ý·«ÇÑ´Ù. nohost - ¸¶Áö¸·À¸·Î ·Î±×ÀÎ ½ÃµµÇÑ È£½ºÆ®¸íÀ» ³ªÅ¸³»´Â °ÍÀ» »ý·«ÇÑ´Ù. silent - »ç¿ëÀÚÀÇ ÀÌÀü ·Î±×Àο¡ ´ëÇÑ ¾î¶°ÇÑ Á¤º¸µµ Ãâ·ÂÇÏÁö ¾Ê´Â´Ù. ´ÜÁö /var/log/lastlog ÆÄÀÏ¿¡ ±â·ÏÇϱ⸸ ÇÑ´Ù. never - ¸¸ÀÏ /var/log/lastlog ÆÄÀÏ¿¡ »ç¿ëÀÚÀÇ ¿¾³¯ Á¤º¸°¡ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é »ç¿ëÀÚ´Â ÀÌÀü¿¡ ·Î±×ÀÎ ÇÏÁö ¾Ê¾Ò´Ù´Â °ÍÀ» ³ªÅ¸³»°í "welcome..."¾Æ¶ó´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÑ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâÀº ½Ã½ºÅÛ¿¡ ·Î±×ÀÎ ÇßÀ» ¶§ »õ·Î¿î ¸ÞÀÏÀÌ ÀÖ´Ù´Â °ÍÀ» ³ªÅ¸³»´Âµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù. ´ÙÀ½Àº /etc/pam.d/XXX ÆÄÀÏÀÇ ¿¹Á¦ÀÌ´Ù. # # ¿ì¸®°¡ ¾ðÁ¦ ¸¶Áö¸·À¸·Î ¿©±â ÀÖ¾ú´Â°¡? # session optional pam_lastlog.so ¸î¸î ÀÀ¿ëÇÁ·Î±×·¥Àº ÀÌ ±â´ÉÀ» ÀÚüÀûÀ¸·Î ¼öÇàÇÒ ¼öµµ ÀÖ´Ù. ±×·± °æ¿ì¿¡ ÀÌ ¸ðµâÀº ÇÊ¿äÇÏÁö ¾Ê´Ù. The resource limits module °³¿ä ¸ðµâ À̸§: pam_limits ÀúÀÚ: Cristian Gafton <gafton@redhat.com> ÀÌ ¸ðµâÀÇ °³¼±À» À§ÇØ Á¶¾ðÇØÁØ Elliot Lee <sopwith@redhat.com>¿¡°Ô °¨»çÇÕ´Ï´Ù. À¯Áöº¸¼ö: Cristan Gafton - 1996/11/20 Á¦°øµÇ´Â °ü¸® ±×·ì: session ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: /etc/security/limits.conf ÆÄÀÏÀÌ ÇÊ¿äÇÏ°í Ä¿³ÎÀÌ ¸®¼Ò½º Á¦ÇÑÀ» Áö¿øÇؾßÇÑ´Ù. ¶ÇÇÑ libpwdb ¶óÀ̺귯¸®¸¦ »ç¿ëÇÑ´Ù. ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº, Linux-PAM open-sessionÀ» °¡·Îä´Â °ÍÀ» ÅëÇØ user-session¿¡¼­ ¾òÀ» ¼ö ÀÖ´Â ½Ã½ºÅÛ ÀÚ¿øÀ» Á¦ÇÑÇÑ´Ù. ÀÌ µ¿ÀÛ¿¡ ´ëÇؼ­´Â ¾Æ·¡¿¡¼­ ¾ê±âÇÒ ¼³Á¤ÆÄÀÏÀ» ÅëÇØ ´õ ÀÚ¼¼È÷ ¼³¸íÇÒ °ÍÀÌ´Ù. ¼¼¼Ç°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; conf=/path/to/file.conf ¼³¸í: /etc/security/limits.conf ¼³Á¤ÆÄÀÏÀÇ ³»¿ë¿¡ µû¶ó¼­ »ç¿ëÀÚ ¼¼¼Ç¿¡¼­ ÀÚ¿øÁ¦ÇÑÀÌ ¼³Á¤µÈ´Ù. uid=0ÀÎ »ç¿ëÀÚ´Â ÀÌ·¯ÇÑ Á¦ÇÑ¿¡ ¿µÇâÀ» ¹ÞÁö ¾Ê´Â´Ù. ÀÌ ¸ðµâÀÇ µ¿ÀÛÀº ´ÙÀ½ÀÇ ¸Å°³º¯¼öµé¿¡ ÀÇÇØ Á¦¾îÇÒ ¼ö ÀÖ´Ù. debug - syslog(3)ÀÇ ±â·ÏÀ» ÀÚ¼¼ÇÏ°Ô ÇÑ´Ù. conf=/path/to/file.conf - µðÆúÆ® ÆÄÀÏÀÌ ¾Æ´Ñ Á¦ÇÑ ¼³Á¤ ³»¿ëÀ» °¡Áö´Â ´Ù¸¥ ÆÄÀÏÀÇ À§Ä¡¸¦ ³ªÅ¸³½´Ù. change_uid - ½ÇÁ¦ uid¸¦ Á¦ÇÑ»çÇ×ÀÌ ¼³Á¤µÈ »ç¶÷À¸·Î º¯°æÇÑ´Ù. ÇÁ·Î¼¼½º°¡ ¾ø´Â »ç¿ëÀÚ°¡ login½Ã shellÀ» Æ÷Å©ÇÏÁö ¾Ê´Â °Í°ú °°Àº ¹®Á¦°¡ ÀÖÀ» ¶§ ÀÌ ¿É¼ÇÀ» »ç¿ëÇ϶ó. ÀÌ·¸°Ô ÇÏ¸é ´©±º°¡°¡ ħÀÔÇÒ ¼öµµ ÀÖÀ½À» ÁÖÀÇÇ϶ó. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâÀ» »ç¿ëÇϱâ À§Çؼ­ ½Ã½ºÅÛ °ü¸®ÀÚ´Â ¸ÕÀú root¸¸ Àб⠰¡´ÉÇÑ ÆÄÀÏÀ» ¸¸µé¾î¾ß ÇÑ´Ù. (±âº»ÀûÀ¸·Î /etc/security/limits.confÀÌ´Ù) ÀÌ ÆÄÀÏÀº ¼öÆÛÀ¯Àú°¡ Á¦ÇÑÇÏ·Á°í ÇÏ´Â »ç¿ëÀÚ¿Í ±×·ìÀÇ ÀÚ¿øÁ¦ÇÑ »çÇ×À» °®°í ÀÖ´Ù. uid=0ÀÎ °èÁ¤Àº ¾î¶°ÇÑ Á¦Çѵµ ÇÒ ¼ö ¾ø´Ù. ¼³Á¤ÆÄÀÏÀÇ °¢ ÁÙÀº ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î »ç¿ëÀÚº° Á¦ÇÑÀ» ³ªÅ¸³½´Ù. <domain> <type> <item> <value> À§¿¡ ³ª¿­µÈ ÇʵåµéÀº ´ÙÀ½°ú °°Àº ³»¿ëÀ» °®´Â´Ù. <domain> »ç¿ëÀÚ¸í @group ÇüÅÂÀÇ ±×·ì¸í ±âº»¿£Æ®¸®¸¦ À§ÇÑ ¿ÍÀϵåÄ«µå * <type>Àº ¼¼°¡Áö °ªÀ» °¡Áú ¼ö ÀÖ´Ù. hard - hard ¸®¼Ò½º Á¦ÇÑÀ» ½Ç½ÃÇÑ´Ù. ÀÌ Á¦ÇÑÀº ¼öÆÛÀ¯Àú¿¡ ÀÇÇØ ¼³Á¤µÇ°í ¸®´ª½º Ä¿³Î¿¡ ÀÇÇØ ½Ç½ÃµÈ´Ù. »ç¿ëÀÚ´Â ÀÌ·± °ªÀ» °¡Áø ½Ã½ºÅÛ ÀÚ¿ø¿¡ ´ëÇÑ ¿ä±¸·®À» ¿Ã¸± ¼ö ¾ø´Ù. soft - soft ¸®¼Ò½º Á¦ÇÑÀ» ½Ç½ÃÇÑ´Ù. ÀÌ·¯ÇÑ Á¦ÇÑÀº Á¸ÀçÇÏ´Â hardÁ¦ÇÑ ¹üÀ§³»¿¡¼­ »ç¿ëÀÚ°¡ ¿Ã¸®°Å³ª ³»¸± ¼ö ÀÖ´Â Á¦ÇÑÀÌ´Ù. ÀÌ ½Äº°ÀڷΠǥ½ÃµÈ °ªÀº ÀϹÝÀûÀÎ ½Ã½ºÅÛ »ç¿ë¹ýÀÇ ±âº»°ªÀ¸·Î °£ÁÖµÉ ¼ö ÀÖ´Ù. - soft, hard ¸®¼Ò½º Á¦ÇÑÀ» µ¿½Ã¿¡ °É ¶§ »ç¿ëÇÑ´Ù. <item> ´ÙÀ½ °ªµé Áß Çϳª°¡ µÉ ¼ö ÀÖ´Ù. core - coreÆÄÀÏ Å©±â¸¦ Á¦ÇÑÇÑ´Ù.(KB) data - ÃÖ´ë µ¥ÀÌŸ Å©±â(KB) fsize - ÃÖ´ë ÆÄÀÏÅ©±â(KB) memlock - ÃÖ´ë locked-in-memory ÁÖ¼Ò°ø°£(KB) nofile - ÃÖ´ë ¿­¸° ÆÄÀÏ °³¼ö rss - ÃÖ´ë resident set Å©±â(KB) stack - ÃÖ´ë ½ºÅà ũ±â(KB) cpu - ÃÖ´ë CPU time(MIN) nproc - ÃÖ´ë ÇÁ·Î»õ½º °³¼ö as - ÁÖ¼Ò°ø°£ Á¦ÇÑ maxlogins - ÀÌ »ç¿ëÀÚ¸¦ À§ÇÑ ·Î±×ÀÎ ÃÖ´ë °³¼ö priority - »ç¿ëÀÚ ÇÁ·Î¼¼½º°¡ ½ÇÇàµÇ´Â ¿ì¼±¼øÀ§ ¸¸ÀÏ "-" ŸÀÔÀ» »ç¿ëÇϸ鼭 item°ú value°ªÀ» ÁÖÁö ¾ÊÀ¸¸é ¸ðµâÀº user/group ¸â¹ö µî¿¡ ÇØ´çÇÏ´Â ¾î¶² Á¦Çѵµ ½ÃÇàÇÏÁö ¾ÊÀ½À» ÁÖÀÇÇ϶ó. »ç¿ëÀÚ ÀÎÁõÀÌ Àû¿ëµÇ´Â ù¹ø° ¿£Æ®¸®´Â ¼³Á¤ÆÄÀÏÀÇ ´Ù¸¥ ¸ðµç Á¦ÇÑ »çÇ×ÀÇ ¿£Æ®¸®¿¡ ¿ì¼±ÇÑ´Ù´Â °ÍÀ» ÁÖÀÇÇ϶ó. ±×·± °æ¿ì¿¡ pam_limits´Â Ç×»ó PAM_SUCCESS¸¦ ¸®ÅÏÇÑ´Ù. ÀϹÝÀûÀ¸·Î »ç¿ëÀÚº° Á¦ÇÑÀº ±×·ìÀÇ Á¦ÇÑ¿¡ ¿ì¼±ÇÑ´Ù. ±×·¡¼­ ¸¸ÀÏ admin ±×·ì¿¡ ¾Æ¹« Á¦ÇÑÀ» µÎÁö ¾Ê°í, ÀÌ ±×·ìÀÇ ¸â¹öÁß ÇÑ¸í¿¡ ´ëÇÑ Á¦ÇÑÀ» µî·ÏÇß´Ù¸é ±× »ç¿ëÀÚ´Â ÀÌ ÁÙ¿¡ ÀÇÇØ Á¦ÇÑÀ» ¹ÞÀ» °ÍÀÌ´Ù. ¶ÇÇÑ ¸ðµç Á¦ÇѼ³Á¤ »çÇ×Àº login ´ÜÀ§·Î ¼³Á¤µÈ´Ù´Â °ÍÀ» ÁÖÀÇÇ϶ó. À̰͵éÀº ±Û·Î¹úÇÑ °Íµµ ¾Æ´Ï°í ¿µ¿øÇÑ °Íµµ ¾Æ´Ï´Ù. ´ÜÁö ¼¼¼ÇÀÌ À¯ÁöµÇ´Â µ¿¾È¸¸ Á¸ÀçÇÑ´Ù. Á¦ÇÑ ¼³Á¤ÆÄÀÏ¿¡¼­ '#' ¹®ÀÚ·Î ½ÃÀÛÇÏ´Â ¹®ÀåÀº ÁÖ¼®¹®ÀÌ´Ù. ±× ÁÙÀÇ ³ª¸ÓÁö ºÎºÐÀº ¸ðµÎ ¹«½ÃµÈ´Ù. pam_limits ¸ðµâÀº ¼³Á¤ÆÄÀÏ¿¡ ¹®Á¦°¡ »ý°åÀ» ¶§ syslog(3)À» ÅëÇØ ¼³Á¤¹®Á¦¸¦ º¸°íÇÑ´Ù. ´ÙÀ½Àº ¼³Á¤ÆÄÀÏÀÇ ¿¹Á¦ÀÌ´Ù. # EXAMPLE /etc/security/limits.conf file: # ======================================= # <domain> <type> <item> <value> * soft core 0 * hard rss 10000 @student hard nproc 20 @faculty soft nproc 20 @faculty hard nproc 50 ftp hard nproc 0 @student - maxlogins 4 ÁÖÀÇ, °°Àº ÀÚ¿ø(@faculty¸¦ º¸¶ó)¿¡ soft¿Í hard Á¦ÇÑÀ» »ç¿ëÇÏ´Â °ÍÀº ÁÖ¾îÁø ¼­ºñ½º ¼¼¼Ç¿¡¼­ »ç¿ëÀÚ°¡ ¾òÀ» ¼ö ÀÖ´Â ÀÚ¿øÀÇ ±âº»°ª°ú ÃÖ´ë ·¹º§ÀÇ °ªÀ» ¼³Á¤ÇÑ´Ù. ¸®¼Ò½º Á¦ÇÑÀ» ÇÊ¿ä·Î ÇÏ´Â ¼­ºñ½º(¿¹¸¦µé¾î login)´Â /etc/pam.confÀÇ ÇØ´ç ¼­ºñ½ºÀÇ ¼³Á¤ ¸¶Áö¸·ÁÙ¿¡ ´ÙÀ½°ú °°Àº ÁÙÀ» Ãß°¡ÇÏ¸é µÈ´Ù.(º¸Åë pam_unix sessionÁÙ ´ÙÀ½¿¡) # # pam_limits¸¦ ÅëÇؼ­ ·Î±×ÀÎ ¼¼¼Ç¿¡ ÀÚ¿ø Á¦ÇÑÀ» ¼³Á¤ # login session required pam_limits.so The list-file module °³¿ä ¸ðµâ À̸§: pam_listfile ÀúÀÚ: Elliot Lee <sopwith@cuc.edu> À¯Áöº¸¼ö: Red Hat Software: Michael K. Johnson <johnsonm@redhat.com> 1996/11/18 (ÀÌ°Ô ¿¬¶ôÀÌ ¾ÈµÇ¸é Elliot Lee<sopwith@cuc.edu>·Î ¿¬¶ôÇ϶ó) Á¦°øµÇ´Â °ü¸® ±×·ì: authentication ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ±ú²ýÇÏ°Ô ÄÄÆÄÀϵÊ. ½Ã½ºÅÛ ÀÇÁ¸¼º: ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í list-file ¸ðµâÀº ÀÓÀÇÀÇ ÆÄÀÏ¿¡ ´ëÇØ ¼­ºñ½º¸¦ Çã°¡Çϰųª °ÅºÎÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÑ´Ù. ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: onerr=succeed|fail; sense=allow|deny; file=filename; item=user|tty|rhost|ruser|group|shell apply=user|@group ¼³¸í: ¸ðµâÀº ´ÙÀ½°ú °°ÀÌ ÁöÁ¤µÈ ŸÀÔ¿¡ ÇØ´çÇÏ´Â Ç׸ñÀÇ °ªÀ» ¾ò´Â´Ù. -- user - »ç¿ëÀÚ¸í; PAM_USER tty - ¿äûµÈ Å͹̳ÎÀÇ À̸§À» ³ªÅ¸³½´Ù; PAM_TTY rhost - ¿äûÀÌ µé¾î¿Â ¿ø°Ý È£½ºÆ®ÀÇ À̸§(°¡´ÉÇϸé)À» ³ªÅ¸³½´Ù; PAM_RHOST ruser - ¿äûÀÌ µé¾î¿Â ¿ø°Ý »ç¿ëÀÚÀÇ À̸§À» ³ªÅ¸³½´Ù; PAM_RUSER -- ¶ÇÇÑ file=filename¿¡ ÇØ´çÇÏ´Â ÆÄÀÏÀ» Àо ³ªÅ¸³­ Ç׸ñÀÇ ÀνºÅϽº¸¦ ã´Â´Ù. filenameÀº ³ª¿­µÈ ¾ÆÀÌÅÛ´ç ÇÑ ÁÙÀ» Æ÷ÇÔÇÑ´Ù. ¸¸ÀÏ ¾ÆÀÌÅÛÀÌ ¹ß°ßµÉ¶§ sense=allowÀ̸é PAM_SUCCESS°¡ ¸®ÅÏµÇ°í ±ÇÇѿ䱸´Â ¼º°øÇÏ°í, sense=denyÀ̸é PAM_AUTH_ERR°¡ ¸®ÅÏµÇ°í ±ÇÇѿ䱸´Â ½ÇÆÐÇÑ´Ù. ¸¸ÀÏ ¿À·ù°¡ ¹ß»ýÇÏ°í(¿¹¸¦µé¾î filenameÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù°Å³ª À߸øµÈ ÀÎÀÚ¸¦ ¸¸³µÀ»¶§) onerr=succeedÀ̸é PAM_SUCCESS¸¦ ¸®ÅÏÇÏ°í ±×·¸Áö ¾ÊÀ»¶§ Áï, onerr=failÀ̸é PAM_AUTH_ERR ¶Ç´Â PAM_SERVICE_ERR(ÀûÀýÇÏ°Ô)ÀÌ ¸®ÅϵȴÙ. Ãß°¡ÀûÀÎ ¸Å°³º¯¼ö·Î 'apply='´Â ƯÁ¤ »ç¿ëÀÚ(apply=»ç¿ëÀÚ¸í) ¶Ç´Â ÁÖ¾îÁø ±×·ì(apply=@±×·ì¸í)À¸·Î Àû¿ëÀ» Á¦ÇÑÇϴµ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ´Â tty, rhost, shell ¾ÆÀÌÅÛ°ú ÇÔ²² »ç¿ëµÉ ¶§¸¸ Àǹ̰¡ ÀÖ´Â Á¦ÇÑÀÌ´Ù. ¸¶Áö¸·°ÍÀ» Á¦¿ÜÇÏ¸é ¸ðµç ¸Å°³º¯¼ö´Â ÇʼöÀûÀÌ´Ù. ÀÌ ¸ðµâÀÌ ±âº»ÀûÀ¸·Î ¹«¾ùÀ» ÇØ ÁÙ °ÍÀ̶ó°í ±â´ëÇÏÁö ¸¶¶ó. ÀÌ ¸ðµâÀÇ ±âº» µ¿ÀÛÀº ¾ðÁ¦³ª º¯ÇÒ ¼ö ÀÖ´Ù. ÀÌ ¸ðµâÀº ¾î¶² º¸Áõ¼­(credential)µµ ÁÙ ¼ö ¾ø´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀüÅëÀûÀÎ 'ftpusers' ÀÎÁõÀº /etc/pam.conf¿¡ ¾Æ·¡ÀÇ ¿¹¸¦ »ç¿ëÇÏ¿© °¡´ÉÇÏ´Ù: # # /etc/ftpusers ÆÄÀÏ¿¡ Á¸ÀçÇÏ´Â »ç¿ëÀÚ´Â ftp Á¢¼ÓÀ» °ÅºÎ # ftp auth required pam_listfile.so \ onerr=succeed item=user sense=deny file=/etc/ftpusers /etc/ftpusersÆÄÀÏ¿¡ ÀÖ´Â »ç¿ëÀÚ´Â (Á÷°ü°ú´Â ¹Ý´ë·Î) ftp¼­ºñ½º¸¦ »ç¿ëÇÒ ¼ö ¾øÀ½À» À¯ÀÇÇ϶ó. ƯÁ¤ »ç¿ëÀÚ¸¸ loginÀ» ÇÏ°ÔÇÏ·Á¸é pam.conf¸¦ ¾Æ·¡¿Í °°ÀÌ Ç϶ó. # # /etc/loginusers ÆÄÀÏ¿¡ ÀÖ´Â »ç¿ëÀÚ¸¸ ·Î±×ÀÎÀ» Çã¿ë # login auth required pam_listfile.so \ onerr=fail item=user sense=allow file=/etc/loginusers ÀÌ ¿¹Á¦°¡ Á¦´ë·Î µ¿ÀÛÇϱâ À§Çؼ­´Â, login¼­ºñ½º¸¦ Çã¿ëÇÏ·Á´Â ¸ðµç »ç¿ëÀÚ´Â /etc/loginusers¿¡ ¿­°ÅµÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ÀϺη¯ root¸¦ loginÇÏÁö ¾Ê°Ô ÇÏ´Â°Ô ¾Æ´Ï¶ó¸é, root°¡ ·Î±×ÀÎÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ¿­¾î ³õ¾Ò´ÂÁö È®ÀÎÇضó. /etc/loginusers¿¡ root¸¦ ³Ö¾î ³õ´øÁö, root·Î su¸¦ ÇÒ ¼ö ÀÖ´Â »ç¿ëÀÚ¸¦ ³Ö¾î ³õ´øÁö Çؼ­ root°¡ loginÇÒ ¹æ¹ýÀ» ¿­¾î µÎ¾î¶ó. The Mail module °³¿ä ¸ðµâ À̸§: pam_mail ÀúÀÚ: Andrew G. Morgan <morgan@linux.kernel.org> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: authentication (credential) Session(open) ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ±ú²ýÇÔ ½Ã½ºÅÛ ÀÇÁ¸¼º: ±âº» mail µð·ºÅ丮 /var/spool/mail/ ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº »ç¿ëÀÚÀÇ ¸ÞÀÏ µð·ºÅ丮¸¦ º¸°í ¸ÞÀÏÀÌ µé¾î ÀÖ´ÂÁö ¾Ë·ÁÁØ´Ù. ¼¼¼Ç°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; dir=directory-name; nopen; close; noenv; empty; hash=hashcount; standard; quiet; ¼³¸í: ÀÌ ¸ðµâÀº »ç¿ëÀÚ¿¡°Ô "you have new mail" ¼­ºñ½º¸¦ Á¦°øÇÑ´Ù. ÀÌ´Â º¸Áõ¼­¸¦ °¡·Îä´Â ¾î¶² ÀÀ¿ëÇÁ·Î±×·¥¿¡µµ ³¢¿ö ³ÖÀ» ¼ö ÀÖ´Ù. ÀÌ´Â »ç¿ëÀÚÀÇ ¸ÞÀÏ Æú´õ¿¡ ¾î¶² »õ·Î¿î ¸ÞÀÏÀÌ ÀÖÀ½À» ³ªÅ¸³»´Â °£´ÜÇÑ ¸Þ½ÃÁö¸¦ º¸³½´Ù. ÀÌ ¸ðµâÀº Linux-PAM ȯ°æº¯¼öÀÎ MAILÀ» »ç¿ëÀÚÀÇ ¸ÞÀÏ µð·ºÅ丮·Î ¼³Á¤ÇÑ´Ù. ÀÌ ¸ðµâÀÇ µ¿ÀÛÀº ´ÙÀ½ Ç÷¡±×µé¿¡ ÀÇÇØ º¯°æÇÒ ¼ö ÀÖ´Ù. debug - syslog(3)·Î ´õ ¸¹Àº Á¤º¸¸¦ ±â·ÏÇÑ´Ù. dir=pathname - ±âº»°ª ´ë½Å ÁöÁ¤µÈ pathname¿¡¼­ »ç¿ëÀÚÀÇ ¸ÞÀÏÀ» ã´Â´Ù. ¸ÞÀÏÀÇ ±âº» À§Ä¡´Â /var/spool/mailÀÌ´Ù. ÁÖÀÇÇÒ Á¡Àº ¸¸ÀÏ ÁÖ¾îÁø pathnameÀÌ '~'·Î ½ÃÀÛÇÑ´Ù¸é µð·ºÅ丮´Â »ç¿ëÀÚ È¨ µð·ºÅ丮¿¡ ÀÖ´Â ÆÄÀÏÀ» ³ªÅ¸³»´Â °ÍÀ¸·Î Çؼ®µÉ °ÍÀ̶ó´Â °ÍÀÌ´Ù. nopen - ¸ðµâÀÌ »ç¿ëÀÚÀÇ º¸Áõ¼­¸¦ ¾ò¾úÀ» ¶§ ¾î¶² ¸ÞÀÏ¿¡ ´ëÇÑ Á¤º¸µµ Ãâ·ÂÇÏÁö ¾Êµµ·Ï ÇÑ´Ù. ÀÌ°ÍÀº MAILȯ°æº¯¼öÀÇ °ªÀ» ¾òÁö¸¸ Á¤º¸¸¦ Ç¥½ÃÇÏÁö ¾ÊÀ»¶§ À¯¿ëÇÏ´Ù. close - »ç¿ëÀÚÀÇ º¸Áõ¼­°¡ Ãë¼ÒµÇ¾úÀ» ¶§ ¸ðµâÀÌ »ç¿ëÀÚ¿¡°Ô ¿Â ¸ÞÀÏÀÌ ÀÖ´ÂÁö ¾Ë·ÁÁØ´Ù. noenv - MAIL ȯ°æº¯¼ö¸¦ ¼³Á¤ÇÏÁö ¾Ê´Â´Ù. empty - ¸¸ÀÏ »ç¿ëÀÚÀÇ ¸ÞÀϵð·ºÅ丮°¡ ºñ¾ú´Ù¸é »ç¿ëÀÚ¿¡°Ô ±× »ç½ÇÀ» ¾Ë¸°´Ù. hash=hashcount - ¸ÞÀϵð·ºÅ丮 Çؽ¬ ±íÀÌ. ¿¹¸¦µé¾î hashcount°¡ 2¶ó´Â °ÍÀº ¸ÞÀÏÆÄÀÏÀº /var/spool/mail/u/s/user°¡ µÇµµ·Ï ¸¸µç´Ù. standard - ¿¹Àü ¹æ½ÄÀÇ "You have..." ÇüÅÂÀÇ ¸Þ½ÃÁö¸¦ º¸¿©ÁØ´Ù. ÀÌ°ÍÀº »ç¿ëµÇ´Â ¸ÞÀÏ ½ºÇ®À» º¸¿©ÁÖÁö ¾Ê´Â´Ù. ¶ÇÇÑ ÀÌ°ÍÀº 'empty'¸¦ Æ÷ÇÔÇÑ´Ù. quiet - »õ·Î¿î ¸ÞÀÏÀÌ ÀÖÀ» ¶§¸¸ ¾Ë·ÁÁØ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâÀº »ç¿ëÀÚ°¡ ½Ã½ºÅÛ¿¡ ·Î±×ÀÎ ÇßÀ» ¶§ »õ·Î¿î ¸ÞÀÏÀÌ ÀÖÀ½À» ³ªÅ¸³»´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù. ¿©±â /etc/pam.conf ÆÄÀÏÀÇ ¿¹Á¦°¡ ÀÖ´Ù. # # »õ ¸ÞÀÏÀÌ ¿Ô´Â°¡? # login session optional pam_mail.so ÁÖÀÇÇÒ Á¡Àº, ¸¸ÀÏ ¸ÞÀÏ ½ºÇ®ÆÄÀÏ(/var/spool/mail/$USER ¶Ç´Â dir=parameter·Î¼­ ÁÖ¾îÁö´Â °æ·Î°¡ µÉ ¼ö ÀÖ´Ù)ÀÌ µð·ºÅ丮¶ó¸é pam_mailÀº ±×°ÍÀÌ Qmail Maildir ÇüŶó°í »ý°¢ÇÑ´Ù´Â °ÍÀÌ´Ù. ¸î¸î ÀÀ¿ëÇÁ·Î±×·¥Àº ÀÌ ±â´ÉÀ» ÀÚüÀûÀ¸·Î ¼öÇàÇÒ ¼öµµ ÀÖ´Ù. ±×·±°æ¿ì¿¡ ÀÌ ¸ðµâÀº ÇÊ¿äÇÏÁö ¾Ê´Ù´Â Á¡À» ÁÖÀÇÇ϶ó. ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀÎÁõ°ü¸® ºÎºÐÀº ¸ðµç µ¿ÀÛÀÌ pam_setcred() »óÅ¿¡¼­ ÀÌ·ç¾îÁø´Ù´Â °ÍÀ» Á¦¿ÜÇϸé session ºÎºÐ°ú °°°Ô µ¿ÀÛÇÑ´Ù. ù ·Î±×Àνà Ȩ µð·ºÅ丮 ¸¸µé±â(Create home directories on initial login) °³¿ä ¸ðµâ À̸§: pam_mkhomedir ÀúÀÚ: Jason Gunthorpe <jgg@ualberta.ca> À¯Áöº¸¼ö: Ben Collins <bcollins@debian.org> Á¦°øµÇ´Â °ü¸® ±×·ì: Session ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ±ú²ýÇÔ ½Ã½ºÅÛ ÀÇÁ¸¼º: ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÎÁõµÈ »ç¿ëÀÚ¸¦ ·Î±×ÀνÃÅ°´Â Áß¿¡ Ȩ µð·ºÅ丮¸¦ »ý¼ºÇÑ´Ù. ¼¼¼Ç°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; skel=skeleton=dir; umask=octal-umask; ¼³¸í: ÀÌ ¸ðµâÀº »ç¿ëÀÚ°¡ Áß¾Ó µ¥ÀÌŸº£À̽º(NIS, NIS+, LDAPµî)¿¡ ÀÇÇؼ­ °ü¸®µÇ°í ¿©·¯ ½Ã½ºÅÛÀ» ÅëÇØ Á¢±ÙÇÏ´Â ºÐ»ê½Ã½ºÅÛ¿¡¼­ À¯¿ëÇÏ°Ô »ç¿ëµÈ´Ù. ÀÌ´Â »ç¿ëÀÚ°¡ óÀ½À¸·Î ¼º°øÀûÀ¸·Î ÀÎÁõµÈ ·Î±×ÀÎÀ» ÇßÀ» ¶§ »ç¿ëÀÚÀÇ ±âº» Ȩ µð·ºÅ丮¸¦ »ý¼ºÇÔÀ¸·Î½á °ü¸®ÀÚ°¡ °¢°¢ÀÇ ½Ã½ºÅÛ¿¡ Á÷Á¢ Ȩµð·ºÅ丮¸¦ »ý¼ºÇÏ´Â ¼ö°í¸¦ ´ú¾îÁØ´Ù. ±âº» ÆÄÀÏÀ» º¹»çÇϱâ À§ÇØ skeleton µð·ºÅ丮(º¸Åë /etc/skel/)°¡ »ç¿ëµÇ°í ¶ÇÇÑ »ý¼º½Ã¿¡ umask°ªµµ ¼³Á¤ÇÑ´Ù. ÀÌ ¸ðµâÀÇ µ¿ÀÛÀº ´ÙÀ½Áß ÇϳªÀÇ Ç÷¡±×µé¿¡ ÀÇÇØ Á¦¾îµÈ´Ù. skel - »õ·Î¿î Ȩ µð·ºÅ丮¿¡ º¹»çÇÒ ±âº»ÆÄÀÏÀÌ ÀÖ´Â skeleton µð·ºÅ丮 umask - ½©ÀÇ umask ¸í·É¾î¿¡°Ô Àü´ÞÇÒ 8Áø¼öÀÇ ¼ýÀÚ ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 ¿À´ÃÀÇ ¸Þ½ÃÁö Ãâ·Â(Output the motd file) °³¿ä ¸ðµâ À̸§: pam_motd ÀúÀÚ: Ben Collins <bcollins@debian.org> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: Session(open) ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº ¼º°øÀûÀÎ ·Î±×Àνÿ¡ motd ÆÄÀÏ(±âº»ÀûÀ¸·Î /etc/motdÆÄÀÏ)À» Ãâ·ÂÇÑ´Ù. ¼¼¼Ç°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; motd=motd-file-name; ¼³¸í: ÀÌ ¸ðµâÀº ¿©·¯ºÐÀÌ ¼º°øÀûÀÎ ·Î±×ÀÎ ÈÄ¿¡ ÀÓÀÇÀÇ motd(message of the day)¸¦ Ãâ·ÂÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ±âº»ÀûÀ¸·Î /etc/motdÆÄÀÏÀÌ »ç¿ëµÇ°í ¾î¶² ÆÄÀϷεµ ¼³Á¤ÀÌ °¡´ÉÇÏ´Ù. ÀÌ ¸ðµâÀÇ µ¿ÀÛÀº ´ÙÀ½ Ç÷¡±×µé¿¡ ÀÇÇØ Á¦¾îµÈ´Ù. motd - ±âº»ÆÄÀÏÀ» »ç¿ëÇÏÁö ¾ÊÀ» ¶§ Ãâ·ÂÇÒ ÆÄÀÏ ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: login session pam_motd.so motd=/etc/motd The no-login module °³¿ä ¸ðµâ À̸§: pam_nologin ÀúÀÚ: Michael K. Johnson <johnsonm@redhat.com> (based on code taken from a module written by Andrew G. Morgan <morgan@parc.power.net>). À¯Áöº¸¼ö: Michael K. Johnson <johnsonm@redhat.com> Á¦°øµÇ´Â °ü¸® ±×·ì: authentication ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: dropping const¿¡ °üÇÑ warning 1°³ ½Ã½ºÅÛ ÀÇÁ¸¼º: ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í Ç¥ÁØ UNIX nologin ÀÎÁõÀ» Á¦°øÇÑ´Ù. ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: ¼³¸í: Ç¥ÁØ UNIX nologinÀÎÁõÀ» Á¦°øÇÑ´Ù. /etc/nologinÆÄÀÏÀÌ Á¸ÀçÇϸé, root¸¸ ·Î±×ÀÎÇÒ ¼ö ÀÖ°í; ´Ù¸¥ »ç¿ëÀÚ´Â ¿¡·¯¸Þ½ÃÁö¿Í ÇÔ²² °ÅºÎµÈ´Ù. ¸ðµç »ç¿ëÀÚµé(root¶Ç´Â ÀÏ¹Ý »ç¿ëÀÚ)Àº /etc/nologinÀÇ ³»¿ë¿¡ µé¾î°¥ ¼ö ÀÖ´Ù. /etc/nologinÆÄÀÏÀÌ ¾ø´Ù¸é, ¸ðµâÀº Á¶¿ëÈ÷ ¼º°øÀ» ¸®ÅÏÇÑ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâÀÌ È¿°úÀûÀÌ·Á¸é, ¸ðµç login¹æ¹ýµéÀÌ ÀÌ°ÍÀ» »ç¿ëÇÏ°Ô ÇؾßÇÑ´Ù. Ç¥ÁØ UNIX nologinµ¿ÀÛÀ» Á¦´ë·Î ÇÏ·Á¸é sufficient¸ðµâ ¾Õ¿¡ required·Î ÀÌ ¸ðµâÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù. ¹«Á¶°Ç ½Å·Ú ¸ðµâ(The promiscuous module) °³¿ä ¸ðµâ À̸§: pam_permit ÀúÀÚ: Andrew G. Morgan, <morgan@parc.power.net> À¯Áöº¸¼ö: Linux-PAM À¯Áöº¸¼öÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: account; authentication; password; session ¾ÏÈ£ÇÐÀûÀÎ ¹Î°¨¼º: º¸¾È µî±Þ: ¸Å¿ì ³·À½. »ç¿ë½Ã ÁÖÀÇ¿äÇÔ. ÄÄÆÄÀϽà ¸Þ½ÃÁö: ¾øÀ½. ½Ã½ºÅÛ ÀÇÁ¸¼º: ³×Æ®¿öÅ© ÀνÄ: °³¿ä ÀÌ ¸ðµâÀº º¸¾È»óÀ¸·Î ¸Å¿ì À§ÇèÇϹǷΠ´ë´ÜÈ÷ ÁÖÀÇÇؼ­ »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀÌ ÇàÇÏ´Â ÀÏÀº ¾ðÁ¦³ª Á¢±ÙÀ» Çã¿ëÇÏ´Â °Í »ÓÀ̱⠶§¹®ÀÌ´Ù. ±× ¿ÜÀÇ ´Ù¸¥ ÀÏÀº ÀüÇô ÇÏÁö ¾Ê´Â´Ù. °èÁ¤°ü¸® + ÀÎÁõ°ü¸® + Æнº¿öµå°ü¸® + ¼¼¼Ç°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: ¼³¸í: ¾î¶² °ü¸®±×·ì¿¡ ¼ÓÇÏ°Ç°£¿¡ ÀÌ ¸ðµâÀÌ ÇÏ´Â µ¿ÀÛÀº ÀÛ¾÷ÀÌ ¼º°øÀûÀ̾úÀ½À» ¾Ë¸®´Â PAM_SUCCESS¸¦ µ¹·ÁÁÖ´Â ÀÏ »ÓÀÌ´Ù. ÀÎÁõÀÇ °æ¿ì¿¡´Â »ç¿ëÀÚÀÇ À̸§À» ¾ò´Â´Ù. ¸¸¾à ÀÌ À̸§ÀÌ ¾ø´Ù¸é ¸¹Àº ÇÁ·Î±×·¥µéÀÌ ÀÛ¾÷¿¡ È¥¶õÀ» °Þ°Ô µÇ±â ¶§¹®ÀÌ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâÀº »ç¿ëÇÏ´Â °ÍÀº °ÅÀÇ ¹Ù¶÷Á÷ÇÏÁö ¾Ê´Ù. ±×·¸Áö¸¸ ÀÌ ¸ðµâÀÇ »ç¿ëÀÌ ÀûÀýÇÑ °æ¿ìµµ ÀÖ´Ù. ¿¹¸¦µé¾î ¸¸¾à ½Ã½ºÅÛ °ü¸®ÀÚ°¡ °èÁ¤°ü¸®¸¦ ²¨¹ö¸®Áö¸¸ µ¿½Ã¿¡ ·Î±×ÀÎÀ» Çã¿ëÇÏ´Â °æ¿ì ´ÙÀ½ÀÇ ¼³Á¤ÆÄÀÏ ³»¿ëÀ» ÀÌ¿ëÇÒ ¼öµµ ÀÖ´Ù. # # »ç¿ëÀÚ ·Î±×ÀÎÀ» °è¼ÓÇã¿ëÇÏÁö¸¸ °èÁ¤°ü¸®¸¦ ²¨¹ö¸®±â À§Çؼ­ # ´Ù¸¥ ·Î±×ÀÎ µî·Ï¿¡ ÀÌ ÁÙÀ» Ãß°¡Ç϶ó. # login account required pam_permit.so The Password-Database module °³¿ä ¸ðµâ À̸§: pam_pwdb ÀúÀÚ: Cristian Gafton <gafton@redhat.com> and Andrew G. Morgan <morgan@kernel.org> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: account; authentication; password; session ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: ¿Ã¹Ù¸£°Ô ¼³Á¤µÈ libpwdb ÇÊ¿äÇÔ ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº pam_unix_.. ¸ðµâÀÇ ´ëüÆÇÀÌ´Ù. ÀÌ ¸ðµâÀº http://linux.kernel.org/morgan/libpwdb/index.html¿¡ ÀÖ´Â Password Database libraryÀÇ ÀϹÝÀûÀÎ ÀÎÅÍÆäÀ̽º¸¦ µû¸¥´Ù. °èÁ¤°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug ¼³¸í: debug ¿É¼ÇÀ» ÁÖ¸é ÀÌ ¸ðµâÀÇ ÃßÀû±â´ÉÀ» ¸ÃÀº syslog(3)¿¡ ´õ ¸¹Àº Á¤º¸¸¦ ±â·ÏÇÑ´Ù. (ÀÌ ¸ðµâ¿¡¼­ Áö¿øµÇ´Â ´Ù¸¥ ¿É¼ÇµéÀº ¿¡·¯ ¸Þ½ÃÁö¸¦ ³»º¸³»Áö ¾Ê°í Á¶¿ëÈ÷ ¹«½ÃµÈ´Ù. ±×·¸Áö¸¸ ±×¿ÜÀÇ ¿É¼ÇµéÀ» ÀÔ·ÂÇÑ °æ¿ì syslog(3)¸¦ ÅëÇؼ­ ¿¡·¯·Î ±â·ÏµÈ´Ù.) ÀÌ ¸ðµâÀº ´ÙÀ½ÀÇ pwdb_elementµé¿¡ ±â¹ÝÇϴµ¥ ±× pwdb_elementµéÀº ´ÙÀ½°ú °°´Ù. expire; last_change; max_change; defer_change; warn_change. ÀÌ ¸ðµâÀº »ç¿ëÀÚÀÇ °èÁ¤°ú Æнº¿öµåÀÇ »óŸ¦ È®ÀÎÇÑ´Ù. Æнº¿öµåÀÇ »óŸ¦ È®ÀÎÇÒ ¶§¿¡´Â »ç¿ëÀÚÀÇ Æнº¿öµå¸¦ ¹Ù²Ùµµ·Ï ±Ç°íÇϰųª PAM_AUTHTOKEN_REQD¸¦ µ¹·ÁÁÜÀ¸·Î½á »õ Æнº¿öµå¸¦ ÀÔ·ÂÇÒ ¶§±îÁö ¼­ºñ½º ½ÇÇàÀ» ´ÊÃß°Ô ÇÒ ¼ö ÀÖ´Ù. ¾Õ¿¡¼­ ¾ð±ÞÇÑ pwdb_elementµé¿¡ ´ëÇÑ Á¢±ÙÀº Password Database Library Guide¿¡ ±â¼úµÇ¾î ÀÖ´Ù. ¸¸¾à »ç¿ëÀÚÀÇ ±â·ÏÀÌ ÀÌ ¸ðµâµéÁß Çϳª ÀÌ»óÀ» Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù¸é ÇØ´çÇÏ´Â shadow¿¡ ´ëÇÑ °Ë»ç´Â ÇÏÁö ¾Ê´Â´Ù. ¿¹Á¦: °èÁ¤°ü¸® ¸ðµå¿¡¼­´Â ´ÙÀ½°ú °°ÀÌ ÀÌ ¸ðµâÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. # # »ç¿ëÀÚÀÇ °èÁ¤°ú Æнº¿öµå°¡ ¾ÆÁ÷ À¯È¿ÇÑÁö È®ÀÎ # login account required pam_pwdb.so ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; use_first_pass; try_first_pass; nullok; nodelay; likeauth ¼³¸í: debug ¿É¼ÇÀ» ÁÖ¸é ÀÌ ¸ðµâÀÇ ÃßÀû±â´ÉÀ» ¸ÃÀº syslog(3)¿¡ ´õ ¸¹Àº Á¤º¸¸¦ ±â·ÏÇÑ´Ù. ÀÌ ¸ðµâÀº ¸¸¾à »ç¿ëÀÚÀÇ Æнº¿öµå°¡ ºñ¾îÀÖ´Ù¸é »ç¿ëÀÚ°¡ ¼­ºñ½º¸¦ »ç¿ëÇÏ´Â °ÍÀ» °ÅºÎÇÏ´Â °ÍÀ» ±âº»À¸·Î Çϵµ·Ï ¼³Á¤µÇ¾î ÀÖ´Ù. ¸¸¾à nullok¿É¼ÇÀ» »ç¿ëÇÑ´Ù¸é ÀÌ ±âº»µ¿ÀÛÀ» ¹«½ÃÇÏ°í Æнº¿öµå°¡ ºñ¾îÀ־ »ç¿ëÀÚ°¡ ¼­ºñ½º¸¦ »ç¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù. try_first_pass¿É¼ÇÀ» »ç¿ëÇÑ °æ¿ì ¿ì¼±ÀûÀ¸·Î auth-module¿¡ Á¤ÀǵǾî ÀÖ´Â ´Ù¸¥ ¸ðµâ¿¡¼­ »ç¿ëµÈ Æнº¿öµå¸¦ ¸ÕÀú ´ëÀÔÇغ¸°í ½ÇÆÐÇÑ °æ¿ì »ç¿ëÀÚ¿¡°Ô Æнº¿öµå¸¦ ÀÔ·ÂÇϵµ·Ï ¿ä±¸ÇÑ´Ù. ¸¸¾à use_first_pass¸¦ ¿É¼ÇÀ¸·Î »ç¿ëÇÑ°æ¿ì¿¡´Â ÀÌ·¸°Ô ±â¾ïµÈ Æнº¿öµå¸¸À» »ç¿ëÇϵµ·Ï ¼³Á¤µÇ¹Ç·Î »ç¿ëÀÚ¿¡°Ô Æнº¿öµå¸¦ ÀÔ·ÂÇϵµ·Ï ¿ä±¸ÇÏÁö ¾Ê´Â´Ù. ¸¸¾à ÀÌ °æ¿ì¿¡ Æнº¿öµå°¡ Ʋ¸®°Å³ª »ç¿ëÇÒ ¼ö ÀÖ´Â ±â¾ïµÈ Æнº¿öµå°¡ ¾Æ¹«°Íµµ ¾ø´Ù¸é ÀÎÁõ¿¡ ½ÇÆÐÇÏ°Ô µÈ´Ù. nodelay¸¦ ¿É¼ÇÀ¸·Î »ç¿ëÇÑ °æ¿ì¿¡ ¸¸¾à ÀÎÁõÀÌ ÀüüÀûÀ¸·Î ½ÇÆÐÇÑ °æ¿ì ÀÎÁõ¸ðµâÀÌ ±â´Ù¸®Áö ¾Ê°í ¹Ù·Î ó¸®Çϵµ·Ï ÇÏ´Â °æ¿ì¿¡ ¾²ÀÏ ¼ö ÀÖ´Ù. ±âº»ÀûÀÎ ¸ðµâÀÇ µ¿ÀÛÀº ½ÇÆÐÇÑ °æ¿ì ÃÊ ´ÜÀ§·Î ¿¬±â¸¦ ¿äûÇϵµ·Ï µÇ¾î ÀÖ´Ù. ÀÌ ¸ðµâÀÇ ´Ù¸¥ ±â´É¿¡¼­ Áö¿øµÇ´Â ³²Àº ÀÎÀÚµéÀº Á¶¿ëÈ÷ ¹«½ÃµÈ´Ù. ±×¿ÜÀÇ ÀÎÀÚµéÀº syslog(3)¿¡¼­ ¿¡·¯·Î ±â·ÏµÈ´Ù. pwdb_chkpwdÇÁ·Î±×·¥Àº »ç¿ëÀÚÀÇ Æнº¿öµå°¡ Àб⸦ ¸·¾Æ³õÀº database¿¡ ÀúÀåÇÑ °æ¿ì »ç¿ëÀÚÀÇ Æнº¿öµå¸¦ °Ë»çÇϱâ À§Çؼ­ Á¦°øµÈ´Ù. ÀÌ ÇÁ·Î±×·¥Àº ¸Å¿ì °£´ÜÇϸç ÀÌ ÇÁ·Î±×·¥À» ½ÇÇàÇÑ »ç¿ëÀÚÀÇ Æнº¿öµå¸¸À» °Ë»çÇÑ´Ù. ÀÌ ÇÁ·Î±×·¥Àº ÀÌ ¸ðµâÀÇ ÀÎÁõ ºÎºÐ¸¸À» È£ÃâÇÏ¸ç »ç¿ëÀÚ¸¦ À§Çؼ­ Åõ¸íÇÏ°Ô ½ÇÇàµÈ´Ù. ÀÌ·± ¹æ½ÄÀ» ÅëÇؼ­ xclock°°Àº ÀÀ¿ëÇÁ·Î±×·¥µéÀÌ setuid-root¸¦ °ÉÁö ¾Ê°íµµ ½ÇÇàµÉ ¼ö ÀÖ´Ù. likeauth¿É¼ÇÀ» »ç¿ëÇÏ¸é ½ÅÀÓÇÏ´Â ¸ðµâ·Î È£ÃâÇÒ¶§³ª ÀÎÁõ¸ðµâ·Î È£ÃâÇÒ¶§³ª °°Àº °ªÀ» µ¹·ÁÁÖµµ·Ï ¸¸µç´Ù. ÀÌ·¸°Ô Çϵµ·Ï Çϸé libpamÀÌ ´ç½ÅÀÇ ¸¸µç ¼³Á¤ÆÄÀÏÀÇ ¼³Á¤À» ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò°¡ Á¤»óÀûÀÎ °æ·Î¸¦ µû¶ó ¼öÇà°¡´ÉÇÏ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâÀÇ ÀûÀýÇÑ ÀÛµ¿À» À§Çؼ­´Â /etc/pwdb.confÆÄÀÏÀÇ ¼³Á¤ÀÌ ¿Ã¹Ù¸£°Ô µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ±× ÆÄÀÏ¿¡ ÁöÁ¤µÈ »ç¿ëÀÚ database´Â ÀÎÁõµÈ »ç¿ëÀÚÀÇ ±â·ÏÀ» °¡Áö°í ÀÖ´Ù. Æнº¿öµå°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; nullok; not_set_pass; use_authtok; try_first_pass; use_first_pass; md5; bigcrypt; shadow; radius; unix ¼³¸í: pam_pwdbÀÇ ÀÌ ¸ðµâÀº »ç¿ëÀÚÀÇ Æнº¿öµå¸¦ °»½ÅÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. libpwdbÀÇ À¯¿¬¼º ´öºÐ¿¡ ÀÌ ¸ðµâÀº »ç¿ëÀÚÀÇ Æнº¿öµå¸¦ ´Ù¸¥ database·Î ¿Å±æ ¼ö ÀÖ°Ô ÇØ ÁØ´Ù. ÀÌ°ÍÀº ¾Æ¸¶µµ µ¿ÀûÀ¸·Î »ç¿ëÀÚÀÇ databaseÁ¢±ÙÀ» ¾ÈÀüÇÏ°Ô ÇØÁÖ´Â ¿ªÇÒÀ» ÇÒ °ÍÀÌ´Ù. (ÇöÀç ÀÌ ±â´ÉÀº ¸Å¿ì ºÒ¾ÈÁ¤ÇÏ´Ù!) - ÀÌ°ÍÀÌ shadow, radius, ±×¸®°í unix argumentµéÀÇ ¸ñÀûÀÌ´Ù. º¸ÅëÀÇ unix databaseÀÇ °æ¿ì(¾ÏȣȭµÈ »ç¿ëÀÚ Æнº¿öµå¸¦ ÀúÀå) md5¿É¼ÇÀ» »ç¿ëÇϴµ¥ ÀÌ°ÍÀº ÀüÅëÀûÀÎ crypt(3)´ë½Å MD5 functionÀ» »ç¿ëÇؼ­ ¾ÏȣȭÇÑ´Ù. ÀÌ ¿ÜÀÇ ¼±ÅûçÇ×À¸·Î DEC (Digital Equipment Cooperation)ÀÇ `C2' extensionÀ» »ç¿ëÇؼ­ 8ÀÚÀÌ»óÀ» ¾ÏȣȭÇÒ ¼ö ÀÖ´Â bigcrypt¿É¼ÇÀ» ÁÙ ¼ö ÀÖ´Ù. nullok ¸ðµâÀ» »ç¿ëÇؼ­ »ç¿ëÀÚÀÇ Æнº¿öµå¸¦ ºó °ÍÀ¸·Î ¸¸µé ¼ö ÀÖ´Ù. ¸¸¾à nullok¿É¼ÇÀ» »ç¿ëÇÏÁö ¾ÊÀº °æ¿ì¿£ ºó Æнº¿öµå´Â °èÁ¤À» Àá±×´Â °Í°ú °°ÀÌ Ã³¸®µÈ´Ù. use_first_pass ¿É¼ÇÀº ¾Õ¿¡¼­ »ç¿ëµÈ Æнº¿öµå ¸ðµâ¿¡¼­ ¾´ Æнº¿öµå·Î °íÁ¤½Ãų ¶§ »ç¿ëµÈ´Ù. try_first_pass¿É¼ÇÀº ¾Õ¿¡¼­ »ç¿ëµÇ¾úÀ»Áöµµ ¸ð¸£´Â Æнº¿öµå¸¦ ´Ù½Ã °øÀ¯Çؼ­ »ç¿ëÇϵµ·Ï ÁöÁ¤Çؼ­ »ç¿ëÀÚ°¡ Æнº¿öµå¸¦ ´Ù½Ã ÀÔ·ÂÇÒ ÇÊ¿ä°¡ ¾øµµ·Ï ÇÒ °æ¿ì »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ÀÌÀü¿¡ »ç¿ëµÈ Æнº¿öµå°¡ ¿Ã¹Ù¸£Áö ¾Ê´Ù¸é »ç¿ëÀÚ°¡ ¿Ã¹Ù¸¥ Æнº¿öµå¸¦ ÀÔ·ÂÇϵµ·Ï Çã¿ëÇÑ´Ù. use_authtok¿É¼ÇÀº ¾Õ¼­ »ç¿ëµÈ Æнº¿öµå ¸ðµâ¿¡¼­ »ç¿ëÇß´ø Æнº¿öµå¸¦ »õ Æнº¿öµå·Î ÁöÁ¤ÇÑ´Ù. (¾Õ¼­ ¼³¸íµÈ Cracklib¸ðµâ¿¡¼­ ¿¹Á¦·Î »ç¿ëµÇ¾ú´Ù.) not_set_pass¿É¼ÇÀº ÇöÀç ¸ðµâ¿¡°Ô ¾Õ¼­ »ç¿ëµÈ ¸ðµâÀ̳ª µÚ¿¡ »ç¿ëµÉ ¸ðµâ¿¡¼­ Âü°í·Î ÇÒ ¿¾ Æнº¿öµå³ª »õ Æнº¿öµå¸¦ Âü°íÇϰųª ÀúÀåÇÏÁö ¾ÊÀ» °ÍÀÓÀ» ÁöÁ¤ÇÑ´Ù. debug¿É¼ÇÀº ÀÌ ¸ðµâÀÇ µ¿ÀÛÀ» syslog(3)¿¡°Ô ´õ ¸¹Àº Á¤º¸¸¦ ¾Ë·ÁÁØ´Ù. ´Ù¸¥ ¿É¼ÇµéÀº syslog(3)¿¡ ÀÇÇؼ­ ¿¡·¯·Î ±â·ÏµÉ ¼ö ÀÖ´Ù. ¿¹Á¦: ÀÌ ¸ðµâÀÇ Æнº¿öµå Á¡°Ë ¸ðµâÀÎ pam_cracklib°úÀÇ ÀûÃþ¿¹Á¦´Â ¾Õ¼± ¸ðµâ¿¡ ´ëÇÑ ¼³¸í¿¡¼­ ÀÌ¹Ì ´Ù·ç¾îÁ³´Ù. ¼¼¼Ç°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: ¼³¸í: ÀÌ ¸ðµâ ±¸¼º¿ä¼Ò¿¡¼­ ÀνÄÇÏ´Â ¿É¼ÇÀº ¾Æ¹«°Íµµ ¾ø´Ù. ÀÌ ±¸¼º¿ä¼Ò´Â ´ÜÁö »ç¿ëÀÚÀ̸§°ú ¼­ºñ½ºÀÇ Á¾·ù¸¦ syslog(3)¸¦ ÅëÇؼ­ ±â·ÏÇÒ »ÓÀÌ´Ù. »ç¿ëÀÚÀÇ ¼¼¼ÇÀÇ ½ÃÀÛ°ú ³¡¿¡ ´ëÇÑ ³»¿ëÀº ·Î±×¿¡ ±â·ÏµÈ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ¼¼¼Ç ¸ðµâ¿¡ ´ëÇÑ »ç¿ëÀº ¸Å¿ì Á÷°üÀûÀÌ´Ù: # # pwdb - unix ¿Í ºñ½ÁÇÑ ¼¼¼Ç ½ÃÀÛ°ú Á¾·á # login session required pam_pwdb.so The RADIUS session module °³¿ä ¸ðµâ À̸§: pam_radius ÀúÀÚ: Cristian Gafton <gafton@redhat.com> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: session ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: ÀÌ ¸ðµâÀº ¾ÏÈ£¸¦ ´Ù·çÁö ¾ÊÀ½. º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: gcc ·Î ÄÄÆÄÀÏÇÒ ¶§ /usr/include/rpc/clnt.h¸¦ ÄÄÆÄÀÏÇϸ鼭 Warning 1°³ ¹ß»ýÇÔ. ÀÌ°ÍÀº ³» Ã¥ÀÓÀÌ ¾Æ´Ï´Ù! ½Ã½ºÅÛ ÀÇÁ¸¼º: ³×Æ®¿öÅ© ÀνÄ: ÀνÄÇÔ. ³×Æ®¿öÅ© ¸ðµâÀÓ.(ÀÀ¿ëÇÁ·Î±×·¥¿¡ ¹«°üÇÔ) ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº RADIUS server·Î ÀÎÁõµÈ »ç¿ëÀڵ鿡°Ô ¼¼¼Ç ¼­ºñ½º¸¦ Á¦°øÇÒ ¸ñÀûÀ¸·Î Á¦À۵Ǿú´Ù. ÇöÀç·Î´Â °èÁ¤ ¼­¹ö·Î RADIUS¼­¹ö¸¦ »ç¿ëÇÏ´Â °Í¸¸ Áö¿øµÈ´Ù. ¼¼¼Ç°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug - syslog(3)¿¡ »ó¼¼ÇÑ ·Î±×¸¦ ±â·ÏÇÔ. ¼³¸í: ÀÌ ¸ðµâÀº RADIUS server·Î ÀÎÁõµÈ »ç¿ëÀڵ鿡°Ô ¼¼¼Ç ¼­ºñ½º¸¦ Á¦°øÇÒ ¸ñÀûÀ¸·Î Á¦À۵Ǿú´Ù. ÇöÀç·Î´Â °èÁ¤ ¼­¹ö·Î RADIUS¼­¹ö¸¦ »ç¿ëÇÏ´Â °Í¸¸ Áö¿øµÈ´Ù. (PAM ÇÁ·ÎÁ§Æ®¿¡¼­ ÀÌ ¸ðµâÀ» »ç¿ëÇؼ­ RADIUS¼­¹ö¿¡ ¹ÝÀÀÇØ ÀÚµ¿À¸·Î pppd¸¦ ½ÃÀÛÇؼ­ »ç¿ëÀÚ¸¦ À§ÇÑ PPPÁ¢¼ÓÀ» ¿¬´Ùµç°¡ ´Ù¸¥ È£½ºÆ®·ÎÀÇ telnetÁ¢¼ÓÀ» ÇÑ´Ù´ø°¡ RADIUS¼­¹ö¿¡¼­ÀÇ ÀÎÀÚ¿¡ µû¶ó ÀüÈ­¸¦ µÇ°É¾îÁÖ´Â °ÍÀ» ½ÇÁ¦·Î µ¿ÀÛÇÏ°Ô ÇÏ·Á¸é ¸ÕÀú È®½ÇÇÏ°Ô ¸ÅµìÁö¾î¾ß ÇÏ´Â ºÎºÐµéÀÌ ÀÖ´Ù. ´ëºÎºÐÀÇ °ÍµéÀº radius login ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ ó¸®ÇÏ´Â °ÍÀÌ º¸´Ù ÀûÇÕÇØ º¸ÀδÙ. ÀÌ·± ½ÄÀ¸·Î µ¿ÀÛÇÏ´Â Real Soon(tm) ·Î±×ÀÎ ÆÐÄ¡¸¦ ¸¸µé±â¸¦ ±â´ëÇÑ´Ù.) ¼¼¼ÇÀ» ½ÃÀÛÇÒ ¶§ ``Accounting-Start'' ¸Þ½ÃÁö¸¦ ¸ðµâ¿¡¼­ RADIUS ¼­¹ö·Î º¸³»´Âµ¥ ÀÌ ¸Þ½ÃÁö´Â »ç¿ëÀÚ database¿¡ ·Î±×±â·ÏÀ» ÇÏ´ø °»½ÅÀ» ÇÏ´ø ¾î¶² ½ÄÀ¸·Îµç ÀÛ¿ëÇÑ´Ù. ¼¼¼ÇÀ» ´ÝÀ» ¶§ ``Accounting-Stop'' ¸Þ½ÃÁö°¡ RADIUS¼­¹ö·Î º¸³»Áø´Ù. ÀÌ ¸ðµâÀº µ¿ÀÛÇϱâ À§Çؼ­ ¿ä±¸ÇÏ´Â ¼±°áÁ¶°ÇÀÌ ¾ø´Ù. ´©±¸µç RADIUS¼­¹ö¸¦ ±×³É Àç¹Ì»ï¾Æ ¼³Ä¡ÇÏ°í °èÁ¤°ü¸® ¼­¹ö¸¦ Áß¾Ó¿¡¼­ ¿î¿µÇϸ鼭 wtmp/last/sac°°Àº °ÍµéÀº ±×³É ÀØ°í Áö³¾ ¼ö ÀÖ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâÀÌ ÇÊ¿äÇÑ ¼­ºñ½º(¿¹¸¦µé¾î login)¸¦ À§Çؼ­ /etc/pam.confÆÄÀÏ¿¡¼­ ±× ¼­ºñ½ºÀÇ ¸¶Áö¸· ÁÙ¿¡(º¸ÅëÀº pam_unix session ÁÙ ´ÙÀ½ÀÌ´Ù) ´ÙÀ½ÀÇ ¿¹¸¦ Ãß°¡Ç϶ó. login session required pam_radius.so ÀÌ ¸ðµâÀ» ¾²´Â ¼­ºñ½º°¢°¢¿¡ ´ëÇؼ­ 'login'´ë½Å ´ëüÇ϶ó. ÀÌ ¸ðµâÀº libpwdb 0.54preB¶Ç´Â ±× ÀÌÈÄ¿¡¼­ Á¦°øµÇ´Â API¸¦ ±¤¹üÀ§ÇÏ°Ô »ç¿ëÇÏ°í ÀÖ´Ù. ±âº»ÀûÀ¸·Î ÀÌ ¸ðµâÀº /etc/raddb/serverÆÄÀÏ¿¡¼­ radius ¼­¹ö¿¡ ´ëÇÑ ¼³Á¤(hostname, secret)À» ÀоîµéÀδÙ. ÀÌ°ÍÀº libpwdb¿¡¼­ ±âº»°ªÀ¸·Î ÄÄÆÄÀϵǾî ÀÖÀ¸¸ç ÇöÀç·Î¼­´Â libpwdb¸¦ ´Ù½Ã ÄÄÆÄÀÏÇÏÁö ¾Ê°í´Â ¹Ù²Ü ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾ø´Ù. ÇöÀç libpwdb¿¡¼­ runtime¿¡ ¼³Á¤À» ¹Ù²Ü¼ö ÀÖ´Â radiusÁö¿øÇϱâ À§Çؼ­ ÀÛ¾÷ÁßÀÌ´Ù. libpwdb´Â RADIUS dictionaryµµ ÇÊ¿ä·Î ÇÔÀ» ¶ÇÇÑ ±â¾ïÇϱ⠹ٶõ´Ù. (/etc/raddb/dictionaryÆÄÀÏÀÌ´Ù) The rhosts module °³¿ä ¸ðµâ À̸§: pam_rhosts_auth ÀúÀÚ: Al Longyear <longyear@netcom.com> À¯Áöº¸¼ö: Á¦°øµÇ´Â °ü¸® ±×·ì: authentication ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ¿¡·¯¸Þ½ÃÁö ¾øÀ½. ½Ã½ºÅÛ ÀÇÁ¸¼º: ³×Æ®¿öÅ© ÀνÄ: Ç¥ÁØ inet_addr(), gethostbyname() ÇÔ¼ö È£Ãâ ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº rloginÀ̳ª rsh°°Àº ÇÁ·Î±×·¥¿¡¼­ ÀüÅëÀûÀ¸·Î ¾²´ø ¹æ½ÄÀ¸·Î ¼­ºñ½ºÀÇ ³×Æ®¿öÅ© ÀÎÁõÀ» ÇÑ´Ù. ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: no_hosts_equiv; no_rhosts; debug; no_warn; privategroup; promiscuous; suppress ¼³¸í: ÀÌ ¸ðµâÀÇ ÀÎÁõü°è´Â /etc/host.equiv (¶Ç´Â #include <netdb.h>¿¡ ÀÖ´Â _PATH_HEQUIV)¿Í ~/.rhostsµÎ ÆÄÀÏ¿¡ ÀÖ´Â ³»¿ë¿¡ ±â¹ÝÇÑ´Ù. ¿ì¼± ¾ÕÀÇ ÆÄÀÏ¿¡ ³ª¿­µÇ¾î Àִ ȣ½ºÆ®µéÀº localhostó·³ Ãë±ÞµÈ´Ù. ±×¸®°í »ç¿ëÀÚ°¡ °¡Áö°í ÀÖ´Â .rhostsÆÄÀÏÀº "¿ø°Ý È£½ºÆ® ¿ø°Ý »ç¿ëÀÚ"¦À» ÇöÀç È£½ºÆ®ÀÇ »ç¿ëÀÚ °èÁ¤°ú ´ëÀÀ½ÃÅ°´Âµ¥ ¾²ÀδÙ. ¸¸¾à »ç¿ëÀÚÀÇ È£½ºÆ®°¡ /etc/host.equivÆÄÀÏ¿¡ µî·ÏµÇ¾î ÀÖ°í ±×µéÀÇ °èÁ¤ÀÌ ¿ø°ÝÈ£½ºÆ®¿Í localhost¿¡¼­ ÀÏÄ¡ÇÏ´Â °æ¿ì¿¡´Â Á¢±ÙÀÌ Çã¿ëµÈ´Ù. ¶ÇÇÑ ±×µéÀÇ ¿ø°Ý°èÁ¤ÀÌ °³ÀÎÀûÀÎ ¼³Á¤ÆÄÀÏ¿¡ µî·ÏµÇ¾î ÀÖ´Â °æ¿ì¿¡µµ Á¢±ÙÀÌ Çã¿ëµÈ´Ù. »ç¿ëÀÚÀÇ °³ÀÎÀûÀÎ ¼³Á¤ÆÄÀÏ¿¡´Â ¸î°¡Áö ¼Ó¼ºÀÇ Á¦ÇÑÀÌ µû¸¥´Ù. ¸ÕÀú ÆÄÀÏÀº POSIX.1ÀÇ S_ISREG(x)¿¡¼­ Á¤ÀÇµÈ Á¤±ÔÆÄÀÏÀ̾î¾ß ÇÑ´Ù. ±×¸®°í ¼³Á¤ÆÄÀÏÀº superuser³ª »ç¿ëÀÚ°¡ ¼ÒÀ¯ÇÑ ÆÄÀÏÀ̾î¾ß ÇÏ¸ç ¼ÒÀ¯ÀÚ¿Ü¿¡´Â ¾Æ¹«µµ ¾²±â ±ÇÇÑÀ» °¡Áö¸é ¾ÈµÈ´Ù. ÀÌ ¸ðµâÀº ¿ø°Ý È£½ºÆ®(PAM_RHOST¿¡¼­ ³»ºÎÀûÀ¸·Î ÁöÁ¤ÇÑ È£½ºÆ®)¿¡¼­ Á¢¼ÓÇÑ »ç¿ëÀÚ(PAM_RUSER¿¡¼­ ³»ºÎÀûÀ¸·Î ÁöÁ¤ÇÑ »ç¿ëÀÚ)¸¦ ÀÎÁõÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. µû¶ó¼­ ÀÌ ÀÎÁõ ¸ðµâ°ú ȣȯ¼ºÀ» °¡Áö±â À§Çؼ­´Â ÀÀ¿ëÇÁ·Î±×·¥ ¶ÇÇÑ pam_authenticate()¸¦ È£ÃâÇϱâ Àü¿¡ ÀÌ Ç׸ñµéÀ» ¸ÕÀú È®ÀÎÇØ¾ß ÇÑ´Ù. ÀÌ ¸ðµâÀº ±×·± Á¤º¸¸¦ È®ÀÎÇϱâ À§Çؼ­ µ¶ÀÚÀûÀ¸·Î ³×Æ®¿öÅ© Á¢¼ÓÀ» È®ÀÎÇÒ ¼ö ÀÖ´Â ´É·ÂÀÌ ¾ø´Ù. root·Î Á¢¼ÓÇÏ´Â °æ¿ì hosts_equiv_rootok¿É¼ÇÀÌ »ç¿ëµÇÁö ¾ÊÀ¸¸é /etc/host.equivÆÄÀÏÀº ¹«½ÃµÈ´Ù. ´ë½Å superuser´Â ¿Ã¹Ù¸£°Ô ¼³Á¤µÈ °³ÀÎÀûÀÎ ¼³Á¤ÆÄÀÏÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ¸ðµâÀÇ µ¿ÀÛÀº ´ÙÀ½ÀÇ Ç÷¡±×¿¡ ÀÇÇؼ­ Á¦¾îÇÒ ¼ö ÀÖ´Ù. debug - syslog(3)¿¡ ´õ ¸¹Àº Á¤º¸¸¦ ±â·ÏÇÑ´Ù. (XXX - ½ÇÁ¦·Î ÀÌ ¸ðµâÀº ÇöÀç ÀüÇô ·Î±×¸¦ ³²±âÁö ¾Ê´Â´Ù. ÀÌ°ÍÀ» °íÄ¡±â À§ÇÑ ÀÚ¿øÀÚ¸¦ ±¸ÇÏ´Â ÁßÀÌ´Ù!) no_warn - »ç¿ëÀÚ¿¡°Ô ½ÇÆе ´ëÇؼ­ ¿¡·¯¸Þ½ÃÁö¸¦ º¸³»Áö ¾Ê´Â´Ù. (XXX - ÀÌ ¸ðµâÀº ÇöÀç ¾Æ¹«·± °æ°íµµ Ãâ·ÂÇÏÁö ¾Ê´Â´Ù. ¿ª½Ã ÀÚ¿øÀÚ¸¦ ±¸ÇÑ´Ù!) no_hosts_equiv - /etc/hosts.equiv ÆÄÀÏÀÇ ³»¿ëÀ» ¹«½ÃÇÑ´Ù. hosts_equiv_rootok - superuser¿¡ ´ëÇؼ­µµ /etc/hosts.equiv ÆÄÀÏÀ» Âü°íÇÑ´Ù. ÀÌ ¿É¼ÇÀÌ ¾ø´Â °æ¿ì superuser¿¡ ´ëÇؼ­´Â /etc/hosts.equiv¸¦ Âü°íÇÏÁö ¾Ê´Â´Ù. ¸¸¾à no_host_equiv¿É¼ÇÀÌ »ç¿ëµÈ °æ¿ì host_equiv_rootok¿É¼ÇÀº ¹«½ÃµÈ´Ù. no_rhosts - ¸ðµç »ç¿ëÀÚÀÇ ~/.rhosts¼³Á¤ÆÄÀÏÀÇ ³»¿ëÀ» ¹«½ÃÇÑ´Ù. privategroup - Á¤»óÀûÀÎ °æ¿ì ~/.rhosts ÆÄÀÏÀº ¼ÒÀ¯ÀÚ¿Ü¿¡´Â ¾Æ¹«µµ ¾²±â ±ÇÇÑÀ» °¡Á®¼­´Â ¾ÈµÈ´Ù. ÀÌ ¿É¼ÇÀº ÀÎÁõµÇ´Â »ç¿ëÀÚÀÇ À̸§°ú ±×·ì ¼ÒÀ¯±ÇÀÚÀÇ À̸§ÀÌ °°Àº °æ¿ì ±×·ìÀÌ ¾²±â ±ÇÇÑÀ» °¡Áø °æ¿ì¿¡µµ Á¢±ÙÀ» Çã¿ëÇÑ´Ù. ÀÌ ¿É¼ÇÀ¸·Î ÀÎÇØ ¹ß»ýÇÒÁö ¸ð¸£´Â º¸¾È ¹®Á¦¸¦ ÁÙÀ̱â À§Çؼ­ ÀÌ ¸ðµâÀº »ç¿ëÀÚ°¡ ±× ±×·ìÀÇ À¯ÀÏÇÑ ±¸¼º¿øÀÎÁöµµ °Ë»çÇÑ´Ù. promiscuous - È£½ºÆ® µî·Ï¿¡¼­ `+' ·Î µÈ °æ¿ì ¸ðµç È£½ºÆ®¿¡¼­ÀÇ Á¢±ÙÀÌ Çã¿ëµÈ´Ù. ÀÌ ¿É¼ÇÀÌ ¾ø´Ù¸é '+'·Î ¾´ µî·ÏÀº ¹«½ÃµÈ´Ù. ÈÄÀÚÀÇ °æ¿ì debug¿É¼ÇÀÌ ÄÑÁ®ÀÖÀ¸¸é syslog¿¡ °æ°í¸Þ½ÃÁö¸¦ ³²±â°Ô µÈ´Ù. suppress - ¸¸¾à ÀÎÁõ¿¡ ½ÇÆÐÇßÀ» °æ¿ì¿¡µµ syslog(3)¿¡ °æ°í¸Þ½ÃÁö¸¦ ³²±âÁö ¾Ê´Â´Ù. ÀÌ ¿É¼ÇÀº ¸ðµâÀÌ ÃæºÐÇÑ Á¦¾î flag·Î µ¿ÀÛÇÏ´Â »óȲ¿¡¼­ Àǹ̾ø´Â ¿¡·¯·Î °¡µæÂù ·Î±×¸¦ ¸¸µéÁö ¾Ê±â À§Çؼ­ »ç¿ëµÈ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ½Å·ÚÇÏ´Â ¿ø°Ý ÄÄÇ»ÅÍ¿¡¼­ »ç¿ëÀÚÀÇ Á¢¼ÓÀ» Çã¿ëÇϱâ À§Çؼ­´Â /etc/pam.confÆÄÀÏ¿¡¼­ »ç¿ëÀÚ¿¡¼­ ¾ÏÈ£¸¦ ÀÔ·ÂÇϱ⸦ ¿ä±¸Çϱâ Àü¿¡ ´ÙÀ½ÀÇ ÁÙµéÀ» Ãß°¡ÇØ¾ß ÇÑ´Ù. # # À§¿¡ ³ª¿­µÈ È£½ºÆ®ÀÇ »ç¿ëÀÚ´Â Æнº¿öµå¸¦ ¿ä±¸ÇÏÁö ¾Ê´Â´Ù. # login auth sufficient pam_rhosts_auth.so no_rhosts ÀÌ ¿¹Á¦¿¡¼­ ½Ã½ºÅÛ °ü¸®ÀÚ´Â ¸ðµç »ç¿ëÀÚÀÇ °³ÀÎ rhosts ¼³Á¤ÆÄÀÏÀ» ¹«½ÃÇϵµ·Ï ¼³Á¤ÇßÀ½À» ÁÖ¸ñÇ϶ó. ±×¸®°í À§ÀÇ ¿¹¿¡¼­ sufficient¸¦ required·Î ¹Ù²ÞÀ¸·Î½á /etc/host.equivÆÄÀÏ¿¡ µî·ÏµÈ ¼­¹öµé·ÎºÎÅ͸¸ Á¢¼ÓÇÒ ¼ö ÀÖ°Ô µÇ¾î ÀÖÀ½À» ÁÖÀÇÇؼ­ º¸±â ¹Ù¶õ´Ù. The root access module °³¿ä ¸ðµâ À̸§: pam_rootok ÀúÀÚ: Andrew G. Morgan <morgan@parc.power.net> À¯Áöº¸¼ö: Linux-PAM À¯Áöº¸¼öÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: authentication ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ±ú²ýÇÔ ½Ã½ºÅÛ ÀÇÁ¸¼º: ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº superuser°¡ ¾ÏÈ£ÀÇ ÀԷ¾øÀÌ ¼­ºñ½º¿¡ ´ëÇÑ Á¢±ÙÀ» Çϵµ·Ï Çã¿ëÇÒ ¶§ »ç¿ëÇϵµ·Ï ¸¸µé¾îÁ³´Ù. ÀÎÁõ°ü¸® ºÎºÐ ÀνÄÇÏ´Â ÀÎÀÚµé: debug ¼³¸í: ÀÌ ¸ðµâÀº »ç¿ëÀÚÀÇ uid°¡ 0ÀÎ °æ¿ì ÀÎÁõ¿¡ ¼º°øÇÑ °ÍÀ¸·Î ó¸®ÇÑ´Ù. ustuid-root·Î ó¸®µÈ ÇÁ·Î±×·¥µéÀº »ç¿ëÀÚÀÇ uid¸¦ À¯ÁöÇÏ°í ÀÖÁö¸¸ euid¿¡ ÀÖ´Â »ç¿ëÀÚÀÇ ±ÇÇÑÀ» °¡Áøä·Î ½ÇÇàµÈ´Ù. ½ÇÁ¦·Î »ç¿ëÀÚ¿¡ ´ëÇÑ ±ÇÇÑ °Ë»ç°¡ ÀÌ·ç¾îÁö´Â °ÍÀº ÀÌ euidÀÌ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: su ÇÁ·Î±×·¥ÀÇ °æ¿ì ÀüÅëÀûÀ¸·Î superuser°¡ ÀÏ¹Ý »ç¿ëÀÚÀÇ ¾ÏÈ£¸¦ ÀÔ·ÂÇÏÁö ¾Ê°íµµ ÀÏ¹Ý »ç¿ëÀÚ·Î ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ±â´ÉÀ» »ç¿ëÇØ ¿Ô´Ù. Linux-PAM¿¡¼­ ÀÌ ±â´ÉÀ» ¾²±â À§Çؼ­´Â ´ÙÀ½ÀÇ µÎ ÁÙÀÌ ¼³Á¤ÆÄÀÏ¿¡ Æ÷ÇԵǾî¾ß ÇÑ´Ù. # # su ÀÎÁõ. Root ´Â ±âº»ÀûÀ¸·Î Á¢±Ù Çã¿ë # su auth sufficient pam_rootok.so su auth required pam_unix_auth.so ÁÖÀÇ»çÇ×) superuser¿¡ ÀÇÇؼ­ ¼öÇàµÇ´Â ÇÁ·Î±×·¥µéÀ̳ª ½Ã½ºÅÛ ºÎÆýÿ¡ ½ÃÀ۵Ǵ ÇÁ·Î±×·¥µé¿¡´Â »ç¿ëÀÚ ÀÎÁõ¿¡ ÀÌ ¸ðµâÀ» »ç¿ëÇÏ¸é ¾ÈµÈ´Ù. The securetty module °³¿ä ¸ðµâ À̸§: pam_securetty ÀúÀÚ: Elliot Lee <sopwith@cuc.edu> À¯Áöº¸¼ö: Red Hat Software: ÇöÀç Michael K. Johnson <johnsonm@redhat.com> (¸¸¾à ¿¬¶ôÀÌ ¾ÈµÉ ¶§´Â Elliot Lee <sopwith@cuc.edu>). Á¦°øµÇ´Â °ü¸® ±×·ì: authentication ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: /etc/securetty ÆÄÀÏ ³×Æ®¿öÅ© ÀνÄ: Á¤»óÀûÀ¸·Î µ¿ÀÛÇϱâ À§Çؼ­´Â ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ PAM_TTYÇ׸ñÀ» Á¤È®È÷ ±â·ÏÇØ¾ß ÇÔ. ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í Ç¥ÁØÀûÀÎ UNIXÀÇ securetty °Ë»ç¸¦ Á¦°øÇÑ´Ù. ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: ¼³¸í: Ç¥ÁØÀÇ UNIX securetty°Ë»ç¸¦ Çؼ­ /etc/securettyÆÄÀÏ¿¡ ±â·ÏµÈ ³»¿ë°ú PAM_TTYÇ׸ñÀÇ ³»¿ë°ú ÀÏÄ¡ÇÏ´Â °æ¿ì¿¡¸¸ root°èÁ¤¿¡ ´ëÇÑ ÀÎÁõÀÌ ¼º°øÇÏ°Ô µÈ´Ù. ±× ¿ÜÀÇ ´Ù¸¥ »ç¿ëÀÚ¿¡ ´ëÇؼ­´Â Ç×»ó ÀÎÁõÀÌ ¼º°øÇÑ °ÍÀ¸·Î ó¸®ÇÑ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ´Ù¸¥ suffient ÀÎÁõ ¹æ¹ýº¸´Ù ¾Õ¼­ required ÀÎÁõ ¹æ¹ýÀ¸·Î µî·ÏÇÏ´Â °ÍÀÌ Ç¥ÁØ »ç¿ë¹æ½ÄÀÌ´Ù. The login counter(tallying) module °³¿ä ¸ðµâ À̸§: pam_tally ÀúÀÚ: Tim Baverstock À¯Áöº¸¼ö: Á¦°øµÇ´Â °ü¸® ±×·ì: auth; account ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: faillog ÆÄÀÏ(/var/log/faillog°¡ ±âº» À§Ä¡´Ù)ÀÌ ÇÊ¿ä ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº ÃÑ Á¢±Ù ½ÃµµÈ¸¼ö¸¦ °ü¸®ÇÏ¸ç ·Î±×ÀÎ ¼º°ø½Ã¿¡´Â Á¢±Ù ½Ãµµ ȸ¼ö¸¦ 0À¸·Î ¸¸µé ¼ö ÀÖ°í ³Ê¹« ¸¹Àº ½ÇÆÐÇÑ ½ÃµµÈ½¼ö¿¡ µµ´ÞÇϸé Á¢±ÙÀ» Â÷´ÜÇÒ ¼ö ÀÖ´Ù. pam_tally´Â pam_tally.so¿Í pam_tallyÀÇ µÎ °³·Î ³ª´µ¾î Á¦°øµÈ´Ù. ÀüÀÚ´Â PAM ¸ðµâÀÌ°í ÈÄÀÚ´Â ´Üµ¶½ÇÇàÇü(stand-alone) ÇÁ·Î±×·¥ÀÌ´Ù. pam_tally´Â (¼±ÅÃÀûÀÎ) ÇÁ·Î±×·¥À¸·Î Ä«¿îÅÍ ÆÄÀÏÀ» Á¶È¸ÇÒ ¼öµµ ÀÖ°í °ü¸®ÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ÇÁ·Î±×·¥Àº »ç¿ëÀÚÀÇ Ä«¿îÅ͸¦ º¸¿©ÁÖ°í °³Àκ° Ä«¿îÆ® ȸ¼ö¸¦ ¼öÁ¤Çϰųª ¸ðµç Ä«¿îÆ® ȸ¼ö¸¦ Áö¿ì´Â °Íµµ °¡´ÉÇÏ´Ù. ÀÌ Ä«¿îÆ®¸¦ ÀÎÀ§ÀûÀ¸·Î ³ô°Ô ¼³Á¤ÇÏ¸é »ç¿ëÀÚÀÇ ¾ÏÈ£¸¦ °íÄ¡Áö ¾Ê°íµµ »ç¿ëÀÚ ·Î±×ÀÎÀ» ¸·À» ¼ö ÀÖ´Ù. ¿¹¸¦µé¾î cron jobÀ¸·Î ¸ÅÀϹã ÀÚÁ¤¿¡ ¸ðµç Ä«¿îÆ® ȸ¼ö¸¦ Áö¿ö¹ö¸®´Â °Íµµ À¯¿ëÇÑ ¼³Á¤ÀÏ ¼öµµ ÀÖ´Ù. Ä«¿îÆ® ÆÄÀÏÀº uid·Î À妽ºµÈ ¹ÙÀ̳ʸ® Çü½ÄÀÇ ¹è¿­ÀÌ´Ù. ¸¸¾à Á¦°øµÇ´Â ÇÁ·Î±×·¥À» »ç¿ëÇÏÁö ¾ÊÀ» »ý°¢À̶ó¸é odÇÁ·Î±×·¥À¸·Îµµ ÀÌ ÆÄÀÏÀ» ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÁÖÀÇ»çÇ×) ÇöÀç ÀÌ ¸ðµâ¿¡´Â ¸î°¡Áö ¹®Á¦Á¡ÀÌ ³²¾ÆÀÖ´Ù. pam_tally¸ðµâÀº getpw*()¿¡ ¸Å¿ì ÀÇÁ¸ÀûÀÌ´Ù. - »ç¿ëÀÚÀÇ °èÁ¤¿¡ ´ëÇÑ database´Â ÈξÀ ´õ ´Ù¾çÇÒ °ÍÀÌ´Ù. 'ÇöÀç ·Î±×Àο¡ ´ëÇÑ Ä«¿îÆ® À¯Áö'ºñÆ®´Â #ifdef·Î 󸮵Ǿî ÇöÀç´Â ±âº»ÀûÀ¸·Î Áö¿øÇÏÁö ¾Ê´Â´Ù. µû¶ó¼­ ÇöÀç´Â ÀÎÁõ¿¡ ¼º°øÇÏ´Â °Í¸¸ÀÌ Ä«¿îÅÍ ¼ýÀÚ¸¦ ÃʱâÈ­ÇÏ´Â À¯ÀÏÇÑ ¹æ¹ýÀÌ´Ù. µÎ ±¸¼º¿ä¼Ò¿¡¼­ ¸ðµÎ »ç¿ëµÇ´Â ÀϹÝÀûÀÎ ¿É¼Ç onerr=(succeed|fail): ¸¸¾à ÆÄÀÏÀ» ¿­ ¼ö ¾ø´Ùµç°¡ ÇÏ´Â ÀÌ»óÇÑ ÀÏÀÌ »ý±ä´Ù¸é ¸ðµâÀÌ ¾î¶»°Ô ¹ÝÀÀÇÒ °ÍÀΰ¡? file=/where/to/keep/counts: Ä«¿îÆ®¸¦ ÀúÀåÇÒ ÆÄÀÏ À§Ä¡¸¦ ÁöÁ¤ÇÑ´Ù. ±âº»À§Ä¡´Â /var/log/faillogÀÌ´Ù. ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: onerr=(succeed|fail); file=/where/to/keep/counts; no_magic_root ¼³¸í: ÀÌ ¸ðµâÀÇ ÀÎÁõ ±¸¼º¿ä¼Ò´Â ½ÃµµµÈ ·Î±×ÀÎ Ä«¿îÆ®¸¦ Áõ°¡½ÃŲ´Ù. ¿¹Á¦: no_magic_root¿É¼ÇÀÌ ¾²ÀÌ¸é ¸¸¾à uid°¡ 0ÀÎ »ç¿ëÀÚ°¡ ÀÌ ¸ðµâÀ» È£ÃâÇÑ °æ¿ì Ä«¿îÆ®¸¦ Áõ°¡½ÃŲ´Ù. ½Ã½ºÅÛ °ü¸®ÀÚ´Â ÀÌ°ÍÀ» telnet/rsh/login°°ÀÌ µ¥¸óÀÌ ½ÇÇà½ÃÅ°´Â ¼­ºñ½º¿¡ »ç¿ëÇØ¾ß ÇÑ´Ù. »ç¿ëÀÚ°¡ ½ÇÇà½ÃÅ°´Â su°°Àº ÇÁ·Î±×·¥¿¡¼­´Â ÀÌ ¿É¼ÇÀÌ ºüÁ®¾ß ÇÑ´Ù. ¼³¸íÀ» ´õ ÇÏÀÚ¸é ÀÌ¹Ì root±ÇÇÑÀ¸·Î µ¹°í ÀÖ´Â ÇÁ·Î¼¼½º°¡ ´Ù¸¥ ¼­ºñ½º¿¡ Á¢±ÙÇÒ °æ¿ì ÀÌ Á¢±ÙÀº magicÀÌ µÇ°í pam_tallyÀÇ °Ë»ç¸¦ ¹ÞÁö ¾Ê´Â´Ù. ÀÌ°ÍÀº root·Î ºÎÅÍ ´Ù¸¥ ¹æ¹ýÀ¸·Î´Â Á¢±ÙÀÌ ¸·ÇôÀÖ´Â °èÁ¤À¸·Î suÇÒ ¶§ Æí¸®ÇÏ´Ù. ±×·¯³ª telnetÀ̳ª login°°ÀÌ ¾ðÁ¦³ª root±ÇÇÑÀ¸·Î ½ÇÇàµÇ´Â ¼­ºñ½ºµéÀÇ °æ¿ì ¾Õ¼­ ±â¼úÇÑ ±×´ë·Î root(Áï Àü¿ø)´Â ÀÌ·± magic»óÅ°¡ Çã¿ëµÇ¾î¼­´Â ¾ÈµÇ¹Ç·Î no_magic_root¿É¼ÇÀÌ ÄÑÁ®ÀÖ¾î¾ß ÇÏ´Ù. °èÁ¤°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: onerr=(succeed|fail); file=/where/to/keep/counts; deny=n; no_magic_root; even_deny_root_account; reset; no_reset; per_user; no_lock_time ¼³¸í: °èÁ¤°ü¸® ±¸¼º¿ä¼Ò´Â ½ÃµµÈ½¼ö¿¡ ´ëÇÑ Á¢±ÙÀ» ¸·°Å³ª ½ÃµµÈ½¼ö¸¦ ÃʱâÈ­ ÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ Ä«¿îÆ® ÆÄÀÏÀÌ plainÆÄÀÏÀÎÁö ¾²±â ±ÇÇÑÀÌ ¸ðµÎ¿¡°Ô ÁÖ¾îÁöÁö ¾Ê°í ÀûÀýÈ÷ À¯ÁöµÇ°í ÀÖ´ÂÁö¸¦ °Ë»çÇÑ´Ù. ¿¹Á¦: deny=n ¸¸¾à »ç¿ëÀÚº° tallyȸ¼ö°¡ nÀ» ³Ñ¾î¼± °æ¿ì ±× »ç¿ëÀÚÀÇ Á¢±ÙÀ» ¸·´Â´Ù. ÀÌ ¿É¼ÇÀÌ »ç¿ëµÇ¸é Á¢±Ù ±ÇÇÑÀ» ¿ä±¸ÇÏ´Â »ç¿ëÀÚ°¡ rootÀÌ°í no_magic_root¿É¼ÇÀÌ ÁöÁ¤µÇÁö ¾Ê¾Ò´ø °æ¿ì°¡ ¾Æ´Ï¶ó¸é reset/no_reset¿É¼ÇÀÇ ±âº»°ªÀÌ resetÀ¸·Î ¹Ù²ï´Ù. no_magic_root root·Î ºÎÅÍÀÇ Á¢±ÙÀ» ¹«½ÃÇÏÁö ¸»°í °ÅºÎÇϵµ·Ï ¸¸µç´Ù. ÀÌ ¿É¼ÇÀ» telnet/rsh/login°°Àº µ¥¸óÀÌ ½ÇÇà½ÃÅ°´Â ¼­ºñ½ºµé¿¡ Àû¿ëÇ϶ó. even_deny_root_account ¿É¼ÇÀº root°èÁ¤À» »ç¿ëºÒ°¡´ÉÇÏ°Ô ¸¸µç´Ù. root¸¦ ¾òÀ¸·Á´Â magic root´Â ÀÌ ¿É¼ÇÀÌ ¼³Á¤µÇ¾î À־ Åë°úÇÏ°í ÀÏ¹Ý À¯Àúµé¸¸ ¸·Èù´Ù´Â °ÍÀ» ±â¾ïÇصα⠹ٶõ´Ù. reset ÀÎÀÚ´Â magic rootÀÇ °æ¿ìÀ̰ųª ¾Æ´Ï°Å³ª »ó°ü¾øÀÌ ÀÎÁõ¿¡ ¼º°øÇßÀ» °æ¿ì ¸ðµâÀÌ Ä«¿îÆ®¸¦ 0À¸·Î ÃʱâÈ­Çϵµ·Ï ÇÑ´Ù. no_reset¿É¼ÇÀº ¼º°øÀûÀÎ ·Î±×Àο¡µµ Ä«¿îÅÍ°ªÀ» ÃʱâÈ­ÇÏÁö ¾Ê´Â´Ù. deny°¡ ¾ø°í Á¢±ÙÇÏ´Â »ç¿ëÀÚ°¡ magic root°¡ ¾Æ´Ñ »óÅ¿¡¼­´Â ÀÌ°ÍÀÌ ±âº»À¸·Î Àû¿ëµÈ´Ù. ¸¸¾à /var/log/faillog ÆÄÀÏ¿¡¼­ ÀÌ »ç¿ëÀÚ¿¡ ´ëÇؼ­ .fail_maxÇʵ尡 0ÀÌ ¾Æ´Ñ °ªÀ» °¡Áö°í ÀÖ´Ù¸é per_user¿É¼ÇÀÌ Àüü¿¡ °øµ¿À¸·Î ÇØ´çµÇ´Â deny=n°ª ´ë½Å ÀÌ °ªÀ» »ç¿ëÇϵµ·Ï ÇÑ´Ù. no_lock_time ¿É¼ÇÀº /var/log/failogÆÄÀÏ¿¡ ÀÖ´Â .fail_locktimeÇʵ尪À» »ç¿ëÇÏÁö ¾Êµµ·Ï ÇÑ´Ù. Á¤»óÀûÀΰæ¿ì Denial Of Service°ø°ÝÀ» ¸·±â À§Çؼ­ root°èÁ¤¿¡ ´ëÇÑ Á¢±Ù ½ÇÆд ´©ÀûµÇ´õ¶óµµ root°èÁ¤Àº »ç¿ëÁ¤ÁöµÇÁö ¾Ê´Â´Ù. ¸¸¾à »ç¿ëÀÚµéÀº shell°èÁ¤ÀÌ ÁÖ¾îÁöÁö ¾Ê°í root°èÁ¤Àº ´ÜÁö su¸í·ÉÀ» ÅëÇؼ­³ª console loginÀ» ÅëÇؼ­¸¸ ·Î±×ÀÎÇÒ ¼ö ÀÖ´Ù¸é(telnet, rshµîÀ» ÅëÇÏÁö ¾Ê°í) ÀÌ Á¤Ã¥Àº ¾ÈÀüÇÏ´Ù°í ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ´ç½ÅÀÌ ÁøÁ¤À¸·Î ƯÁ¤¼­ºñ½º¿¡ ´ëÇؼ­ root°¡ Á¢±ÙÇÏ´Â °ÍÀ» Çã¿ëÇÏ±æ ¿øÇÏÁö ¾Ê´Â´Ù¸é even_deny_root_account¿É¼ÇÀ» »ç¿ëÇϵµ·Ï Ç϶ó. Time control °³¿ä ¸ðµâ À̸§: pam_time ÀúÀÚ: Andrew G. Morgan <morgan@parc.power.net> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: account ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: /etc/security/time.conf ¼³Á¤ ÆÄÀÏ ÇÊ¿ä ³×Æ®¿öÅ© ÀνÄ: PAM_TTY Ç׸ñÀ» ÅëÇؼ­¸¸ ÀÎ½Ä ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í Àß Á¤ºñµÈ ½Ã½ºÅÛÀº ¶§¶§·Î ƯÁ¤ ¼­ºñ½º¿¡ ´ëÇؼ­´Â ¼±ÅÃÀûÀ¸·Î Á¢±ÙÀ» Çã¿ëÇϵµ·Ï ¸¸µé¾î ³õ±âµµ ÇÑ´Ù. ÀÌ ¸ðµâÀº ¼³Á¤ÆÄÀÏ¿¡ ÀÖ´Â ³»¿ëÀ» ¹ÙÅÁÀ¸·Î ½Ã½ºÅÛ¿¡¼­ Á¦°øµÇ´Â ¼­ºñ½º¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â ½Ã°£À» Á¦¾îÇÒ ¼ö ÀÖ°Ô ÇØ ÁØ´Ù. ÀÌ ¸ðµâÀº »ç¿ëÀÚ°¡ Á¢±ÙÇÏ´Â ·Î±×ÀÎ À̸§, ÇÏ·çÁßÀÇ ½Ã°£, ¿äÀÏ, Á¢±ÙÀ» ¿ä±¸ÇÏ´Â ¼­ºñ½º, »ç¿ëÀÚÀÇ Å͹̳ο¡ ´ëÇÑ Á¤º¸¸¦ ¹Þ¾Æ¼­ Á¢±ÙÀ» Çã°¡ÇÒ °ÍÀÎÁö¸¦ ÆÇ´ÜÇÑ´Ù. °èÁ¤°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: ¼³¸í: ÀÌ ¸ðµâÀº /etc/security/pam.confÆÄÀÏ¿¡ µé¾î ÀÖ´Â ³»¿ëÀ» ±Ù°Å·Î ¾î¶² ÇൿÀ» ÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇÑ´Ù. °¢ ±ÔÄ¢Àº ´ÙÀ½ÀÇ ÇüŸ¦ µû¸¥´Ù. services;ttys;users;times ¼³¸íÇÏÀÚ¸é °¢ ±ÔÄ¢Àº ÇÑÁÙ·Î µÇ¾î ÀÖ°í, newline ij¸¯ÅÍ°¡ ³ª¿À°Å³ª '#'·Î Ç¥½ÃÇÏ´Â ÁÖ¼®ÀÌ ½ÃÀÛÇÏ´Â ½ÃÁ¡¿¡¼­ ³¡³­´Ù. ÀÌ ±ÔÄ¢Àº ¼¼¹ÌÄÝ·Ð(';')À¸·Î ºÐ¸®µÇ´Â ³× °³ÀÇ Ç׸ñÀ¸·Î ºÐ¸®µÈ´Ù. °¢ Ç׸ñÀº ´ÙÀ½°ú °°´Ù. services - ÀÌ ±ÔÄ¢ÀÌ Àû¿ëµÉ ¼­ºñ½ºÀÇ À̸§ ttys - ±ÔÄ¢À» Àû¿ëÇÒ Å͹̳ÎÀÇ À̸§ user - Àû¿ëÇÒ »ç¿ëÀÚÀ̸§ÀÇ ¸ñ·Ï ÀÌ ¸ñ·ÏÀº ´ÙÀ½ÀÇ ±ÔÄ¢À» µû¸£´Â ÅäÅ«ÀÇ ³ª¿­Àε¥ À̵éÀº ÀûÀýÇÑ PAM_ Ç׸ñ°ú ¿¬°áµÇ°Ô µÈ´Ù. - Àû¾îµµ Çϳª ÀÌ»óÀÇ wildcard character '*'¸¦ °¡Áø´Ù. - ºÎÁ¤À» ³ªÅ¸³»´Â '!'¸¦ ¼±ÅÃÀûÀ¸·Î ¾Õ¿¡ ¾µ ¼ö ÀÖ´Ù. - ÀÌ ³ª¿­¿¡´Â ´ÙÀ½ÀÇ µÎ °¡Áö ³í¸® ¿¬»êÀÚ¸¦ ¾µ ¼ö ÀÖ´Ù. ³í¸®Àû ANDÀÎ '&'¿Í ³í¸®Àû ORÀÎ '|'ÀÌ´Ù. µÎ °¡Áö ¿¹¸¦ µé¾îº¸ÀÚ. !morgan&!root - ÀÌ ±ÔÄ¢Àº morgan¿¡°Ôµµ root¿¡°Ôµµ Àû¿ëµÇÁö ¾Ê´Â´Ù. tty*&!ttyp* - ÀÌ ±ÔÄ¢Àº ÄÜ¼Ö Å͹̳ο¡¸¸ Àû¿ëµÇ°í °¡»ó Å͹̳ο¡´Â Àû¿ëµÇÁö ¾ÊÀ½À» ³ªÅ¸³½´Ù. times - ¾ðÁ¦ ÀÌ ±ÔÄ¢À» Àû¿ëÇÒ °ÍÀÎÁö¸¦ ÁöÁ¤ÇÑ´Ù. °¢ ºÎºÐÀº ³¯Â¥/½Ã°£ ¹üÀ§ÀÌ´Ù. ³¯Â¥´Â µÎ°³ÀÇ ±ÛÀÚÀÇ Á¶ÇÕÀ¸·Î ³ªÅ¸³½´Ù. ¿¹¸¦µé¾î 'MoTuSa'´Â ¿ù, È­, Åä¿äÀÏÀ» ³ªÅ¸³½´Ù. ¹Ýº¹µÇ´Â ³¯Àº È¿·ÂÀ» »ó¼â½ÃÅ´À» ÁÖÀÇÇ϶ó. 'MoTuMo'¶ó°í ¾´ °æ¿ì ½ÇÁ¦·Î´Â È­¿äÀϸ¸ À¯È¿ÇÏ°Ô Ã³¸®µÈ´Ù. 'MoWk'¶ó°í ¾´ °æ¿ì ¿ù¿äÀÏÀ» Á¦¿ÜÇÑ ÆòÀÏÀ̶ó´Â ¶æÀÌ´Ù. ´ÙÀ½ÀÇ µÎ±ÛÀÚ Á¶ÇÕÀÌ À¯È¿ÇÏ°Ô Ã³¸®µÈ´Ù. Mo Tu We Th Fr Sa Su Wk Wd Al ¸¶Áö¸·¿¡¼­ µÎ¹ø°´Â ÁÖ¸»À» ¶æÇÏ°í ¸¶Áö¸· Ç׸ñÀº ÇÑ ÁÖÀÇ ¸ðµç ³¯¿¡ ÇØ´çÇÑ´Ù. ½Ã°£ ¹üÀ§´Â 24½Ã°£ Ç¥½Ã·Î ³ªÅ¸³½ HHMMÇü½Ä¿¡´Ù°¡ ÇÏÀÌÇÂ'-'Ç¥½Ã·Î ½ÃÀÛ¹üÀ§¿Í ³¡¹üÀ§¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à ³¡½Ã°£ÀÌ ½ÃÀ۽𣺸´Ù ÀÛ´Ù¸é ´ÙÀ½³¯ÀÇ ÇØ´ç½Ã°£À¸·Î Çؼ®µÈ´Ù. 'Mo1800-0300'À̶ó°í ¾²¸é Çã¿ëµÇ´Â ½Ã°£Àº ¿ù¿äÀÏ Àú³á 6½ÃºÎÅÍ ´ÙÀ½³¯ »õº® 3½Ã±îÁö¶ó´Â ¶æÀÌ´Ù. ÁÖ¾îÁø ½Ã°£Á¦ÇÑÁ¶°ÇÀº ¾ÕÀÇ ¼¼°³ÀÇ ÇʵåÀÇ Á¶°ÇÀÌ ¸¸Á·µÇ´Â °æ¿ì¿¡¸¸ Àû¿ëµÈ´Ù. Àб⠽±°í Æí¸®Çϵµ·Ï ±ÔÄ¢Àº newline chararacter·Î ºÐ¸®Çؼ­ ´ÙÀ½ÁÙ¿¡ °è¼Ó ¾²´Â °ÍÀÌ °¡´ÉÇÏ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâÀÇ »ç¿ëÀº Linux-PAM ¼³Á¤ ÆÄÀÏ¿¡¼­ ´ÙÀ½°ú °°ÀÌ ½ÃÀ۵ȴÙ. # # pam_time À» ·Î±×ÀÎ ¿äû¿¡ Àû¿ë # login account required pam_time.so ¿©±â¼­ÀÇ ¿¹´Â login ÇÁ·Î±×·¥¿¡ ÀÌ ¸ðµâÀ» »ç¿ëÇÏ´Â °ÍÀÌ´Ù. /etc/security/time.conf¼³Á¤ÆÄÀÏ¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â ±ÔÄ¢ÀÇ ¿¹´Â ´ÙÀ½°ú °°´Ù. login ; tty* & !ttyp* ; !root ; !Al0000-2400 root¸¦ Á¦¿ÜÇÑ ¸ðµç »ç¿ëÀÚ´Â ¾ðÁ¦³ª ÄÜ¼Ö ·Î±×ÀÎÀ» ÇÏ´Â °ÍÀÌ °ÅºÎµÈ´Ù. games ; * ; !waster ; Wd0000-2400 | Wk1800-0800 games (Linux-PAMÀ» »ç¿ëÇϱâ À§Çؼ­ ¼³Á¤µÊ) ¼­ºñ½º´Â ±Ù¹«½Ã°£´ë¿¡´Â »ç¿ëÀÌ ºÒ°¡´ÉÇÏ´Ù. ÀÌ ±ÔÄ¢Àº waster¶ó´Â »ç¿ëÀÚ¿¡°Ô´Â Àû¿ëµÇÁö ¾Ê´Â´Ù. ÇöÀç ¼¼¼ÇÀ» °­Á¦·Î Á¾·áÇÏ´Â µ¥¸óÀº ¾ø´Ù. ÀÌ°ÍÀº ³ªÁß¿¡ °íÃÄÁ®¾ß ÇÒ ºÎºÐÀÌ´Ù. À߸ø ¼³Á¤µÈ ±ÔÄ¢Àº syslog(3)¿¡ ÀÇÇؼ­ ¿¡·¯·Î ±â·ÏµÈ´Ù. The Unix Password module °³¿ä ¸ðµâ À̸§: pam_unix ÀúÀÚ: À¯Áöº¸¼ö: Á¦°øµÇ´Â °ü¸® ±×·ì: account; authentication; password; session ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ°ÍÀº Ç¥ÁØ UNIXÀÎÁõ ¸ðµâÀÌ´Ù. °èÁ¤ÀÇ Á¤º¸¸¦ ¾ò°í ¾²°í ÀÎÁõ󸮸¦ Çϱâ À§Çؼ­ ½Ã½ºÅÛÀÇ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÑ´Ù. º¸Åë ÀÌ Á¤º¸´Â /etc/passwdÆÄÀÏÀ̳ª shadow°¡ »ç¿ëµÇ´Â °æ¿ì /etc/shadowÆÄÀÏ¿¡¼­ ¾ò¾î¿Â´Ù. °èÁ¤°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; audit ¼³¸í: debug ¿É¼ÇÀÇ °æ¿ì syslog(3)¿¡ ¸ðµâÀÇ µ¿ÀÛ¿¡ ´ëÇؼ­ ´õ ¸¹Àº Á¤º¸¸¦ ±â·ÏÇÑ´Ù. ´Ù¸¥ ±¸¼º¿ä¼Ò°¡ Áö¿øÇÏ´Â ¿É¼ÇÀº ±â·ÏÀ» ÇÏÁö ¾Ê°í ¹«½ÃÇÏ°í ±× ¿ÜÀÇ ¿É¼ÇÀº ·Î±×¿¡ ¿¡·¯·Î ±â·ÏµÈ´Ù. audit¿É¼ÇÀ» »ç¿ëÇÏ´Â °æ¿ì º¸´Ù ´õ ¸¹Àº Á¤º¸¸¦ ±â·ÏÇÑ´Ù. expire; last_change; max_change; min_change; warn_changeÀÇ shadow±¸¼º¿ä¼Òµé¿¡ ±â¹ÝÇÏ°í ÀÖ´Â ÀÌ ¸ðµâÀº »ç¿ëÀÚÀÇ °èÁ¤°ú Æнº¿öµå¸¦ È®ÀÎÇÑ´Ù. Æнº¿öµå¸¦ È®ÀÎÇÏ´Â °æ¿ì »ç¿ëÀÚÀÇ Æнº¿öµå¸¦ º¯°æÇϵµ·Ï ±ÇÀ¯Çϰųª PAM_AUTHTOKEN_REQD¸¦ µ¹·ÁÁÜÀ¸·Î½á »ç¿ëÀÚ°¡ »õ Æнº¿öµå¸¦ ÀÔ·ÂÇÒ ¶§±îÁö ¼­ºñ½ºÀÇ ½ÇÇàÀ» À¯º¸ÇÑ´Ù. ¾Õ¿¡¼­ ±â¼úµÈ ³»¿ëÀº GNU Libc info¹®¼­¿¡¼­ ±â·ÏµÇ¾î ÀÖ´Ù. ¸¸¾à ÀÌ Ç׸ñÁß ÇϳªÀÌ»óÀÇ ±â·ÏÀ» ÀоîµéÀÏ ¼ö ¾ø´Ù¸é ÇØ´çµÇ´Â shadowÀÇ Ã¼Å©¸¦ ÇàÇÏÁö ¾Ê´Â´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: °èÁ¤°ü¸® ¸ðµå¿¡¼­ ´ÙÀ½°ú °°ÀÌ ÀÌ ¸ðµâÀ» ½ÇÇà½ÃÅ°´Â °ÍÀÌ °¡´ÉÇÏ´Ù. # # »ç¿ëÀÚÀÇ °èÁ¤°ú Æнº¿öµå°¡ À¯È¿ÇÑÁö È®ÀÎ # login account required pam_unix.so ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; audit; use_first_pass; try_first_pass; nullok; nodelay ¼³¸í: debug ¿É¼ÇÀÇ °æ¿ì syslog(3)¿¡ ¸ðµâÀÇ µ¿ÀÛ¿¡ ´ëÇؼ­ ´õ ¸¹Àº Á¤º¸¸¦ ±â·ÏÇÑ´Ù. ´Ù¸¥ ±¸¼º¿ä¼Ò°¡ Áö¿øÇÏ´Â ¿É¼ÇÀº ±â·ÏÀ» ÇÏÁö ¾Ê°í ¹«½ÃÇÏ°í ±× ¿ÜÀÇ ¿É¼ÇÀº ·Î±×¿¡ ¿¡·¯·Î ±â·ÏµÈ´Ù. audit¿É¼ÇÀ» »ç¿ëÇÏ´Â °æ¿ì º¸´Ù ´õ ¸¹Àº Á¤º¸¸¦ ±â·ÏÇÑ´Ù. ÀÌ ¸ðµâÀÇ ±âº»ÀûÀ¸·Î »ç¿ëÀÚÀÇ ¾ÏÈ£°¡ ºñ¾îÀÖ´Ù¸é »ç¿ëÀÚ°¡ ¼­ºñ½º¸¦ »ç¿ëÇÏÁö ¸øÇÏ°Ô ÇÑ´Ù. nullok¿É¼ÇÀ» »ç¿ëÇϸé ÀÌ ±âº»µ¿ÀÛÀ» ¹«È¿È­½ÃŲ´Ù. try_first_pass¿É¼ÇÀ» »ç¿ëÇÏ¸é »ç¿ëÀÚ¿¡°Ô ¾ÏÈ£¸¦ ÀÔ·ÂÇÏ´Â °ÍÀ» ¿ä±¸Çϱâ Àü¿¡ ¾Õ¼± ÀÎÁõ¸ðµâ¿¡¼­ »ç¿ëµÈ ¾ÏÈ£¸¦ ¸ÕÀú »ç¿ëÇؼ­ ´ëÀÔÇغ»´Ù. use_first_pass¿É¼ÇÀ» »ç¿ëÇÏ´Â °æ¿ì ÀÌ·¸°Ô ÀúÀåµÈ ¾ÏÈ£¸¸À» »ç¿ëÇÏ¸ç »ç¿ëÀÚ¿¡°Ô ¾ÏÈ£¸¦ ÀÔ·ÂÇÒ °ÍÀ» ¿ä±¸ÇÏ´Â ¸Þ½ÃÁö¸¦ ³»º¸³»Áö ¾Ê´Â´Ù. ¸¸¾à »ç¿ë°¡´ÉÇÑ ¾ÏÈ£°¡ ¾ø°Å³ª Ʋ¸®´Ù¸é »ç¿ëÀÚ°¡ ¼­ºñ½º¸¦ »ç¿ëÇÏ´Â °ÍÀ» ¸·´Â´Ù. nodelay¿É¼ÇÀ» »ç¿ëÇÑ °æ¿ì ÀÎÁõÀüü°¡ ½ÇÆÐÇÏ°Ô µÇ´Â °æ¿ì Àá½Ã ±â´Ù¸®´Â °ÍÀ» Ãë¼Ò½ÃŲ´Ù. ±âº»ÀûÀ¸·Î °¢ ¹¦µâÀº ÃÊ ´ÜÀ§·Î delay-on-failure¸¦ ¿äûÇÏ°Ô µÇ¾î ÀÖ´Ù. ÀÌ ¸ðµâÀÇ ´Ù¸¥ ±¸¼º ¿ä¼Ò¿¡¼­ Áö¿øµÇ´Â ¿É¼ÇµéÀº Á¶¿ëÈ÷ ¹«½ÃµÇ°í ±× ¿Ü´Â syslog(3)¸¦ ÅëÇؼ­ ¿¡·¯·Î ±â·ÏµÈ´Ù. unix_chkpwd ¶ó´Â ÇÁ·Î±×·¥Àº »ç¿ëÀÚÀÇ ¾ÏÈ£°¡ ÀÐÀ»¼ö ¾ø´Â Àå¼Ò¿¡ º¸°üµÇ´Â °æ¿ì »ç¿ëÀÚÀÇ ¾ÏÈ£¸¦ °Ë»çÇØÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù. ÀÌ ÇÁ·Î±×·¥Àº ¸Å¿ì ´Ü¼øÇÏ¸ç ´ÜÁö ÀÌ ÇÁ·Î±×·¥À» È£ÃâÇÑ »ç¿ëÀÚÀÇ ¾ÏÈ£¸¦ °Ë»çÇØÁÖ´Â ¿ªÇÒ¸¸ ÇÒ »ÓÀÌ´Ù. ÀÌ ÇÁ·Î±×·¥Àº »ç¿ëÀÚ¸¦ À§Çؼ­ Åõ¸íÇÏ°Ô ÀÛµ¿µÇ¸ç ÀÌ ¸ðµâÀÇ ÀÎÁõ ±¸¼º¿ä¼Ò¿¡ ÀÇÇؼ­ ¼öÇàµÈ´Ù. ÀÌ·¯ÇÑ ¹æ½ÄÀ¸·Î xlock°°Àº ÇÁ·Î±×·¥ÀÌ setuid-root¸¦ ÇÏÁö ¾Ê°íµµ ½ÇÇàµÇ´Â °ÍÀÌ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ ¸ðµâÀÇ Á¤»óÀûÀÎ µ¿ÀÛÀ» À§Çؼ­´Â /etc/nsswitch.confÆÄÀÏÀÌ ¿Ã¹Ù¸£°Ô ¼³Á¤µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ±× ÆÄÀÏ¿¡ ÁöÁ¤µÈ »ç¿ëÀÚÀÇ database´Â ÀÎÁõµÈ »ç¿ëÀÚÀÇ ±â·ÏÀ» º¸°üÇÏ°í ÀÖ´Ù. ÀÎÁõ ¸ðµå¿¡¼­´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù. # # »ç¿ëÀÚ¸¦ ÀÎÁõ # login auth required pam_unix.so Æнº¿öµå°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; audit; nullok; not_set_pass; use_authtok; try_first_pass; use_first_pass; md5; bigcrypt; shadow; nis; remember ¼³¸í: pam_unix¸ðµâÀÇ ÀÌ ±¸¼º¿ä¼Ò´Â »ç¿ëÀÚÀÇ ¾ÏÈ£¸¦ °»½ÅÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. Åë»óÀûÀ¸·Î ¾²ÀÌ´Â ¾ÏȣȭµÈ »ç¿ëÀÚ¾ÏÈ£¸¦ ÀúÀåÇÏ´Â UNIX databaseÀÇ °æ¿ì ¾Ïȣȭ 󸮸¦ ÇÒ ¶§ ÀüÅëÀÇ crypt(3)¸¦ »ç¿ëÇÏÁö ¾Ê°í md5¿É¼ÇÀ» »ç¿ëÇؼ­ MD5 ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. 8ÀÚ ÀÌ»óÀ» ¾Ïȣȭ ó¸®Çؼ­ ÀúÀåÇϱâ À§Çؼ­´Â ÀÌ ¿Ü¿¡µµ bigcrypt¿É¼ÇÀ» »ç¿ëÇÏ¿© Ç¥ÁØ UNIXÀÇ crypt ¾Ë°í¸®ÁòÀ» È®ÀåÇÑ DECÀÇ 'C2'È®ÀåÇÔ¼ö¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. nullok ¿É¼ÇÀ» »ç¿ëÇÏ¸é ¾ÏÈ£¸¦ °ø¶õÀ¸·Î ºñ¿öµÎµµ·Ï ¹Ù²Ù´Â °ÍÀ» Çã¿ëÇÑ´Ù. ÀÌ ¿É¼ÇÀÌ ¾ø´Â °æ¿ì ¾ÏÈ£°¡ ¾ø´Â °ÍÀº °èÁ¤À» Àá±×´Â °ÍÀ¸·Î Çؼ®µÈ´Ù. use_first_pass¿É¼ÇÀº ¿¾³¯ ¾ÏÈ£¿Í »õ·Î¿î ¾ÏÈ£¸¦ ¾Õ¼± ¸ðµâ¿¡¼­ »ç¿ëµÈ ¾ÏÈ£·Î °íÁ¤½ÃÅ°´Â ¿ªÇÒÀ» ÇÑ´Ù. try_first_pass¿É¼ÇÀÌ »ç¿ëµÈ °æ¿ì ¾Õ¼­ »ç¿ëµÈ »ç¿ëÀÚÀÇ ¿¾ ¾ÏÈ£¸¦ ÀÌ¿ëÇؼ­ »ç¿ëÀÚ°¡ ¿¾³¯ ¾ÏÈ£¸¦ ´Ù½Ã ÀÔ·ÂÇÒ ÇÊ¿ä°¡ ¾øµµ·Ï ÇÑ´Ù. ¸¸¾à ÀÌ ¿¾³¯ ¾ÏÈ£°¡ ¹Ù¸£Áö ¾Ê´Ù¸é »ç¿ëÀÚ´Â ¿¾³¯ ¾ÏÈ£¸¦ ÀÔ·ÂÇ϶ó´Â ¸Þ½ÃÁö¸¦ ¹Þ°Ô µÈ´Ù. use_authtok¿É¼ÇÀ» »ç¿ëÇÑ °æ¿ì ÀÌ ¸ðµâÀº »õ ¾ÏÈ£¸¦ ¾Õ¼­ »ç¿ëµÈ ¾Ïȣó¸® ¸ðµâ¿¡¼­ »ç¿ëÇÑ ¾ÏÈ£·Î ¸¸µç´Ù. (ÀÌ °æ¿ì´Â ¾Õ¼­ Cracklib¸ðµâÀ» ÀûÃþÇÏ´Â ¿¹Á¦¿¡¼­ ¼³¸íÇß´Ù.) not_set_pass¿É¼ÇÀº ´Ù¸¥ ¾Ïȣó¸® ¸ðµâ°ú ¿¾³¯ ¾ÏÈ£³ª »õ ¾ÏÈ£¸¦ Áְųª ¹Þ´Â °Í¿¡ ´ëÇؼ­ ÀüÇô ½Å°æ¾²Áö ¾Êµµ·Ï Áö½ÃÇÑ´Ù. debug ¿É¼ÇÀº ÀÌ ¸ðµâÀÇ ¾Ïȣó¸® ºÎºÐÀÇ µ¿ÀÛ¿¡ ´ëÇؼ­ syslog(3)¿¡ ´õ ¸¹Àº Á¤º¸¸¦ ±â·ÏÇϵµ·Ï ÇÑ´Ù. ´Ù¸¥ ¿É¼ÇµéÀº syslog(3)¿¡ ÀÇÇؼ­ ¿¡·¯·Î ±â·ÏµÉ ¼öµµ ÀÖ´Ù. audit¿É¼ÇÀ» »ç¿ëÇÏ¸é ´õ ¸¹Àº Á¤º¸¸¦ ±â·ÏÇÑ´Ù. nis¿É¼ÇÀº pam_unix¸ðµâÀº »õ ¾ÏÈ£¸¦ ¼³Á¤Çϴµ¥ NIS RPC¸¦ ÀÌ¿ëÇؼ­ ½ÃµµÇÒ °ÍÀ» Áö½ÃÇÑ´Ù. remember¿É¼ÇÀº ÇϳªÀÇ °ªÀ» ¹Þ¾ÆµéÀδÙ. ÀÌ °ªÀº °¢ »ç¿ëÀÚº°·Î °¡Àå ÃÖ±Ù¿¡ »ç¿ëµÈ ¾ÏÈ£ÀÇ °¹¼ö´Ù. ÀÌ ¾ÏÈ£µéÀº /etc/security/opasswd¿¡ ÀúÀåµÇ¸ç »ç¿ëÀÚÀÇ ¾ÏÈ£ º¯°æ ÀÌ·ÂÀ» Á¶»çÇØ °¥Àº ¾ÏÈ£¸¦ ³Ê¹« ÀÚÁÖ ¹Ù²Ù¾î¼­ »ç¿ëÇÏ´Â °ÍÀ» ¸·´Â´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: Ç¥ÁØ »ç¿ë¹æ¹ý: # # »ç¿ëÀÚ ¾ÏÈ£¸¦ ¹Ù²Þ # passwd password required pam_unix.so pluggable ¾ÏÈ£ °Ë»ç ¸ðµâÀÎ pam_cracklib°ú ÇÔ²² ÀûÃþÇؼ­ »ç¿ëÇÏ´Â ¿¹ÀÌ´Ù. # # »ç¿ëÀÚ ¾ÏÈ£¸¦ ¹Ù²Þ # passwd password required pam_cracklib.so retry=3 minlen=6 difok=3 passwd password required pam_unix.so use_authtok nullok md5 ¼¼¼Ç°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: ¼³¸í: ÀÌ ±¸¼º¿ä¼Ò¿¡¼­ ¹Þ¾ÆµéÀÌ´Â ¿É¼ÇÀº ¾Æ¹«°Íµµ ¾ø´Ù. ´ÜÁö »ç¿ëÀÚÀÇ À̸§°ú ¼­ºñ½ºÀÇ Á¾·ù¸¦ syslog(3)¿¡ ±â·ÏÇÏ´Â ¿ªÇÒÀ» ÇÒ »ÓÀÌ´Ù. »ç¿ëÀÚÀÇ ¼¼¼Ç ½ÃÀÛ°ú ³¡À» ±â·ÏÇÑ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ¼¼¼Ç ¸ðµâÀ» »ç¿ëÇÏ´Â °ÍÀº Á÷°üÀûÀÌ´Ù. # # ¼¼¼Ç ½ÃÀÛ°ú Á¾·á # login session required pam_unix.so The userdb module °³¿ä ¸ðµâ À̸§: pam_userdb ÀúÀÚ: Cristian Gafton <gafton@redhat.com> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: authentication ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: Berkeley DB°¡ ÇÊ¿äÇÔ. ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í .db database¿¡¼­ »ç¿ëÀÚ¸¦ °Ë»öÇÏ°í ±× database¿¡¼­ »ç¿ëÀÚÀÇ ¾ÏÈ£¸¦ °Ë»çÇÔ ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνĵǴ ÀÎÀÚµé: debug; icase; dump; db=XXXX; ¼³¸í: ÀÌ ¸ðµâÀº »ç¿ëÀÚ¸í°ú ¾ÏÈ£¸¦ Berkely DB database¿¡¼­ °Ë»çÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. database´Â »ç¿ëÀÚÀ̸§À¸·Î Á¤·ÄµÇ¾î ÀÖÀ¸¸ç »ç¿ëÀÚ¸íÀÇ Å°¿¡ ÇØ´çÇÏ´Â ÀÚ·á´Â ¾ÏȣȭµÇÁö ¾ÊÀº »óÅ·Πº¸°üµÇ°í ÀÖ´Â »ç¿ëÀÚ ¾ÏÈ£ÀÌ´Ù. ±×·¯¹Ç·Î DB databaseÀÚüÀÇ Á¢±Ù ±ÇÇÑ¿¡ ´ëÇؼ­ ÁÖÀǸ¦ ±â¿ï¿©¾ß ÇÑ´Ù. ÀÌ ¸ðµâÀº »ç¿ëÀÚÀÇ ¾ÏÈ£¸¦ ÀüÅëÀûÀÎ ¹æ½ÄÀ¸·Î ÀоîµéÀδÙ. ¸¸¾à ´ç½ÅÀÌ ÀÌ ¸ðµâÀ» ´Ù¸¥ ÀÎÁõ ¸ðµâ(pam_pwdb°°Àº ¸ðµâ)º¸´Ù ¸ÕÀú »ç¿ëÇÏ´Â °æ¿ì¿¡´Â ±× ¸ðµâÀÌ ÀÔ·ÂµÈ ¾ÏÈ£¸¦ ÀÌ ¸ðµâ¿¡¼­ ¸¸µå´Â Ç׸ñÀÎ PAM_AUTHTOK·Î ºÎÅÍ ÀоîµéÀ̵µ·Ï ¸¸µé¾î¾ß ÇÑ´Ù. ÀÌ ¸ðµâÀÇ µ¿ÀÛÀº /etc/pam.d/<service>ÆÄÀÏ¿¡ ÀÖ´Â ¼³Á¤¿¡ µû¶ó Á¦¾îµÈ´Ù. debug - syslog(3)¿¡ ´õ ¸¹Àº Á¤º¸¸¦ Á¦°øÇÑ´Ù. icase - ¾ÏÈ£¸¦ ´ë¼Ò¹®ÀÚ ±¸º°ÇÏÁö ¾Ê°í °Ë»çÇÑ´Ù. dump - databaseÀÇ ¸ðµç ³»¿ëÀ» log¿¡ ±â·ÏÇÑ´Ù. (ÀÌ°ÍÀ» ±âº»µ¿ÀÛÀ¸·Î ¸¸µéÁö ¸»¶ó!) db=XXXX - XXXX¶ó´Â À§Ä¡¿¡ ÀÖ´Â databaseÆÄÀÏÀ» »ç¿ëÇÑ´Ù. º¸Åë Berkeley DB´Â ÇÊ¿äÇÑ È®ÀåÀÚ¸¦ ÀÚµ¿À¸·Î ºÙ¿©ÁֹǷΠ/etc/foodata.db´ë½Å /etc/foodata¸¸ ½á ÁÖ¾î¾ß ÇÑ´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ÀÌ°ÍÀº /tmp/dbtest.dbÆÄÀÏ¿¡ ÀúÀåµÈ »ç¿ëÀÚÀÇ ·Î±×ÀÎÀ̸§°ú ¾ÏÈ£¸¦ °Ë»çÇØ ¸ÂÀ¸¸é ·Î±×ÀÎÀ» Çã¿ëÇÏ´Â º¸ÅëÀÇ ftp¼³Á¤ ÆÄÀÏÀÌ´Ù. (ÀÌ ÆÄÀÏÀº º¸Åë ´ëºÎºÐÀÇ ½Ã½ºÅÛ¿¡¼­ /etc/pam.d/ftp¿¡ ÀÖ´Ù) #%PAM-1.0 auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed auth sufficient pam_userdb.so icase db=/tmp/dbtest auth required pam_pwdb.so shadow nullok try_first_pass auth required pam_shells.so account required pam_pwdb.so session required pam_pwdb.so Warning logger module °³¿ä ¸ðµâ À̸§: pam_warn ÀúÀÚ: Andrew G. Morgan <morgan@parc.power.net> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: authentication; password ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: ³×Æ®¿öÅ© ÀνÄ: ¿ø°Ý »ç¿ëÀÚ¿Í È£½ºÆ®¿¡ ´ëÇÑ Á¤º¸¸¦ ·Î±×¿¡ ±â·Ï(¸¸¾à pam-itemÀ» ¾Ë°í ÀÖÀ¸¸é) ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í ÀÌ ¸ðµâÀº Á¦¾ÈµÈ ÀÎÁõ¿¡ ´ëÇÑ Á¤º¸¸¦ ±â·ÏÇϰųª ÇÁ·Î±×·¥ÀÌ ¾ÏÈ£¸¦ °»½ÅÇϵµ·Ï ÇÏ´Â °ÍÀ» ¸ñÀûÀ¸·Î ¸¸µé¾îÁ³´Ù. ÀÎÁõ°ü¸®+Æнº¿öµå°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: ¼³¸í: ¼­ºñ½º, Å͹̳Î, »ç¿ëÀÚ, ¿ø°Ý»ç¿ëÀÚ, ¿ø°ÝÈ£½ºÆ®¸¦ syslog(3)¿¡ ±â·ÏÇÑ´Ù. °¢ Ç׸ñµéÀº Á¶»çÇؼ­ ¾ò´Â °ÍÀÌ ¾Æ´Ï¶ó Ç¥ÁØÀÇ pam-itemµéÀ» ÀоîµéÀδÙ. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: ¾ÕÀÇ ¼³Á¤ ÆÄÀϺκÐ(4. Linux-PAM ¼³Á¤ÆÄÀÏ)¿¡¼­ ¼³¸íµÇ¾î ÀÖÀ½ ÈÙ ±×·ì ¸ðµâ(The wheel module) °³¿ä ¸ðµâ À̸§: pam_wheel ÀúÀÚ: Cristian Gafton <gafton@redhat.com> À¯Áöº¸¼ö: ÀúÀÚ Á¦°øµÇ´Â °ü¸® ±×·ì: authentication ¾ÏÈ£ÇÐÀû ¹Î°¨¼º: º¸¾È µî±Þ: ÄÄÆÄÀϽà ¸Þ½ÃÁö: ½Ã½ºÅÛ ÀÇÁ¸¼º: libpwdb ÇÊ¿äÇÔ. ³×Æ®¿öÅ© ÀνÄ: ¸ðµâÀÇ Àü¹ÝÀûÀÎ ¼³¸í root±ÇÇÑÀ» ¾òÀ» ¼ö ÀÖ´Â ÀÚ°ÝÀ» wheel(gid=0) ±×·ìÀÇ »ç¿ëÀÚ¿¡°Ô¸¸ ÁØ´Ù. ÀÎÁõ°ü¸® ±¸¼º¿ä¼Ò ÀνÄÇÏ´Â ÀÎÀÚµé: debug; use_uid; trust; deny; group=XXXX ¼³¸í: ÀÌ ¸ðµâÀº ¼ÒÀ§ wheel±×·ìÀ» »ç¿ëÇϵµ·Ï ÇÑ´Ù. ÀÌ ¸ðµâÀº ±âº»ÀûÀ¸·Î´Â root±ÇÇÑÀ» ¾òÀ» ¼ö ÀÖ´Â ÀÚ°ÝÀ» »ç¿ëÀÚ°¡ wheel±×·ì¿¡ ¼ÓÇÑ °æ¿ì¿¡¸¸ °¡´ÉÇϵµ·Ï ¸¸µç´Ù. (¿ì¼± ÀÌ ¸ðµâÀº 'wheel'±×·ìÀÌ Á¸ÀçÇÏ´ÂÁö¸¦ ¸ÕÀú °Ë»çÇÑ´Ù. ¸¸¾à ¾ø´Ù¸é ÀÌ ¸ðµâÀº group id°¡ 0ÀÎ ±×·ìÀ» wheel ±×·ìÀ¸·Î ÁöÁ¤ÇÑ´Ù) ÀÌ ¸ðµâÀÇ µ¿ÀÛÀº /etc/pam.confÆÄÀÏ¿¡ Á¤ÀÇµÈ ³»¿ë¿¡ µû¶ó¼­ Á¦¾îÇÒ ¼ö ÀÖ´Ù. debug - syslog(3)¿¡ ´õ ¸¹Àº Á¤º¸¸¦ Á¦°øÇÑ´Ù. use_uid - ÀÌ ¿É¼ÇÀ» »ç¿ëÇÏ¸é »ç¿ëÀÚÀÇ getlogin(3)À̸§À» ÀÌ¿ëÇÏÁö ¾Ê°í ÇöÀç ÇÁ·Î¼¼½ºÀÇ uid¸¦ ÀÌ¿ëÇÑ´Ù. ÀÌ ¿É¼ÇÀº ¿¹¸¦ µé¾î 'su'¸í·É¾î °°Àº °æ¿ì¿Í °°ÀÌ ÇÑ °èÁ¤¿¡¼­ ´Ù¸¥ °èÁ¤À¸·Î ¶Ù¾î ³Ñ´Â °æ¿ì À¯¿ëÇÏ´Ù. trust - ÀÌ ¿É¼ÇÀÌ »ç¿ëµÈ °æ¿ì root±ÇÇÑÀ» ¿ä±¸ÇÑ »ç¿ëÀÚ°¡ wheel±×·ì¿¡ ¼ÓÇÑ °æ¿ì PAM_SUCCESS¸¦ µ¹·ÁÁÖµµ·Ï ÇÑ´Ù. ±âº»µ¿ÀÛÀº ÀÌ·± °æ¿ì¿¡ PAM_IGNORE¸¦ µ¹·ÁÁÖ´Â °ÍÀÌ´Ù. ÀÌ ¿É¼ÇÀ» »ç¿ëÇϸé wheel group»ç¿ëÀÚµéÀÌ ¾ÏÈ£¸¦ ÀÔ·ÂÇÏÁö ¾Ê°íµµ root±ÇÇÑÀ» ȹµæÇÒ ¼ö ÀÖ°Ô ¸¸µç´Ù. ÁÖÀÇÇؼ­ »ç¿ëÇϱ⠹ٶõ´Ù! deny - ¸ðµâÀÇ µ¿ÀÛÀ» ¹Ý´ë·Î Çϵµ·Ï ¸¸µç´Ù. ¸¸¾à »ç¿ëÀÚ°¡ wheel±×·ì¿¡ ¼ÓÇÑ »ç¿ëÀÚ°¡ uid=0À» ¾ò±â À§ÇÑ Á¢±ÙÀ» ÇÑ´Ù¸é Á¢±ÙÀ» °ÅºÎÇÑ´Ù. (¾Æ¸¶µµ ÀÌ°ÍÀº Å͹«´Ï¾ø´Â ÁþÀÏ °ÍÀÌ´Ù.) ÀÌ ¿É¼ÇÀº 'group= '¿É¼Ç°ú °°ÀÌ »ç¿ëµÇ±â À§Çؼ­ ¸¸µé¾îÁ³´Ù. group=XXXX - gid=0 ÀÎ ±×·ìÀ» °Ë»çÇÏ´Â ´ë½Å ÀÎÁõÀ» À§Çؼ­ XXXX±×·ìÀ» °Ë»çÇÑ´Ù. ¿©±â¼­ XXXX´Â ±×·ìÀÇ À̸§ÀÌÁö ¼ýÀÚ·Î µÈ ±×·ìÀÇ id°¡ ¾Æ´Ï´Ù. ¿¹Á¦/ÃßõÇÏ´Â »ç¿ë¹ý: superuser ±ÇÇÑÀ» ¾òÀ» ¼ö ÀÖ´Â ±ÇÇÑÀ» wheel group ¿¡¸¸ Çã¿ëÇÏ·Á´Â °æ¿ì ´ÙÀ½ÀÇ ³»¿ëÀ» ¼³Á¤ÆÄÀÏ¿¡ ±â·ÏÇÏ¸é µÈ´Ù. # # root ´Â ±âº»ÀûÀ¸·Î Á¢±ÙÀÌ Çã¿ëµÈ´Ù (rootok), ¿ÀÁ÷ wheel ±×·ìÀÇ »ç¿ëÀÚ¸¸ # root (wheel) °¡ µÉ ¼ö ÀÖÁö¸¸ root°¡ ¾Æ´Ñ »ç¿ëÀÚ´Â Unix ÀÎÁõÀ» °ÅÄ£´Ù. # su auth sufficient pam_rootok.so su auth required pam_wheel.so su auth required pam_unix_auth.so ÆÄÀϵé(Files) /usr/lib/libpam.so.* ÀÀ¿ëÇÁ·Î±×·¥µéÀÌ Linux-PAM¿¡ Á¢±ÙÇÏ°Ô ÇØ ÁÖ´Â °øÀ¯ ¶óÀ̺귯¸® /etc/pam.conf Linux-PAM ȯ°æ¼³Á¤ ÆÄÀÏ /usr/lib/security/pam_*.so Linux-PAMÀÇ µ¿ÀûÀ¸·Î ·Îµå°¡´ÉÇÑ ¿ÀºêÁ§Æ®ÆÄÀÏ(¸ðµâ)µéÀÇ ±âº» À§Ä¡ °ü·Ã Âü°í(See Also) The Linux-PAM Application Writers' Guide. The Linux-PAM Module Writers' Guide. The V. Samar and R. Schemers (SunSoft), ``UNIFIED LOGIN WITH PLUGGABLE AUTHENTICATION MODULES'', Open Software Foundation Request For Comments 86.0, October 1995. ÀÌ urlÀ» º¸¶ó: http://www.kernel.org/pub/linux/libs/pam/pre/doc/rfc86.0.txt.gz ÁÖÀÇ, Âü°í»çÇ×(Notes) ¿ø·¡ ¿©±â¿¡´Â °³¹ß Âü°í»çÇ×µéÀ» ³Ö°íÀÚ Çß¾ú´Ù... 'ÇöÀç ÀÌ°ÍÀº ½ÇÁ¦·Î´Â Áö¿øµÇÁö ¾Ê½À´Ï´Ù.' °°Àº °Íµé ¸»ÀÌ´Ù. ¹®¼­ÀÇ ¹ßÇ¥½Ã ¿©±â ÀÖ´ø ³»¿ëµéÀº ¾Æ·¡¿¡ ÀÖ´Â ¹ö±×¶õ(Bugs)¿¡ ¿Å°ÜÁú °ÍÀÌ´Ù! :) use_mapped_pass ¸ðµâÀÎÀÚ¸¦ Áö¿øÇÏ´Â °ÍÀÌ °¡´ÉÇÒ °ÍÀΰ¡? ´©±¸ ½Ñ(ȤÀº °øÂ¥·Î ¾µ ¼ö ÀÖ´Â) ÁÁÀº º¯È£»ç ¾Æ´Â »ç¶÷ ¾ø´Â°¡?! Sun¿¡¼­ »õ·Î¿î °ü¸® ±×·ìÀ» Ãß°¡ÇÏ´Â °ÍÀ» °ËÅäÇ߱⠶§¹®¿¡ ÀÌ ³»¿ëÀº »ç¶óÁúÁöµµ ¸ð¸¥´Ù. ÀÌ ¹æ½ÄÀ¸·Î´Â libpamÀÌ °­·ÂÇÑ ¾Ïȣȭ¸¦ °ÅÃļ­ ¾ÈÀüÇÏ°Ô Æнº¿öµå¸¦ º¸°üÇÏ´Â ¸ðµâÀ» »ç¿ëÇÒ ¼ö ÀÖ°í, ÀÌ·±½ÄÀ¸·Î µÇ¸é ÀÌ ¸ðµâµéÀº Linux-PAM°ú °°ÀÌ ¹èÆ÷ÇÒ ÇÊ¿ä°¡ ¾øÀ» °ÍÀÌ´Ù. ÀúÀÚ/°¨»çÀλç(Author/acknowledgments) ÀÌ ¹®¼­´Â Andrew G. Morgan (morgan@kernel.org)°¡ ½è°í ´ÙÀ½°ú °°Àº »ç¶÷µéÀÌ Á¦°øÇÑ ³»¿ëµéÀÌ Æ÷ÇԵǾú´Ù: Sun Microsystems¿¡ °¨»ç¸¦ µå¸®¸ç ƯÈ÷ Vipin Samar ¿Í Charlie Lai°¡ Ãæ°íÇØ ÁØ °Í¿¡ ´ëÇؼ­ °¨»çÇÑ´Ù. Linux-PAMÀÇ °³¹ß Ãʱ⠴ܰ迡¼­, SunÀº °í¸¿°Ôµµ ±×µéÀÇ PAM ±¸Çö¿¡ ´ëÇÑ ¹®¼­¸¦ º¼ ¼ö ÀÖ°Ô ÇØ ÁÖ¾ú´Ù. ÀÌ°ÍÀ¸·Î Linux-PAMÀÇ °³¹ßÀÌ Å©°Ô ¾Õ´ç°ÜÁú ¼ö ÀÖ¾ú´Ù. ¹ö±×/Å»ÀÚ(Bugs/omissions) ¾ðÁ¦³ª PAM¸ðµâµéÀÌ °³¹ßµÇ°í ÀÖ´Ù. ÀÌ ¹®¼­°¡ ÃÖ½ÅÁ¤º¸°¡ µÇ´Â °ÍÀº °ÅÀÇ ºÒ°¡´ÉÇÏ´Ù! ÀÌ ¸Þ´º¾óÀº ¿Ï¼ºµÇÁö ¾Ê¾Ò´Ù. ÁÁÀº ÀÏÀ» ÇÑ ¸¹Àº »ç¶÷µéÁß ´ÜÁö ÀϺθ¸ÀÌ ¿©±â¿¡ ³ª¿­µÇ¾ú´Ù. ÀÌ ¹®¼­¿¡ ´ëÇÑ ÀúÀÛ±Ç(Copyright information for this document) Copyright (c) Andrew G. Morgan 1996-9. All rights reserved. Email: <morgan@linux.kernel.org> Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, and the entire permission notice in its entirety, including the disclaimer of warranties. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. Alternatively, this product may be distributed under the terms of the GNU General Public License (GPL), in which case the provisions of the GNU GPL are required instead of the above restrictions. (This clause is necessary due to a potential bad interaction between the GNU GPL and the restrictions contained in a BSD-style copyright.) THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.