¡°Cannot execute /bin/bash : Permission denied¡± - ÇØ°áÇÏ´Ù.

¸®´ª½º¿ùµå ÆíÁýºÎ / By Ben Okopnik

 

     

    ÀÌ ±â»ç¸¦ ¾²±â ¾ó¸¶ Àü¿¡ Áö³­ ¸î ÁÖ µ¿¾È ³ª¸¦ ±«·ÓÇû´ø ¹®Á¦¸¦ ÇØ°áÇß´Ù. ÀÌ ¹®Á¦´Â ¸®´ª½º °¡Á¦Æ®¿¡ Á¾Á¾ ¾ð±ÞµÇ¾ú´ø ¹®Á¦¿´À¸¹Ç·Î ³ª´Â ´Ù¸¥ µ¶ÀÚµé°ú ÀÌ ¹®Á¦¸¦ °øÀ¯ÇÏ°í ½Í¾ú´Ù.

    ÀÌ ±ÛÀº ¶ÇÇÑ ÀϹÝÀûÀÎ ¼ÒÇÁÆ®¿þ¾î ¹®Á¦ ÇØ°á¿¡¼­ ÁÁÀº ¾È³»ÀÚ°¡ µÉ ¼ö ÀÖ´Ù. ±×·¯³ª login ¹®Á¦´Â ¿©·¯ ºÎºÐ¿¡¼­ ³ª¿Ã ¼ö ÀÖÀ¸¹Ç·Î ³» °æ¿ìÀÇ ÇØ°áÃ¥ÀÌ ¿©·¯ºÐ¿¡°Ôµµ ÅëÇÑ´Ù°í º¼ ¼ö´Â ¾ø´Ù. ¸î ÁÖ Àü¿¡ ³ª´Â ³» Çǽÿ¡ MUA(Mail User Agent)¸¦ ¼³Ä¡ÇÏ·Á°í °áÁ¤Çß´Ù. ³»°¡ ÀüÈ­³ª Àü±â¼±¿¡¼­ ¸Ö¸® ¶³¾îÁø Á¤¹ÚµÈ µÀ´Ü¹è¿¡ »ê´Ù´Â °ÍÀ» °í·ÁÇϸé ÀÌ»óÇÑ °áÁ¤À̶ó°í º¼Áöµµ ¸ð¸£³ª ³ª¸§´ë·Î ÀÌÀ¯°¡ ÀÖ´Ù.

    ³ª´Â ¿¹Àü¿¡ À°»ó¿¡¼­ ÀÌ ÀÛ¾÷À» Çß¾ú´Ù. ³ª´Â ¸î °¡Áö Å×½ºÆ®¸¦ ÇØ º¸°í ½Í¾ú´Ù. MTA (Mail Transfer Agent)´Â MUA¸¦ ¼±ÇàÇÑ´Ù. Áï ¸ÞÀÏÀº ¹è´ÞÇØ ÁÙ ¾î¶² °ÍÀ» ÇÊ¿ä·Î ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¸ÞÀÏÀ» ¾²´Â Àǹ̰¡ ¾ø´Ù.  ±×·¡¼­ MTA/MUA Á¶ÇÕÀÌ ÇÊ¿äÇÏ´Ù. ³ª´Â µ¥ºñ¾È Àüü¸¦ ³» ÇÏµå µå¶óÀ̺êÀÇ ÆÄƼ¼Ç¿¡ °®°í ÀÖÀ¸¹Ç·Î ¾Æ¹«·± ¾î·Á¿òÀÌ ¾ø´Ù. ÀÌ·¸°Ô ÇØ ³õÀ¸¸é ¼³Ä¡µµ ½±°í ÆÐÅ°Áö ã´Â °Íµµ ÈûµéÁö ¾Ê´Ù.

    ³ª´Â su ¸¦ º°·Î ÁÁ¾ÆÇÏÁö ¾Ê´Â´Ù. Àû¾îµµ ÁÖ¿ä ÀÛ¾÷¿¡¼­´Â ÀÌ ¸í·ÉÀº º»·¡ »ç¿ëÀÚÀÇ È¯°æº¯¼ö¸¦ À¯ÁöÇϹǷΠ¶§·Î´Â ¾ÆÁÖ Èï¹Ì·Î¿î °æ¿ìµéÀ» º¸¿© ÁÖ¾ú´Ù. °£´ÜÇÑ Çã°¡ º¯°æÀ̳ª /etc ÆÄÀÏ ¼öÁ¤ ¿ÜÀÇ °æ¿ì´Â ¸ô¶óµµ ÆÐÅ°Áö¸¦ ¼³Ä¡Çϰųª Á¦°ÅÇÏ´Â °Í°ú °°Àº Áß¿äÇÑ ÀÛ¾÷¿¡´Â (³ª´Â ¾ÆÁ÷ ¾î´À MTA ¸¦ ¼³Ä¡ÇÒÁö´Â °áÁ¤ ¾Ê¾Ò´Ù)³ª´Â root ·Î ·Î±×ÀÎ ÇÑ´Ù.

    Midnight Commander´Â µð·ºÅ丮 º¯°æ¿¡¼­ºÎÅÍ ³»¿ë º¸±â µ¥ºñ¾ÈÀ̳ª ·¹µåÇÞ ÆÐÅ°Áö ¼³Ä¡ ÀÛ¾÷µéÀ» ¾ÆÁÖ ½±°Ô ÇØÁØ´Ù. `sendmail¡¯ÀÌ°Ç ³Ê¹« Å©°í º¹ÀâÇÏ´Ù. º¸´Ù °£´ÜÇÑ°Ô ÇÊ¿äÇÏ´Ù. `exim¡¯?... `exmh¡¯?... `mh¡¯?... `nmh¡¯? ¸ðµÎ ¼³Ä¡/ÇØÁ¦¸¦ ¹Ýº¹.. ±×·¯³ª ÇÊ¿äÇÑ ¶óÀ̺귯¸®´Â ¿¹¿Ü´Ù. ³ª´Â ¶óÀ̺귯¸®¸¦ ¼³Ä¡ÇÑ °æ¿ì´Â ±×´ë·Î µÐ´Ù. »õ ½Ã½ºÅÛ¿¡ ¸î ¹ø ÀÌ·¸°Ô Çϸé ÀÌÁ¦´Â "ÇÊ¿äÇÑ ¶óÀ̺귯¸®°¡ ¾ø½À´Ï´Ù"¶ó´Â ºÒÆòÀ» µèÁö ¾Ê´Â´Ù. ´Ü ¾î¶² ¹èÆ÷º»¿¡¼­ »ó´ç¼öÀÇ ¶óÀ̺귯¸®´Â ¾î´À ÇÑ °¡Áö¸¸À» ¼±ÅÃÇØ¾ß ÇÑ´Ù.(Áï ±×µéÀº ¼­·Î Ãæµ¹ÇÑ´Ù) ³ª´Â ¡°libs¡± µð·ºÅ丮¸¦ Åë°·Î ¼³Ä¡ÇÏ°í´Â ±×·± ¹®Á¦¿¡ ´ëÇؼ­´Â ÀØ¾î ¹ö¸°´Ù.

    ÇÏÁö¸¸ ¾ÆÁ÷µµ MTA ¼±Åà ¹®Á¦°¡ ÀÖ´Ù. ¾Æ! `smail¡¯ÀÌ ÀÖ±º. ¼³Ä¡µµ ½±°í ±¸¼ºµµ °£´ÜÇÏ´Ù. µÆ´Ù. MUA´Â ¼±ÅÃÀÌ ½±´Ù. ³ª´Â muttÀÇ À¶Å뼺ÀÌ ¸¾¿¡ µç´Ù. ÀÌÁ¦ ³¡³µ±º.(¼²ºÎ¸¥ ÆÇ´ÜÀ̾ú´Ù) ±×·±µ¥ ÀÌÁ¦ ³ª´Â root ¿ÜÀÇ »ç¿ëÀڷδ ·Î±×ÀÎÀÌ ¾ÈµÈ´Ù. ³»°¡ ¹ÞÀº ¸Þ½ÃÁö´Â ÀÌ·¸´Ù.
     

    Cannot execute /bin/bash: Permission denied

 

    ÀÌ ¹«½¼ ³¯º­¶ôÀΰ¡?
     

     `Was this some occult illusion?
     Some maniacal intrusion?
     These were choices Solomon
     Himself had never faced before...¡¯


    (ÀÌ ºÎºÐÀº ¾î´À °íÀü¿¡¼­ ÀοëÇÑ °Í °°´Ù. ¹ø¿ª »ý·«)

    ³ª´Â /etc/password¸¦ °Çµå¸®Áö ¾Ê¾Ò´Ù´Â °ÍÀ» ¾Ë°í ÀÖ´Ù. ¶Ç /etc µµ ¸¶Âù°¡Áö´Ù. ±×·¯³ª ³ª´Â À̵é ÆÐÅ°Áö¿¡ ´ëÇؼ­´Â ºñ·Ï ±×µéÀÌ ¾ÈÀüÇÏ´Ù°í´Â ÇÏÁö¸¸ ³»°¡ root ±ÇÇÑÀ¸·Î ÀÛ¾÷ÇÒ ¶§ ¾î¶»°Ô Çß´ÂÁö´Â È®½ÇÈ÷ ¸ð¸¥´Ù. ±×·¡¼­ ¸î °¡Áö »çÇ×À» ¸é¹ÐÈ÷ üũÇß´Ù. Æнº¿öµå ÆÄÀÏ¿¡ `ben¡¯ °èÁ¤Àº µé¾î ÀÖ¾ú´Ù. /etc/group µµ ¸¶Âù°¡Áö¿´´Ù. Ʋ¸° Æнº¿öµå¸¦ ³ÖÀ¸¸é `Cannot execute¡¯ ´ë½Å `Login incorrect¡¯ ¶õ ¸Þ½ÃÁö°¡ Á¤»óÀûÀ¸·Î Ãâ·ÂµÈ´Ù.

    ´Ù¸¥ ¹æ¹ýÀ¸·Î Á¡°Ë. »õ·Î¿î °èÁ¤À» ¸¸µé¾ú´Ù. (¡°joe¡±) Æнº¿öµåµµ ³Ö°í¼­ ÀÌ °èÁ¤À¸·Î ·Î±×ÀÎÀ» ½ÃµµÇß´Ù. ¿ª½Ã °°Àº ¿¡·¯ ¸Þ½ÃÁö°¡ ³ª¿Â´Ù. ·Î±×ÀÎ °úÁ¤¿¡¼­ ¾Ë ¼ö ¾ø´Â ÀÌÀ¯·Î ¹«¾ð°¡°¡ À߸øµÇ¾ú´Ù. (Goodbye, ¡°joe¡±...)

    ³ª´Â ÀÌ ´Ü°è¿¡¼­ ºÒ¾ÈÇÑ »ý°¢ÀÌ µé¾î À绡¸® ´Ù¸¥ ¹öÃò¾ó Å͹̳ÎÀ» ¿­¾î root·Î ·Î±×ÀÎÀ» ½ÃµµÇß´Ù. ¾Æ¹«·± ¹®Á¦°¡ ¾ø´Ù. Àû¾îµµ ³ª´Â ´Ù½Ã ºÎÆà Çصµ ½Ã½ºÅÛ¿¡ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù´Â »ý°¢ÀÌ µé¾ú´Ù. ³ª´Â ¹é¾÷°ú À缳ġ°¡ ½È¾ú´Ù.

    /bin µð·ºÅ丮¸¦ ¿­¾ú´Ù. ÆÄÀÏ Çã°¡´Â ¾î¶²°¡? ¸ðµç°Ô 755 (-rwxr-xr-x)ÀÌ´Ù. `login¡¯, `mount¡¯, `umount¡¯, `ping¡¯ and `su¡¯´Â ¸ðµÎ SETUID (-rwsr-xr-x)ÀÌ´Ù. ¹®Á¦°¡ ¾ø´Ù. /etcÀÇ Çã°¡¸ðµå´Â ¾î¶²°¡? ±×µéµµ ¸ðµÎ ±¦Âú´Ù. ´ëºÎºÐ 644 (-rw-r--r--)ÀÌ´Ù. °¡²û¾¿ root¿ÜÀÇ ¸ðµÎ¿¡°Ô °¨Ãß¾îÁø ÆÄÀϵéÀÌ ¸î °³°¡ 600 (-rw-------)ÀÌ´Ù. Á¶±Ý ¾î¸®¼®Àº ¹æ¹ýÀ» ½è´Ù. `login¡¯°ú `bash¡¯ °¡ ±úÁöÁö ¾Ê¾Ò³ª º¸·Á°í ¿ø·¡ÀÇ ÆÐÅ°Áö¿¡¼­ ³ª¿Â »õ °ÍÀ¸·Î µ¤¾î ¾º¿ü´Ù. ¿ª½Ã ´Þ¶óÁöÁö ¾Ê´Â´Ù.

    Àá±ñ¸¸! /home´Â ¾î¶²°¡? ±× µð·ºÅ丮ÀÇ Çã°¡ ¸ðµå°¡ À߸øµÇ¸é »ç¿ëÀÚ´Â ·Î±×ÀÎÀÌ ¾ÈµÈ´Ù. ±×°Íµµ ¹®Á¦¾ø´Ù. 6775 (drwxrwsr-s)ÀÌ´Ù.

    .bashrc ¿Í .bash_profile µµ ÀÌ»ó¾ø´Ù. Çã°¡¸ðµåµµ ¹®Á¦ ¾ø´Ù. ³»Ä£ ±è¿¡ ¸ðµç/¹ØÀÇ µð·ºÅ丮¸¦ Á¶»çÇßÁö¸¸ /root¸¸ »©°í Á¦ 3ÀÚ°¡ ÀÐÀ» ¼ö ÀÖ´Ù. Áï ¹®Á¦°¡ ¾ø´Ù.  /var¿¡´Â ´©°¡ ·Î±×ÀÎ Çß´ÂÁö, ¾ðÁ¦ ·Ï¾Æ¿ô Çß´ÂÁö µîÀ» ±â·ÏÇÏ´Â ¸î °³ÀÇ ÆÄÀÏÀÌ ÀÖ´Ù. À̵éÀÌ À߸ø µÇµµ ¿¹ÃøÇÒ ¼ö ¾ø´Â ÀÌ»óÇÑ Çö»óÀÌ ³ª¿Ã ¼ö ÀÖ´Ù.

     

ºñ»ó È®ÀÎ ¹æ¹ýÀ» ½á º¸¾Ò´Ù.

     

    cat >/var/log/wtmp
    cat >/var/run/utmp


    ÀÌ·¸°Ô ÇÏ¸é ³»¿ëÀ» ¾ø¾Ö°í 0¹ÙÀÌÆ®ÀÇ ÆÄÀÏ·Î ¸¸µç´Ù.
    [ cat ¾øÀÌ ¸í·ÉÀ» ÁÖ¾ú´Ù. ±×·¯³ª ¡°>¡±À» ½©ÇÁ·ÒÇÁÆ®·Î ¿ÀÀÎÇÏÁö ¾Êµµ·Ï ¾Õ¿¡ cat·ê ³Ö¾ú´Ù. ]
    ³ª´Â ¸ðµç VT¿¡¼­ ·Î±×¾Æ¿ôÇß´Ù. (`utmp¡¯ ¿Í `wtmp¡¯ °¡ µ¥ÀÌÅ͸¦ ¹Þµµ·Ï) °á°ú´Â Á¤»óÀ̾ú´Ù.

    /dev/ttyX ¿Í /dev/vcsX ÀÇ Çã°¡¸ðµå´Â? (Å͹̳ΰú ÄܼÖ) ±×µéµµ ¸ðµÎ Á¤»óÀûÀ¸·Î º¸ÀδÙ. ÀÌÁ¦ º°·Î Èñ¸ÁÀÌ ¾ø´Ù.

    Àá±ñ! ½Ã½ºÅÛÀûÀÎ Á¢±Ù¹æ¹ýÀ» ½áº¸¸é? ¾î´À ¹æÇâÀ¸·Î ÁøÇàÇϱâ Àü¿¡ ¹«½¼ ÀÏÀÌ ÀϾ´ÂÁö¸¦ »ý°¢ÇØ º¸ÀÚ.  ±â¾ïÀ» »ì¸®±â À§ÇØ System Administrator¡¯s Guide (SAG) ¸¦ µéÃß¾î º¸¾Ò´Ù. ¿©±â ·Î±×ÀÎ °úÁ¤ÀÌ ÀÖ´Ù.

     

¡°System Administrator¡¯s Guide¡±·ÎºÎÅÍ  (Lars Wirzenius ¾¸)

    ¸ÇóÀ½ init´Â Å͹̳Π¶Ç´Â ÄÜ¼Ö ¿¬°áÀ» À§ÇÑ getty ÇÁ·Î±×·¥ÀÌ ÀÖ´ÂÁö¸¦ È®ÀÎÇÑ´Ù. Getty´Â Å͹̳ÎÀ» °¨½ÃÇÏ°í »ç¿ëÀÚ°¡ ·Î±×ÀÎÇÒ Áغñ°¡ µÅ ÀÖ´ÂÁö¸¦ ¾Ë·ÁÁÖ±æ ±â´Ù¸°´Ù. (ÀÌ´Â º¸Åë »ç¿ëÀÚ°¡ ¾î¶² Å°¸¦ ´©¸£´Â °ÍÀ» ÀǹÌÇÑ´Ù) »ç¿ëÀÚ¸¦ °¨ÁöÇϸé getty´Â ȯ¿µ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í(/etc/issue ¿¡ µé¾î ÀÖ´Â) °èÁ¤¸í ÀÔ·ÂÀ» ¿ä±¸ÇÑ´Ù. ±×¸®°í¼­´Â login ÇÁ·Î±×·¥À» ½ÇÇàÇÑ´Ù. Login ÇÁ·Î±×·¥Àº °èÁ¤¸íÀ» ÆĶó¸ÞÅÍ·Î ¹Þ°í´Â Æнº¿öµå ÇÁ·ÒÇÁÆ®¸¦ ³» º¸³½´Ù. ÀÌ µÑÀÌ ÀÏÄ¡Çϸé loginÀº ±× »ç¿ëÀÚ¿¡°Ô ÁöÁ¤µÈ ½©À» ½ÃÀÛÇÑ´Ù.

    ÀÏÄ¡ÇÏÁö ¾ÊÀ¸¸é ½ÇÇàÀ» Áß´ÜÇÏ°í ÇÁ·Î¼¼½º¸¦ Á¾·áÇÑ´Ù. (»ç¿ëÀÚ¿¡°Ô´Â ´Ù½Ã °èÁ¤°ú Æнº¿öµå ÀÔ·Â ±âȸ¸¦ ÁÙ °ÍÀÌ´Ù) init´Â ÇÁ·Î¼¼½º°¡ Á¾·áÇÑ °ÍÀ» ¾Ë°í ±× Å͹̳ο¡ ´ëÇÑ »õ·Î¿î getty¸¦ ½ÃÀÛÇÑ´Ù.

                                 ½ÃÀÛ(Start)     

                              init: fork + exec  
                               ¡°/sbin/getty¡±   

                             getty: »ç¿ëÀÚ ´ë±â

                          getty: °èÁ¤¸í ÀÐ¾î µéÀÓ
                               exec ¡°/bin/login¡±

                          login: Æнº¿öµå ÀоîµéÀÓ

        Login: exit             ÀÏÄ¡Çϴ°¡?

                                       Yes

                           login: exec(¡°/bin/sh¡±)

                           sh: ¸í·É ÀÐ±â ¹× ½ÇÇà

                                  sh: exit

         Figure 8.1: Å͹̳Π·Î±×ÀÎ °úÁ¤: init, getty, login, shellÀÇ »óÈ£ ÀÛ¿ë.

    À¯ÀÏÇÑ »õ·Î¿î ÇÁ·Î¼¼½º´Â init¿¡ ÀÇÇØ Ã¢Á¶µÈ °ÍÀÌ´Ù.(fork ½Ã½ºÅÛÄÝÀ» »ç¿ëÇÑ´Ù); getty ¿Í login Àº ±× ÇÁ·Î¼¼½º¿¡¼­ ¼öÇàµÇ°í ÀÖ´Â ÇÁ·Î±×·¥À» ´ëüÇÑ´Ù. ( exec ½Ã½ºÅÛÄÝÀ» »ç¿ëÇÑ´Ù.)

    ÀÌ °úÁ¤À» ÃßÀûÇØ º¸¾Æµµ ¿ì¸®´Â ¸¶Áö¸· ºÎºÐ Áï ¡®exec(¡°/bin/sh¡±) ±îÁö ¸ðµç°Ô Á¤»óÀÎ °ÍÀ¸·Î º¸ÀδÙ. À߸øµÈ ºÎºÐÀº ¿¬°áÀ» ÇØÁÖ´Â ºÎºÐÀ̳ª ºÎ¼ö ºÎ¹®ÀÌ´Ù. ¹®Á¦´Â ÀÌÁ¦ ½Ã½ºÅÛÄÝ·Î ±ÍÂøµÈ´Ù. ±×·±µ¥ ÀÌ ºÎºÐÀº ¾î¶»°Ô Á¢±ÙÇØ¾ß ÇÏ´ÂÁö ³ª´Â ¾Ë ¼ö°¡ ¾ø´Ù.

    ±×·¯³ª ÀÌ¹Ì ³»°¡ ÇÊ¿ä·Î ÇÏ´Â ¸ðµç Á¤º¸´Â °Å±â¿¡ ÀÖ¾ú´Ù. ´ÜÁö ³ª´Â ±×°ÍÀ» ¾î¶»°Ô Àû¿ëÇÏ´ÂÁö¸¦ ¸ô¶ú´Ù. ³ªÁß¿¡ ÀÌ°ÍÀº ¸í¹éÇØ Áú °ÍÀÌ´Ù.

    ´ÙÀ½ 10ÀÏ µ¿¾È ·Î±×ÀÎ ÇÒ ¶§¸¶´Ù ³ª´Â ¸î °¡Áö »õ·Î¿î °ÍÀ» ½ÃµµÇØ º¸¾Ò´Ù. ¾î¶² °ÍÀº ÀüÇô »ó°üÀÌ ¾ø¾î Àû¿ëµÇÁö ¾Ê´Â °Í °°¾Ò´Ù. ¾î¶² ±×·² µíÇÑ »ý°¢µµ ±× ¸ÁÇÒ ¸Þ½ÃÁö°¡ ´Ù½Ã ³ª¿Ã ¶§´Â ½Ç¸Á»ÓÀ̾ú´Ù. ¾Æ¹« °Íµµ ¼Ò¿ëÀÌ ¾ø¾ú´Ù.

    ³ª´Â gettyµµ ¹Ù²Ù¾î º¸¾Ò°í /bin/bash ¿Ü¿¡ ´Ù¸¥ ¿©·¯ ½©µµ ½ÃÇèÇß´Ù. ¡®ben¡¯À¸·Î suµµ ½ÃµµÇß´Ù. ±×¸®°í ·Î±×¸¦ Á¶»çÇß´Ù. (±×·±µ¥ benÀÌ ¼º°øÀûÀ¸·Î ·Î±×ÀÎÇÑ °ÍÀ¸·Î ±â·ÏµÈ´Ù. ±×·¯¸é loginÀº ¹®Á¦°¡ ¾ø´Ù. ½ÇÆд loginÀÌ ÇÁ·Î¼¼½º¸¦ bash·Î ³Ñ±æ ¶§ ¹ß»ýÇÏ´Â °ÍÀÌ´Ù. - ÀÌ°ÍÀ» ±ú´Þ¾Ò´Ù.)

    ÀÎÅͳݿ¡¼­ ÀÌ ºÎºÐ¿¡ ´ëÇÑ ¸î °¡Áö Âü°í¹®À» ã¾Æ³Â´Ù. - °ÅÀÇ ¸ðµÎ ÀϾî, ½º¿þµ§¾î, µ¶ÀÏ¾î ¿´´Ù - ³ª´Â µÚÀÇ µÑÀº ÃßÃøÀ¸·Î ¸ÂÃß¾ú´Âµ¥ ±× Áß Çϳª´Â ¡®/¡¯¿¡ ´ëÇÑ Çã°¡¸¦ üũÇÏ´Â °ÍÀ̾ú´Ù. ÁÁÀº »ý°¢À̳ª ³»°Õ ÇØ´çµÇÁö ¾Ê¾Ò´Ù. ³ª´Â ÀÌ ¹®Á¦¸¦ The Answer Guy ¿¡°Ô º¸³ÂÀ¸³ª ±×´Â À©µµ¿ì 2000 ¹®Á¦¿¡ ±íÀÌ ºüÁ® ÀÖ¾ú´Ù. ÀÌÁ¦´Â ³» ½º½º·Î ÇØ°áÇÏ´Â ±æ »ÓÀÌ´Ù.

    ¾Æ! - `strace¡¯! `strace¡¯¸¦ ±â¾ïÇß´Ù. `strace¡¯´Â ÇÁ·Î±×·¥ ½ÇÇà °úÁ¤À» ÃßÀûÇؼ­ ´Ü°è º°·Î ¾Ë·ÁÁִ ȯ»óÀûÀÎ ÇÁ·Î±×·¥ÀÌ´Ù. ¾îµð Çѹø ½ÃÇèÇØ º¸ÀÚ.

    ÇÁ·Î±×·¥À» ½ÇÇàÇÏ·Á¸é ·Î±×ÀÎÇØ¾ß ÇϹǷΠ³ª´Â ÇöÀçÀÇ Å͹̳ο¡¼­ ¾Æ·¡Ã³·³ ½ÇÇàÇß´Ù.
     

    strace -s 10000 -vfo login.ben login ben

 

    Àǹ̴ ¾Æ·¡¿Í °°´Ù.

    `login ben¡¯¿¡ ´ëÇØ strace¸¦ ½ÇÇàÇ϶ó. ; 10000 ij¸¯ÅͱîÁöÀÇ ¸ðµç ¶óÀÎÀ» Ãâ·ÂÇ϶ó(³ª´Â ¾î´À ¸Þ½ÃÁöµµ ³õÄ¡°í ½ÍÁö ¾Ê¾Ò´Ù. ¾Æ¹«¸® ±æÁö¶óµµ); Ãâ·ÂÀº ÃÖ´ëÇÑ ÀÚ¼¼È÷ Ç϶ó; ¾î¶°ÇÑ forked ÇÁ·Î¼¼½ºµµ ÃßÀûÇ϶ó; °á°ú¸¦ `login.ben¡¯¡± ÆÄÀÏ¿¡ ±â·ÏÇ϶ó.
     

    strace -s 10000 -vfo login.root login root

 

    -ÀÌÁ¦ ³ª´Â µÎ ÆÄÀÏÀ» ºñ±³ÇÒ ¼ö ÀÖ´Ù. ¡®root¡¯ÀÇ Ãâ·ÂÀº ¡®ben¡¯º¸´Ù µÎ ¹è´Â ±æ¾ú´Ù. -
    ±×·¡¾ß ¸Â´Ù. ¿Ö³ÄÇÏ¸é ¼º°øÀûÀÎ ·Î±×ÀÎÀº ¡°~/.bash*¡± ÆÄÀÏ ³»ÀÇ ¸ðµç »çÇ×À» ½ÇÇàÇϴϱî.

    `strace login¡¯Àº ¸Å¿ì ÁÁÀº Á¤º¸¸¦ ¾Ë·ÁÁØ´Ù. ³»°¡ ¸¸¾à System Administrator¡¯s Guide ¸¦ ÀÐÁö ¾Ê¾Ò´Ù¸é ÀÌ ÇÁ·Î±×·¥ÀÌ Á¤È®ÇÑ Á¤º¸¸¦ ¾Ë·Á ÁÖ¾úÀ» °ÍÀÌ´Ù.
    - ÈξÀ ´õ »ó¼¼È÷. ÀÌ´Â `login¡¯ÀÌ ÀÐ¾î µéÀÎ ¸ðµç ¶óÀ̺귯¸®¸¦ º¸¿©ÁÖ°í Âü°í ÇÑ ¸ðµç ÆÄÀÏ
       µéµµ ±×¸®°í `group¡¯°ú `password¡¯ºñ±³ °úÁ¤±îÁö .. ´ÜÁö ½ÇÆÐ ¿øÀθ¸ º¸¿© ÁÖÁö ¾Ê¾Ò´Ù.
     

    (300+ lines elided)
    execve(¡°/bin/bash¡±, [¡°-bash¡±], [¡°TERM=linux¡±, ¡°HZ=100¡±, ¡°HOME=/home/ben¡±,
         ¡°SHELL=/bin/bash¡±, ¡°PATH=/bin:/usr/bin¡±, ¡°USER=ben¡±, ¡°LOGNAME=ben¡±,
         ¡°MAIL=/var/spool/mail/ben¡±, ¡°LANG=C¡±, ¡°HUSHLOGIN=FALSE¡±])=-1 EACCES
         (Permission denied)            
    write(2, ¡°Cannot execute /bin/bash: Permission denied¡¬n¡±, 44) = 44

 

    ¾î·µç ´ë´ÜÇÏ´Ù. `login¡¯ÀÌ Çã°ø¿¡ µÎ ´Ù¸®¸¦ »¸°í ´¯±â Àü¿¡ ½ÃµµÇÑ ¸¶Áö¸· °úÁ¤Àº /etc/password, /etc/login.defs µî¿¡¼­ °¡Á®¿Â º¯¼ö·Î¼­ bash¸¦ `execve¡¯ÇÏ´Â °ÍÀ̾ú´Ù.

    ±× ¸ðµÎ´Â ÀÌ»óÀÌ ¾ø´Ù. - °á±¹Àº ¡°stderr¡± (Ãâ·Â ÀåÄ¡ 2)¿¡ 44°³ÀÇ ±× º¸±â ½ÈÀº ±ÛÀÚ¸¦ ³²±â´Â °ÍÀÌ´Ù.
    ±×·¯³ª ³ª´Â ¡®login¡¯ÀÌ  Name Service Switch ±¸¼º ÆÄÀÏ (/etc/nsswitch.conf)¿¡¼­ ÇÊ¿äÇÑ ¸î °³ÀÇ ¶óÀ̺귯¸®¸¦ /lib¿¡¼­ ºÒ·¯ ¿À´Â °ÍÀ» ¾Ë¾Ò´Ù. ±× Áß¿¡ ¾î´À Çϳª°¡ ±úÁ³À» ¼öµµ ÀÖÁö ¾ÊÀ»±î? ½Ã½ºÅÛÄÝ Ã߷аú ºñ±³ÇÒ ¶§ ¸Â´Â °Í °°´Ù. ¿Ö³ÄÇÏ¸é ¶óÀ̺귯¸®¿¡¼­ ½Ã½ºÅÛÄÝÀÌ ³ª¿À´Ï±î. NSS (see `man nsswitch¡¯)¿¡ ´ëÇÑ ·ÎÄ® ·Î±×ÀÎÀ» ´Ù·ç´Â ¶óÀ̺귯¸®¸¦ º¸ÀÚ.
     

    dpkg -S libnss_compat-2.0.7.so


    Àü´ÉÇϽŠµ¥ºñ¾È ÆÐÅ°Áö °ü¸®ÀÚ´ÔÀ̽ÿ© À§ ÇÁ·Î±×·¥ÀÌ ¾îµð¼­ ¿À½Ã³ªÀ̱î?
    (¡°Tell me, O Mighty Debian Package Manager, whence cometh said program?¡±),

    ±×·¯ÀÚ µ¥ºñ¾È ½Å²²¼­´Â Çö¸íÇÏ°Ôµµ ¾Æ·¡Ã³·³ ´äÇϼ̴Ù.
    (and the Debian Oracle, in his wisdom, replied - )
     

    libc6: /lib/libnss_compat-2.0.7.so


    Èì, ¹Ù·Î ¸®´ª½º ÇÙ½É ¶óÀ̺귯¸®À̱º.. ¸ðµç /lib/libnss* ÆÄÀÏÀ» ´ëÄ¡ÇØ º»´Ù. º° ¹«¼ÒµæÀÌ´Ù. ´Ù¸¥ ¹æµµ¸¦ º¸ÀÚ.
    ÀÌ °úÁ¤Àº ³»°Ô ¾î¶² ÈùÆ®¸¦ ÁÖ¾ú´Ù. ¾î¶² °ÍÀÌ ¡°rotten in the state of Denmark¡±(?) - ¾Æ¹«·¡µµ /libÀÇ ÆÄÀϵéÀÇ Çã°¡¸ðµå¸¦ °Ë»çÇؾ߰ڴÙ.
    ¹®Á¦´Â ³»°¡ ±×µéÀÌ ¾î¶»°Ô ¼³Á¤µÇ¾î ÀÖ¾î¾ß ÇÏ´ÂÁö¸¦ ¸ð¸¥´Ù´Â °ÍÀ̾ú´Ù. ¿©·¯ºÐµµ ¾Ë´Ù½ÃÇÇ libsÀÇ ´ëºÎºÐÀÇ ÆÄÀÏÀº ¡°root.root 644¡± ·Î ¼³Á¤µÇ¾î ÀÖ´Ù.(owner root, group root, user - read/write, group - read-only, others - read-only)±×·¯³ª ¸î °³´Â ¡°root.root 755¡±¿©¾ßÇÑ´Ù. Áï °ü·ÃµÈ ¸ðµÎ¿¡°Ô ½ÇÇà¸ðµå°¡ ºÎ¿© µÇ¾ß ÇÑ´Ù. ¹Ù·Î ¼³Ä¡ÇÑ ¸®´ª½º¸¦ º¸Áö ¾Ê°í´Â ¾î´À °ÍÀÌ ¸Â´ÂÁö ¾Ë ¼ö ¾ø´Ù.

    Àá±ñ¸¸! ³»°¡ LG¿¡ º¸³Â´ø 2¼¾Æ® ÆÁ¿¡¼­ ¾ð±ÞÇßµíÀÌ µ¥ºñ¾È º£À̽º ¼³Ä¡ ÆÄÀÏ( 7 ÆÄÀÏ, ¾à 15¸Þ°¡)À» ºñ»ó½Ã ¿ëÀ¸·Î µµ½º ÆÄƼ¼Ç¿¡ ³Ö¾î ³õ¾Ò´Ù. - ÀÌ°ÍÀÌ ³»°¡ ÇÊ¿ä·Î ÇÏ´Â °ÍÀ» °®°í ÀÖ°ÚÁö!

    °Å±â¿¡ ÀÖ¾ú´Ù. Midnight Commander´Â ¡°Virtual File System¡±À» »ç¿ëÇؼ­ ¾ÐÃàÆÄÀÏÀÌ µð·ºÅ丮ÀΰÍó·³ Ž»öÇÏ´Â °ÍÀ» Çã¿ëÇÑ´Ù. ¡°base2_1.tgz#utar/lib¡± (the VFS syntax used by MC)¸¦ º¸¾ÒÀ» ¶§ ¸Ç ¾ÕÀÇ ¶óÀ̺귯¸® Áß ÇϳªÀÎ - ld-2.0.7.so - °¡ 755 ¿´´Ù. ÀÌÁ¦ ¡®ben¡¯Àº »õ Å͹̳ÎÀÇ ÁÖÀÎÀÌ µÇ¾ú´Ù.

    ³ª´Â ´Ù¸¥ ¶óÀ̺귯¸®µéµµ ¸ðµÎ °Ë»çÇßÀ¸³ª `ld-2.0.7.so¡¯ °¡ Çã°¡ ¸ðµå°¡ º¯°æµÈ À¯ÀÏÇÑ ÆÄÀÏÀ̾ú´Ù. ³²Àº À¯ÀÏÇÑ Àǹ®Àº ¿Ö Çã°¡¸ðµå°¡ º¯°æ µÇ¾ú´À³Ä ÀÌ´Ù.  ÇÏÁö¸¸ ÀÌ´Â ¿µ¿øÈ÷ Ç®¸®Áö ¾ÊÀ» °Í °°´Ù.

    Ç×»ó ±×·¸µíÀÌ ¸®´ª½º°¡ °¡¸£Ä¡´Â ±³ÈÆÀº ¾î·Æ´Ù. ±×·¯³ª °øÆòÇÏ´Ù. ¹®Á¦¸¦ ÇØ°áÇÏ´Â ±æÀº Ç×»ó ÀÖ´Ù. ½Ã½ºÅÛÀ» À缳ġÇÏ´Â °ÍÀº Á¾Á¾ °¡Àå ½¬¿î ¹æ¹ýÀÌ´Ù. ±×·¯³ª ÀÌ°ÍÀº OSÀÇ ³»ºÎ¿¡ °üÇÑ ºÎºÐÀ» ´ç½Å¿¡°Ô ¾Ë·ÁÁÖÁö ¾Ê´Â´Ù. ±×¸®°í ¹®Á¦¸¦ ÃßÀûÇØ ³»´Â °Íµµ ¾Ë·ÁÁÖÁö ¾Ê´Â´Ù. ³» °æ¿ìµµ À缳ġ´Â ½¬¿ü´Ù. µ¥ÀÌÅ͸¦ ¹é¾÷ÇÏ°í µ¥ºñ¾È ±âº»À» ±î´Âµ¥ 10ºÐÀ̸é Á·ÇÏ´Ù. ³ª´Â ±× ¹æ¹ýÀº Èï¹Ì°¡ ¾ø¾ú´Ù. ³» ¸¶À½ ¼Ó¿¡ ÀÖ´Â »ý°¢Àº ¸¸¾à ÀÌ°ÍÀÌ °í°´ÀÇ »çÀÌÆ®¿¡¼­ ¹ß»ýÇß´Ù¸é ¾î¶»°Ô ÇÒ °ÍÀΰ¡ ÀÌ´Ù. ¿Ã¹Ù¸¥ ÇØ°áÃ¥À» ¾Ë¾Æ¾ß Çß´Ù.

    ²ö±â¿Í Áý³äÀ¸·Î ³ª´Â Çس´Ù. ³ª´Â ´ÜÁö ¿¬½ÀÀ¸·Î ÀÌ·± ¾î·Á¿î ¹®Á¦¸¦ °¡Áö°í ÀÏÁÖÀÏ¿¡ Çѹø¾¿ ¸Ó¸®¸¦ Áã¾î Â¥¶ó°í ÇÏÁö´Â ¾Ê´Â´Ù.

    ±×·¯³ª ³ª´Â ¿©·¯ºÐÀÌ HOWTO ³ª ´Ù¸¥ ¹®¼­¿¡¼­ ¾òÀº Áö½ÄÀ¸·Î ü°èÀûÀÎ Á¢±ÙÀ» ½ÃµµÇϱ⸦ ±ÇÇÑ´Ù.

    Happy Linuxing to all,
    Ben Okopnik

    Copyright (c) 2000, Ben Okopnik
    Published in Issue 52 of Linux Gazette, April 2000




¡ã top

homeÀ¸·Î...