3.17. Á¦ÇÑµÈ ½©(Restricted Shells)

½ºÅ©¸³Æ®³ª ½ºÅ©¸³Æ®ÀÇ ÀϺκÐÀ» Á¦ÇÑµÈ ¸ðµå·Î µ¿ÀÛ½ÃŰ´Â °ÍÀº ´Ù¸¥ »óȲ¿¡¼­´Â °¡´ÉÇÑ Æ¯Á¤ÇÑ ¸í·É¾î¸¦ ¾²Áö ¸øÇÏ°Ô ÇÕ´Ï´Ù. ½ºÅ©¸³Æ®ÀÇ ±ÇÇÑÀ» Á¦ÇѽÃ۰í, ½ÇÇàÁßÀÎ ½ºÅ©¸³Æ®°¡ ³¢Ä¥ ¼ö ÀÖ´Â °¡´ÉÇÑ ÇÇÇØ¸¦ ÃÖ¼ÒÈ­ Çϱâ À§ÇÏ´Â º¸¾È»óÀÇ ÀÌÀ¯·Î ÀÌ ¸ðµå°¡ Àû¿ëµË´Ï´Ù.

Á¦ÇÑµÈ ½©¿¡¼­ ¸ø ¾²´Â ¸í·É¾îµé

예 3-79. Á¦ÇÑµÈ ¸ðµå·Î ½ºÅ©¸³Æ® µ¹¸®±â

#!/bin/bash
# ½ºÅ©¸³Æ® ½ÃÀÛ ºÎºÐÀ» "#!/bin/bash -r"·Î ¹Ù²ã¼­ µ¹¸®°Ô µÇ¸é Á¦ÇÑµÈ ¸ðµå·Î µ¿ÀÛÇÕ´Ï´Ù.

echo

echo "µð·ºÅ丮¸¦ ¹Ù²Ù°Ú½À´Ï´Ù."
cd /usr/local
echo "ÀÌÁ¦ `pwd` ¿¡ ÀÖ½À´Ï´Ù."
echo "Áý(home)À¸·Î µ¹¾Æ°©´Ï´Ù."
cd
echo "ÀÌÁ¦ `pwd` ¿¡ ÀÖ½À´Ï´Ù."
echo

# ¿©±â±îÁö ¸ðµç °ÍÀº Ưº°ÇÑ °Ô ¾ø´Â Á¦ÇѵÇÁö ¾ÊÀº ¸ðµå¿´½À´Ï´Ù.

set -r
# set --restricted    µµ °°Àº È¿°ú¸¦ °¡Á®¿É´Ï´Ù.
echo "==> ÀÌÁ¦ Á¦ÇÑµÈ ¸ðµå·Î µ¿ÀÛÇÕ´Ï´Ù. <=="

echo
echo

echo "Á¦ÇÑµÈ ¸ðµå¿¡¼­ µð·ºÅ丮¸¦ ¹Ù²Ù·Á°í ÇÕ´Ï´Ù."
cd ..
echo "¾ÆÁ÷µµ `pwd` ¿¡ ÀÖ½À´Ï´Ù."

echo
echo

echo "\$SHELL = $SHELL"
echo "Á¦ÇÑµÇ ¸ðµå¿¡¼­ ½©À» ¹Ù²Ù·Á°í ÇÕ´Ï´Ù."
SHELL="/bin/ash"
echo
echo "\$SHELL= $SHELL"

echo
echo

echo "Á¦ÇÑµÈ ¸ðµå¿¡¼­ Ãâ·ÂÀ» ÀçÁöÇâ ½ÃŰ·Á°í ÇÕ´Ï´Ù."
ls -l /usr/bin > bin.files
# Ãâ·Â ÀçÁöÇâÀ¸·Î ¸¸µå·Á°í Çß´ø ÆÄÀÏÀ» º¸·Á°í ÇÕ´Ï´Ù.
ls -l bin.files

echo

exit 0