ÀÌ ±â»ç¸¦ ¾²±â ¾ó¸¶ Àü¿¡ Áö³ ¸î ÁÖ µ¿¾È ³ª¸¦
±«·ÓÇû´ø ¹®Á¦¸¦ ÇØ°áÇß´Ù. ÀÌ ¹®Á¦´Â ¸®´ª½º °¡Á¦Æ®¿¡ Á¾Á¾ ¾ð±ÞµÇ¾ú´ø
¹®Á¦¿´À¸¹Ç·Î ³ª´Â ´Ù¸¥ µ¶ÀÚµé°ú ÀÌ ¹®Á¦¸¦ °øÀ¯ÇÏ°í ½Í¾ú´Ù.
ÀÌ ±ÛÀº ¶ÇÇÑ ÀϹÝÀûÀÎ ¼ÒÇÁÆ®¿þ¾î ¹®Á¦ ÇØ°á¿¡¼
ÁÁÀº ¾È³»ÀÚ°¡ µÉ ¼ö ÀÖ´Ù. ±×·¯³ª 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
|