9.4. ½© ½ºÅ©¸³ÆÃ ¾ð¾î (sh and csh Deritivatives)

ÀúÀÚ´Â setuid/setgid º¸¾ÈÀûÀÎ Äڵ忡 ´ëÇØ csh, sh ¿Í bash ¿Í °°Àº Ç¥ÁØ Ä¿¸Çµå ½© ½ºÅ©¸³ÆÃ ¾ð¾î¸¦ »ç¿ëÇÏÁö ¸»¶ó°í ÃßõÇÑ´Ù. ¸®´ª½º¿Í °°Àº ¾î¶² ½Ã½ºÅÛµéÀº À̵éÀ» ¿ÏÀüÈ÷ ±ÝÁöÇϱ⠶§¹®¿¡ ºÒÇÊ¿äÇÏ°Ô À̽ļº ¹®Á¦¸¦ ¸¸µé ¼ö ÀÖ´Ù. ¾î¶² ¿À·¡µÈ ½Ã½ºÅÛ¿¡¼­ À̵éÀº 3.1.3절 ¿¡¼­ ³íÀÇµÈ ¹Ù¿Í °°ÀÌ °æÀï »óŶ§¹®¿¡ ±âº»ÀûÀ¸·Î ºñº¸¾ÈÀûÀÌ¸ç ´Ù¸¥ ½Ã½ºÅÛ¿¡ ´ëÇØ¼­µµ À̵éÀº ½ÇÁ¦·Î ÁÁÀº °³³äÀÌ ¾Æ´Ï´Ù. Ç¥ÁØ Ä¿¸Çµå ½©Àº ¾ÆÁ÷µµ ¸í¹éÇÏÁö ¾ÊÀº ÀԷ¿¡ ÀÇÇØ ¿µÇâÀ» ¹Þ´Â °ÍÀ¸·Î À¯¸íÇѵ¥ ÀÌ´Â ÀϹÝÀûÀ¸·Î Ä¿¸Çµå ½©ÀÌ °ú°¨ÇÑ °ø°ÝÀÚ¿¡ ´ëÇØ º¸È£ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ´ëÈ­½Ä »ç¿ëÀÚµéÀ» À§ÇØ ÀÚµ¿ÀûÀ¸·Î ÀÛ¾÷À» ÇÏ·Á°í ¼³°èµÇ¾î Àֱ⠶§¹®ÀÌ´Ù. ¿¹¸¦ µé¾î ¼û°ÜÁø ȯ°æ º¯¼ö (¿¹, ENV ¶Ç´Â BASH_ENV º¯¼ö) ´Â ½ºÅ©¸³Æ®°¡ ½ÇÇàµÉ ¼ö ÀÖ±â ÀüÀÌ¶óµµ ¾î¶»°Ô ÀÓÀÇÀÇ »ç¿ëÀÚ Á¤ÀÇ Äڵ带 ¿¬»ê ¶Ç´Â ´õ ³ª¾Æ°¡¼­´Â ½ÇÇà½ÃŰ´ÂÁö¿¡ ¿µÇâÀ» ¹ÌÄ¥ ¼ö ÀÖ´Ù. ½ÇÇà°¡´É ÆÄÀÏÀÇ À̸§ ¶Ç´Â µð·ºÅ丮 ³»¿ë °°Àº °Íµéµµ ¿µÇâÀ» ³¢Ä¥ ¼ö Àִµ¥ ¿¹¸¦ µé¾î ¸¹Àº Bourne ½© ½ÇÇà¿¡¼­ ´ÙÀ½Àº ·çÆ® ±ÇÇÑÀ» ÁÙ ¼ö ÀÖ´Ù (ÀÌ ¾Ç¿ë ¼³¸í¿¡ ´ëÇØ NCSA ¿¡ °¨»çÇÑ´Ù).
 % ln -s /usr/bin/setuid-shell /tmp/-x
 % cd /tmp
 % -x
¾î¶² ½Ã½ºÅÛÀº ÀÌ º¸¾È ±¸¸ÛÀ» ¸·À» ¼ö ÀÖÁö¸¸ ¹®Á¦´Â ¾ÆÁ÷ ³²¾ÆÀִµ¥ ´ëºÎºÐÀÇ Ä¿¸Çµå ½©ÀÌ º¸¾ÈÀûÀÎ setuid/setgid ÇÁ·Î±×·¥À» ÀÛ¼ºÇϵµ·Ï ÀǵµµÇÁö ¾Ê¾Ò´Ù´Â °ÍÀÌ´Ù. ÇÁ·Î±×·¡¹Ö ¸ñÀûÀ¸·Î setuid ½© ½ºÅ©¸³Æ®¸¦ Çã¿ëÇÏ´Â ½Ã½ºÅÛÀ̶ó°í ÇÏ´õ¶óµµ À̵éÀÇ »ý¼ºÀ» ÇÇÇØ¶ó. ´ë½Å ȯ°æÀ» ±ú²ýÀÌ Çϱâ À§ÇØ ´Ù¸¥ ¾ð¾î·Î ÀÛÀº ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ ÈÄ ÀÌ ÇÁ·Î±×·¥ÀÌ ´Ù¸¥ ½ÇÇà°¡´ÉÇÑ ÆÄÀÏÀ» È£ÃâÇϵµ·Ï ÇØ¶ó (À̵é ÁßÀÇ ÀϺδ ½© ½ºÅ©¸³Æ®ÀÏ ¼öµµ ÀÖ´Ù).

¾ÆÁ÷µµ ½© ½ºÅ©¸³ÆÃ ¾ð¾îÀÇ »ç¿ëÀ» ÁÖÀåÇÑ´Ù¸é Àû¾îµµ ½ºÅ©¸³Æ®¸¦ À̵¿ ¶Ç´Â º¯°æµÉ ¼ö ¾ø´Â µð·ºÅ丮³»¿¡ µÎ¾î¶ó. ½ºÅ©¸³Æ®ÀÇ ¸Ç ¾Õ¿¡ PATH ¿Í IFS ¸¦ ¾Ë·ÁÁø °ªµé·Î ¼³Á¤Çضó.