½Ã½ºÅÛ°ú °ü¸®ÀÚ¿ë ¸í·É¾îÀÇ ÁÁÀº ¿¹´Â /etc/rc.d ¿¡ ÀÖ´Â ½ÃÀÛ, Á¾·á ½ºÅ©¸³Æ®µéÀÔ´Ï´Ù. ÀÌ ¸í·É¾îµéÀº º¸Åë ½Ã½ºÅÛ °ü¸®³ª ÆÄÀϽýºÅÛÀ» ±ä±ÞÇÏ°Ô °íÄ¡·Á°í ÇÒ ¶§ ·çÆ®°¡ »ç¿ëÇÕ´Ï´Ù. ÀÌµé ¸î¸îÀº À߸ø ¾²¸é ½Ã½ºÅÛÀ» ¸Á°¡Æ®¸± ¼ö Àֱ⠶§¹®¿¡ »ç¿ë¿¡ ÁÖÀǸ¦ ¿äÇÕ´Ï´Ù.
chown ¸í·É¾î´Â ÆÄÀÏÀÇ ¼ÒÀ¯±ÇÀ» ¹Ù²ãÁÝ´Ï´Ù. root°¡ ƯÁ¤ »ç¿ëÀÚ°¡ ¼ÒÀ¯ÇÑ ÆÄÀÏÀ» ´Ù¸¥ »ç¿ëÀÚ¿ëÀ¸·Î ¹Ù²Ù·Á°í ÇÒ ¶§ À¯¿ëÇÏ°Ô ¾²ÀÔ´Ï´Ù. ÇÏÁö¸¸, ÀÏ¹Ý »ç¿ëÀÚ´Â ÀÚ½ÅÀÌ ¼ÒÀ¯ÇÑ ÆÄÀÏÁ¶Â÷µµ ¼ÒÀ¯±ÇÀ» ¹Ù²Ü ¼ö ¾ø½À´Ï´Ù. [1]
root# chown bozo *.txt |
chgrp ¸í·É¾î´Â ÆÄÀÏÀÇ ±×·ì ¼ÒÀ¯±ÇÀ» ¹Ù²ãÁÝ´Ï´Ù. ÀÌ ¸í·É¾î¸¦ ¾²·Á¸é ±× ÆÄÀÏÀÇ ¼ÒÀ¯ÀÚÀÌ°í ¹Ù²Ù·Á´Â ±×·ìÀÇ ¸â¹ö¿©¾ß ÇÕ´Ï´Ù(ȤÀº rootÀ̰ųª).
chgrp --recursive dunderheads *.data # $PWD µð·ºÅ丮ÀÇ ¸ðµç ÇÏÀ§ µð·ºÅ丮("recursive"¿¡ ÀÇÇØ)ÀÇ # ¸ðµç "*.data" ÆÄÀϵéÀº "dunderheads" ±×·ìÀÌ ±× ¼ÒÀ¯±ÇÀ» °®½À´Ï´Ù. |
°ü¸®ÀÚ¿ë ¸í·É¾îÀÎ useradd´Â ½Ã½ºÅÛ¿¡ »ç¿ëÀÚ °èÁ¤À» Ãß°¡ÇØ ÁÖ°í ±× »ç¿ëÀÚ¿ëÀ¸·Î ÁöÁ¤µÈ Ȩ µð·ºÅ丮¸¦ ¸¸µé¾î ÁÝ´Ï´Ù. useradd¿Í ½ÖÀ» ÀÌ·ç´Â userdel´Â ½Ã½ºÅÛ¿¡¼ »ç¿ëÀÚ °èÁ¤À» »èÁ¦ÇØ ÁÖ°í [2] ÇØ´ç ÆÄÀϵ鵵 »èÁ¦ÇØ ÁÝ´Ï´Ù.
Âü°í: adduser ¸í·É¾î´Â useraddÀÇ µ¿ÀǾî·Î¼, º¸Åë useradd¸¦ °¡¸£Å°´Â ½Éº¼¸¯ ¸µÅ© ÆÄÀÏÀÔ´Ï´Ù.
id ¸í·É¾î´Â ÇöÀç »ç¿ëÀÚÀÇ ½ÇÁ¦ ID¿Í À¯È¿ »ç¿ëÀÚ ID, ±×·ì ID¸¦ º¸¿©ÁÝ´Ï´Ù. ³»ºÎ bash º¯¼öÀÎ $UID, $EUID, $GROUPS¿Í ¦À» ÀÌ·ì´Ï´Ù.
bash$ id uid=501(bozo) gid=501(bozo) groups=501(bozo),22(cdrom),80(cdwriter),81(audio) bash$ echo $UID 501 |
¿¹ 9-4 Âü°í.
½Ã½ºÅÛ¿¡ ÇöÀç ·Î±×ÀÎÇØ ÀÖ´Â ¸ðµç »ç¿ëÀÚ¸¦ º¸¿©ÁÝ´Ï´Ù.
bash$ who bozo tty1 Apr 27 17:45 bozo pts/0 Apr 27 17:46 bozo pts/1 Apr 27 17:47 bozo pts/2 Apr 27 17:49 |
-mÀ» ÁÖ¸é ¿ÀÁ÷ ÇöÀç »ç¿ëÀÚ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸¸¸À» º¸¿©ÁÝ´Ï´Ù. who am i³ª who The Manó·³ who¿¡ ¾Æ¹« ÀÎÀÚ³ª µÎ °³ ³Ñ°ÜÁÖ¸é who -m À̶ó°í ÇÑ °Í°ú °°½À´Ï´Ù.
bash$ who -m localhost.localdomain!bozo pts/2 Apr 27 17:49 |
whoami´Â who -m °ú ºñ½ÁÇÏÁö¸¸ »ç¿ëÀÚ À̸§¸¸ º¸¿©ÁÝ´Ï´Ù.
bash$ whoami bozo |
·Î±×ÀÎ µÇ¾î ÀÖ´Â »ç¿ëÀÚ¿Í ±× »ç¿ëÀÚ¿Í °ü·ÃµÈ ¸ðµç ÇÁ·Î¼¼½º¸¦ º¸¿© ÁÝ´Ï´Ù. ÀÌ´Â whoÀÇ È®Àå ¹öÀüÀε¥, wÀÇ Ãâ·Â¿¡ grepÀ¸·Î ÆÄÀÌÇÁ¸¦ °É¾î¼ ƯÁ¤ÇÑ »ç¿ëÀÚ³ª ÇÁ·Î¼¼½º¸¦ ãÀ» ¼ö ÀÖ½À´Ï´Ù.
bash$ w | grep startx bozo tty1 - 4:22pm 6:41 4.47s 0.45s startx |
ÇöÀç »ç¿ëÀÚÀÇ ·Î±×ÀÎ À̸§À» /var/run/utmp¿¡¼ ã¾Æ¼ º¸¿©ÁÝ´Ï´Ù. À§¿¡¼ ¼³¸íÇÑ whoami¿Í °ÅÀÇ µ¿ÀÏÇÑ ¸í·É¾îÀÔ´Ï´Ù.
bash$ logname bozo bash$ whoami bozo |
±×·¸Áö¸¸...
bash$ su Password: ...... bash# whoami root bash# logname bozo |
´Ù¸¥ »ç¿ëÀÚ(substitute user)·Î ÇÁ·Î±×·¥À̳ª ½ºÅ©¸³Æ®¸¦ ½ÇÇà ½Ãŵ´Ï´Ù. rjones¶õ »ç¿ëÀÚ·Î ½©À» »õ·Ó°Ô ½ÃÀÛÇÏ°í ½ÍÀ¸¸é su rjones¶ó°í ÇÏ¸é µË´Ï´Ù. ¿É¼Ç ¾øÀÌ su¸¸ ½ÇÇà½ÃŰ¸é ±âº»ÀûÀ¸·Î root ·Î ¹Þ¾ÆµéÀÔ´Ï´Ù. ¿¹ A-10¸¦ Âü°íÇϼ¼¿ä.
·Î±×ÀÎ Çϰí ÀÖ´Â ¸ðµç »ç¿ëÀÚ¸¦ º¸¿©ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â who -q ¿Í °ÅÀÇ ºñ½ÁÇÑ ¸í·É¾îÀÔ´Ï´Ù.
»ç¿ëÀÚ°¡ ·Î±×ÀÎ ÇØ ÀÖ´ø ½Ã°£À» /var/log/wtmp ¿¡¼ ÀÐ¾î¼ º¸¿©ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â GNU °èÁ¤ À¯Æ¿¸®Æ¼(accounting utility) Áß ÇϳªÀÔ´Ï´Ù.
bash$ ac total 68.08 |
»ç¿ëÀÚ°¡ ¸¶Áö¸·À¸·Î ·Î±×ÀÎ ÇÑ ½Ã°£À» /var/log/wtmp¿¡¼ ÀÐ¾î¼ º¸¿©ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â ¿ÜºÎ¿¡¼ ·Î±×ÀÎ ÇÑ Á¤º¸µµ º¸¿©ÁÙ ¼ö ÀÖ½À´Ï´Ù.
ÇöÀç »ç¿ëÀÚ°¡ ¼ÓÇØ ÀÖ´Â ±×·ìÀ» º¸¿©ÁÝ´Ï´Ù. ³»ºÎ º¯¼öÀÎ $GROUPS¿¡ ÇØ´çÇÏ´Â ¸í·É¾îÀÌÁö¸¸ ¼ýÀÚ°¡ ¾Æ´Ñ ±×·ì À̸§À¸·Î º¸¿©ÁÝ´Ï´Ù.
bash$ groups bozita cdrom cdwriter audio xgrp bash$ echo $GROUPS 501 |
·Î±×¾Æ¿ô ¾øÀÌ »ç¿ëÀÚÀÇ ±×·ì ID¸¦ º¯°æÇϱâ. ÀÌ ¸í·É¾î¸¦ ¾²¸é »õ ±×·ìÀÇ ÆÄÀÏ¿¡ Á¢±ÙÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. »ç¿ëÀÚ´Â º¸Åë µ¿½Ã¿¡ ¿©·¯ ±×·ìÀÇ ¸â¹öÀ̱⠶§¹®¿¡ ÀÌ ¸í·É¾î¸¦ ¾µ ÀÏÀº º°·Î ¾ø½À´Ï´Ù.
ÇöÀç »ç¿ëÀÚÀÇ Å͹̳ΠÀ̸§À» º¸¿©ÁÝ´Ï´Ù. ¼·Î ´Ù¸¥ ÇÑÅÒ, ¿¢½ºÅÒ À©µµ¿ì´Â ¼·Î ´Ù¸¥ Å͹̳ηΠÀνĵǴ°Ϳ¡ ÁÖÀÇÇϼ¼¿ä.
bash$ tty /dev/pts/1 |
Å͹̳Π¼¼ÆÃÀ» º¸¿©Áְųª º¯°æÇØ ÁÝ´Ï´Ù. ÀÌ º¹ÀâÇÑ ¸í·É¾î´Â ½ºÅ©¸³Æ®¿¡¼ ¾²¿© Å͹̳Πµ¿ÀÛÀ̳ª Ãâ·ÂÇÏ´Â ¹æ¹ýÀ» Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù. info ÆäÀÌÁö¸¦ Âü°íÇϰí, Á¶½ÉÇØ¼ °øºÎÇϼ¼¿ä.
¿¹ 13-1. Áö¿ò ±ÛÀÚ(erase character) ¼¼ÆÃÇϱâ
#!/bin/bash # erase.sh: "stty"·Î ÀԷ½ÃÀÇ Áö¿ò ±ÛÀÚ(erase character)¸¦ ¼¼Æ®Çϱâ. echo -n "À̸§ÀÌ ¹¹¿¡¿ä? " read name # ¾Æ¹« ±ÛÀÚ³ª Ä¡°í Áö¿ì·Á°í ÇØº¸¼¼¿ä. # ¾È µÉ °Ì´Ï´Ù. echo "À̸§ÀÌ $name ±º¿ä." stty erase '#' # "hashmark" (#) ¸¦ Áö¿ò ±ÛÀÚ·Î ¼¼Æ®. echo -n "À̸§ÀÌ ¹¹ÁÒ? " read name # ¸¶Áö¸·¿¡ Ä£ ±ÛÀÚ¸¦ # À¸·Î Áö¿öº¸¼¼¿ä. echo "$name °¡ ´ç½Å À̸§À̱º¿ä." exit 0 |
¿¹ 13-2. ºñ¹Ð½º·± ºñ¹Ð¹øÈ£: Å͹̳Π¿¡ÄÚ ²ô±â
#!/bin/bash echo echo -n "ºñ¹Ð¹øÈ£¸¦ ³ÖÀ¸¼¼¿ä " read passwd echo "ºñ¹Ð¹øÈ£´Â $passwd ÀÔ´Ï´Ù." echo -n "´©±º°¡°¡ ¾î±ú ³Ê¸Ó·Î ´ç½ÅÀ» º¸°í ÀÖ¾ú´Ù¸é, " echo "´ç½ÅÀÇ ºñ¹Ð¹øÈ£¸¦ ¾Ë¾Æ³ÂÀ» ¼öµµ ÀÖ½À´Ï´Ù." echo && echo # "and list"·Î ¹ÀÎ ¶óÀÎ ÇÇµå µÎ ÁÙ" stty -echo # È¸é ¿¡ÄÚ¸¦ ²ü´Ï´Ù. echo -n "ºñ¹Ð¹øÈ£¸¦ ´Ù½Ã ³ÖÀ¸¼¼¿ä " read passwd echo echo "ºñ¹Ð¹øÈ£´Â $passwd ÀÔ´Ï´Ù." echo stty echo # È¸é ¿¡ÄÚ¸¦ ŵ´Ï´Ù. exit 0 |
stty¸¦ âÁ¶ÀûÀ¸·Î ½á¼ »ç¿ëÀÚ°¡ ENTER¸¦ ¾È ´·¯µµ ¾î¶² ۸¦ ´·¶´ÂÁö¸¦ ¾Ë¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù.
¿¹ 13-3. Ű´©¸§ ¾Ë¾Æ³»±â
#!/bin/bash # keypress.sh: Ű´©¸§ ¾Ë¾Æ³»±â("hot keyboard"). echo old_tty_settings=$(stty -g) # ÇöÀç ¼¼ÆÃÀ» ÀúÀå. stty -icanon Keypress=$(head -c1) # GNU ½Ã½ºÅÛÀÌ ¾Æ´Ï¶ó¸é # $(dd bs=1 count=1 2> /dev/null) echo echo "\""$Keypress"\" ۰¡ ´·È½À´Ï´Ù." echo stty "$old_tty_settings" # ¿ø·¡ ¼¼ÆÃÀ¸·Î º¹±¸. # Thanks, Stephane Chazelas. exit 0 |
¿¹ 9-3 Âü°í.
Å͹̳Π¼¼ÆÃÀ» º¸¿©Áְųª ÃʱâÈ ÇÔ. sttyº¸´Ù ±â´ÉÀÌ ¶³¾îÁý´Ï´Ù.
bash$ tset -r Terminal type is xterm-xfree86. Kill is control-U (^U). Interrupt is control-C (^C). |
½Ã¸®¾ó Æ÷Æ® ¸Å°³º¯¼ö¸¦ ¼¼Æ®Çϰųª º¸¿©ÁÝ´Ï´Ù. ·çÆ®·Î ½ÇÇà½ÃÄÑ¾ß ÇÏ°í º¸ÅëÀº ½Ã½ºÅÛ ¼Â¾÷ ½ºÅ©¸³Æ®¿¡¼ ãÀ» ¼ö ÀÖ½À´Ï´Ù.
# /etc/pcmcia/serial ½ºÅ©¸³Æ®¿¡¼ ¹ßÃé: IRQ=`setserial /dev/$DEVICE | sed -e 's/.*IRQ: //'` setserial /dev/$DEVICE irq 0 ; setserial /dev/$DEVICE irq $IRQ |
Å͹̳οë ÃʱâÈ ÇÁ·Î¼¼½º°¡ getty³ª agetty¸¦ ½á¼ »ç¿ëÀÚÀÇ ·Î±×ÀÎÀ» ¼³Á¤ÇØ ÁÝ´Ï´Ù. ÀÌ ¸í·É¾îµéÀº »ç¿ëÀÚÀÇ ½© ½ºÅ©¸³Æ®¿¡¼ ¾²ÀÌÁö ¾Ê±â ¶§¹®¿¡ ½© ½ºÅ©¸³Æ®¿¡¼ ÀÌ·± ±â´ÉÀ» ¾²·Á¸é stty¸¦ ¾²±â ¹Ù¶ø´Ï´Ù.
ÇöÀç »ç¿ëÀÚÀÇ Å͹̳ο¡ ´ëÇÑ ¾²±â Á¢±ÙÀ» Á¦¾îÇÕ´Ï´Ù. Á¢±ÙÀ» ¸ø ÇÏ°Ô ¼³Á¤µÇ¸é ³×Æ®¿öÅ©¿¡ ÀÖ´Â ´Ù¸¥ »ç¿ëÀÚ°¡ ÇöÀç Å͹̳ηΠwrite¸¦ ÇÏÁö ¸øÇÏ°Ô ÇØ ÁÝ´Ï´Ù.
ÀÛÀº Á¤º¸: ¿©·¯ºÐÀÌ ÅØ½ºÆ® ÆÄÀÏÀ» ÆíÁýÇϰí Àִµ¥ °©ÀÚ±â ÇÇÀÚ ÁÖ¹® ¸Þ¼¼Áö°¡ ¶ß¸é ¾ÆÁÖ Â¥Áõ³¯ °ÍÀÔ´Ï´Ù. ´ÙÁß »ç¿ëÀÚ ³×Æ®¿öÅ©¿¡¼´Â, ¹æÇعޱ⠽ÈÀ» ¶§ ¿©·¯ºÐÀÇ Å͹̳ο¡ ´ëÇÑ ¾²±â Á¢±ÙÀ» ¸·°í ½ÍÀº °æ¿ì°¡ »ý±æ°Ì´Ï´Ù.
"write all"ÀÇ ¾Õ±ÛÀÚ¸¦ µû¼ wallÀÌ µÈ ÀÌ ¸í·É¾î´Â ÇöÀç ·Î±×ÀÎ µÇ¾î ÀÖ´Â ¸ðµç »ç¿ëÀÚ¿¡°Ô ¸Þ¼¼Áö¸¦ ³¯¸³´Ï´Ù. ¿ø·¡´Â À¯¿ëÇÑ ½Ã½ºÅÛ °ü¸®ÀÚ¿ë µµ±¸ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ½Ã½ºÅÛ¿¡ ¹®Á¦°¡ »ý°Ü¼ Àá±ñ µ¿¾È ´Ù¿î ½ÃÄÑ¾ß ÇÒ Çʿ䰡 »ý°åÀ» ¶§ ¸ðµç »ç¿ëÀڵ鿡°Ô °æ°í¸¦ ÇÒ ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù(¿¹ 17-2 Âü°í).
bash$ wall System going down for maintenance in 5 minutes! Broadcast message from bozo (pts/1) Sun Jul 8 13:53:27 2001... System going down for maintenance in 5 minutes! |
Âü°í: mesg·Î ¾²±â°¡ ¸·ÇôÀÖ´Â Å͹̳ÎÀº wall ¸Þ¼¼Áö¸¦ ¹ÞÀ» ¼ö ¾ø½À´Ï´Ù.
½Ã½ºÅÛ ºÎÆÃ ¸Þ¼¼Áö¸¦ Ç¥ÁØÃâ·ÂÀ¸·Î º¸¿© ÁÝ´Ï´Ù. µð¹ö±ë ÇÒ ¶§, ¾î¶² µð¹ÙÀ̽º µå¶óÀ̹ö°¡ ¼³Ä¡µÆ´ÂÁö È®ÀÎÇÒ ¶§, »ç¿ëÁßÀÎ ½Ã½ºÅÛ ÀÎÅÍ·´Æ®°¡ ¹«¾ùÀÎÁö È®ÀÎÇÒ ¶§ ÆíÇÏ°Ô ¾µ ¼ö ÀÖ½À´Ï´Ù. ½ºÅ©¸³Æ®¿¡¼ dmesgÀÇ Ãâ·ÂÀ» grepÀ̳ª sed, awk·Î ÆÄ½ÌÇØ¼ ¾µ ¼ö ÀÖ½À´Ï´Ù.
½Ã½ºÅÛ »ç¾ç(OS, Ä¿³Î ¹öÀüµî)À» Ç¥ÁØÃâ·ÂÀ¸·Î º¸¿©ÁÝ´Ï´Ù. -a ¿É¼ÇÀ» ÁÖ¸é ½Ã½ºÅÛ Á¤º¸¸¦ ¾ÆÁÖ ÀÚ¼¼ÇÏ°Ô º¸¿©ÁÖ°í(¿¹ 12-4 Âü°í), -s ¿É¼ÇÀ» ÁÖ¸é OS Á¾·ù¸¸ º¸¿©ÁÝ´Ï´Ù.
bash$ uname -a Linux localhost.localdomain 2.2.15-2.5.0 #1 Sat Feb 5 00:13:43 EST 2000 i686 unknown bash$ uname -s Linux |
½Ã½ºÅÛ ¾ÆÅ°ÅØÃĸ¦ º¸¿©ÁÝ´Ï´Ù. uname -m °ú µ¿ÀÏÇÑ ¸í·É¾îÀÔ´Ï´Ù. ¿¹ 10-24¸¦ Âü°íÇϼ¼¿ä.
bash$ arch i686 bash$ uname -m i686 |
/var/account/pacct ÆÄÀÏ¿¡ ÀúÀåµÅ ÀÖ´Â ÀÌÀü ¸í·É¾îµé¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë·ÁÁÝ´Ï´Ù. ¿É¼ÇÀ¸·Î ¸í·É¾î¿Í »ç¿ëÀÚ À̸§À» ÁöÁ¤ÇØ ÁÙ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸í·É¾î´Â GNU °èÁ¤ À¯Æ¿¸®Æ¼(accounting utility)ÁßÀÇ ÇϳªÀÔ´Ï´Ù.
½Ã½ºÅÛÀÇ ¸ðµç »ç¿ëÀÚ°¡ ¸¶Áö¸·À¸·Î ·Î±×ÀÎÇÑ ½Ã°£À» º¸¿©ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â /var/log/lastlog ÆÄÀÏÀ» ÂüÁ¶ÇÕ´Ï´Ù.
bash$ lastlog root tty1 Fri Dec 7 18:43:21 -0700 2001 bin **Never logged in** daemon **Never logged in** ... bozo tty1 Sat Dec 8 21:14:29 -0700 2001 bash$ lastlog | grep root root tty1 Fri Dec 7 18:43:21 -0700 2001 |
°æ°í |
/var/log/lastlog ÆÄÀÏ¿¡ ÀÐ±â ÆÛ¹Ì¼ÇÀÌ ¾ø´Â »ç¿ëÀÚ°¡ ÀÌ ¸í·É¾î¸¦ ½ÇÇà½ÃŰ¸é ½ÇÆÐÇÕ´Ï´Ù. |
ÇöÀç ¿·Á ÀÖ´Â ÆÄÀϵéÀ» º¸¿©ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â ÇöÀç ¿·Á ÀÖ´Â ¸ðµç ÆÄÀϵ鿡 ´ëÇÑ ÀÚ¼¼ÇÑ Ç¥¿Í °¢°¢ÀÇ ÆÄÀÏ¿¡ ´ëÇÑ ¼ÒÀ¯ÀÚ, Å©±â, °ü·Ã ÇÁ·Î¼¼½ºµîÀÇ Á¤º¸¸¦ º¸¿© ÁÝ´Ï´Ù. ´ç¿¬È÷, lsofÀÇ Ãâ·ÂÀº ÆÄÀÌÇÁ¸¦ ÅëÇØ grep³ª awk·Î ³Ñ°Ü¼ ÆÄ½ÌÇØ¼ ºÐ¼®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
bash$ lsof COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME init 1 root mem REG 3,5 30748 30303 /sbin/init init 1 root mem REG 3,5 73120 8069 /lib/ld-2.1.3.so init 1 root mem REG 3,5 931668 8075 /lib/libc-2.1.3.so cardmgr 213 root mem REG 3,5 36956 30357 /sbin/cardmgr ... |
½Ã½ºÅÛ Äݰú ½Ã±×³ÎÀ» ÃßÀûÇØ¼ Áø´ÜÇÏ°í µð¹ö±ëÇØ ÁÖ´Â µµ±¸ÀÔ´Ï´Ù. °¡Àå °£´ÜÇÏ°Ô ½ÇÇà½ÃŰ´Â ¹æ¹ýÀº strace COMMAND¶ó°í Ä¡´Â °ÍÀÔ´Ï´Ù.
bash$ strace df execve("/bin/df", ["df"], [/* 45 vars */]) = 0 uname({sys="Linux", node="bozo.localdomain", ...}) = 0 brk(0) = 0x804f5e4 ... |
ÀÌ ¸í·É¾î´Â ¸®´ª½º¿¡¼ÀÇ truss ÀÔ´Ï´Ù.
¸Þ¸ð¸®¿Í ij½¬ »ç¿ë·®À» ÅÇÀÌ µé¾î°£ ÇüÅ·Πº¸¿©ÁÝ´Ï´Ù. ÀÌ ¸í·É¾îÀÇ Ãâ·ÂÀº grepÀ̳ª, awk, PerlÀ» ½á¼ ÆÄ½ÌÇϱ⿡ ¾Ë¸ÂÀº ÇüÅÂÀÔ´Ï´Ù. procinfo ¸í·É¾î´Â free°¡ º¸¿©ÁÖ´Â Á¤º¸ À̿ܿ¡ ´õ ¸¹Àº Á¤º¸µµ º¸¿©ÁÝ´Ï´Ù.
bash$ free total used free shared buffers cached Mem: 30504 28624 1880 15820 1608 16376 -/+ buffers/cache: 10640 19864 Swap: 68540 3128 65412 |
»ç¿ëÇÏÁö ¾Ê´Â ·¥ ¿ë·®À» º¸·Á¸é:
bash$ free | grep Mem | awk '{ print $4 }' 1880 |
/proc °¡»ó ÆÄÀϽýºÅÛ¿¡¼ ¿©·¯ Á¤º¸¿Í Åë°è¸¦ »Ì¾Æ³»¼ ±¤¹üÀ§Çϰí ÀÚ¼¼ÇÏ°Ô º¸¿© ÁÝ´Ï´Ù.
bash$ procinfo | grep Bootup Bootup: Wed Mar 21 15:15:50 2001 Load average: 0.04 0.21 0.34 3/47 6829 |
¼³Ä¡µÈ Çϵå¿þ¾î µð¹ÙÀ̽ºÀÇ ¸ñ·ÏÀ» º¸¿©ÁÝ´Ï´Ù.
bash$ lsdev Device DMA IRQ I/O Ports ------------------------------------------------ cascade 4 2 dma 0080-008f dma1 0000-001f dma2 00c0-00df fpu 00f0-00ff ide0 14 01f0-01f7 03f6-03f6 ... |
µð½ºÅ©ÀÇ ÆÄÀÏ »ç¿ë·®À» Àç±ÍÀûÀ¸·Î º¸¿©ÁÝ´Ï´Ù. Ưº°È÷ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ÇöÀç µð·ºÅ丮¿¡ ´ëÇØ¼ µ¿ÀÛÇÕ´Ï´Ù.
bash$ du -ach 1.0k ./wi.sh 1.0k ./tst.sh 1.0k ./random.file 6.0k . 6.0k total |
ÆÄÀϽýºÅÛ »ç¿ë·®À» ÅÇÀÌ µé¾î°£ ÇüÅ·Πº¸¿© ÁÝ´Ï´Ù.
bash$ df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda5 273262 92607 166547 36% / /dev/hda8 222525 123951 87085 59% /home /dev/hda7 1408796 1075744 261488 80% /usr |
ÁÖ¾îÁø ÆÄÀÏ(µð·ºÅ丮³ª µð¹ÙÀ̽º ÆÄÀϵµ)¿¡ ´ëÇØ¼ ÀÚ¼¼ÇÑ Åë°è(statistics)¸¦ ¾Ë·ÁÁÝ´Ï´Ù.
bash$ stat test.cru File: "test.cru" Size: 49970 Allocated Blocks: 100 Filetype: Regular File Mode: (0664/-rw-rw-r--) Uid: ( 501/ bozo) Gid: ( 501/ bozo) Device: 3,8 Inode: 18185 Links: 1 Access: Sat Jun 2 16:40:24 2001 Modify: Sat Jun 2 16:40:24 2001 Change: Sat Jun 2 16:40:24 2001 |
Á¸ÀçÇÏÁö ¾Ê´Â ÆÄÀÏ¿¡ ´ëÇØ¼ statÀ» ½ÇÇà½ÃŰ¸é ¿¡·¯ ¸Þ¼¼Áö¸¦ ³À´Ï´Ù.
bash$ stat nonexistent-file nonexistent-file: No such file or directory |
°¡»ó ¸Þ¸ð¸®(virtual memory) Åë°è(statistics)¸¦ º¸¿©ÁÜ.
bash$ vmstat procs memory swap io system cpu r b w swpd free buff cache si so bi bo in cs us sy id 0 0 0 0 11040 2636 38952 0 0 33 7 271 88 8 3 89 |
¶ó¿ìÆÃ Å×À̺íÀ̳ª Ȱ¼ºÈµÇ¾î ÀÖ´Â ³×Æ®¿öÅ© ¿¬°á°°Àº ³×Æ®¿öÅ© Åë°è¿Í Á¤º¸¸¦ º¸¿© ÁÝ´Ï´Ù. ÀÌ À¯Æ¿¸®Æ¼´Â /proc/net(28Àå)¿¡¼ Á¤º¸¸¦ ¾ò¾î ¿É´Ï´Ù. ¿¹ 28-2À» Âü°íÇϼ¼¿ä.
½Ã½ºÅÛÀÌ ¾ó¸¶³ª ¿À·§µ¿¾È µ¹°í ÀÖ¾ú´ÂÁö °ü·Ã Åë°è¿Í ÇÔ²² º¸¿©ÁÝ´Ï´Ù.
bash$ uptime 10:28pm up 1:57, 3 users, load average: 0.17, 0.34, 0.27 |
½Ã½ºÅÛÀÇ È£½ºÆ®¸íÀ» º¸¿©ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â /etc/rc.d ¿¡ µé¾î ÀÖ´Â ¼Â¾÷ ½ºÅ©¸³Æ®¿¡¼ È£½ºÆ®¸íÀ» ¼³Á¤ÇØ ÁÝ´Ï´Ù(/etc/rc.d/rc.sysinitÀ̳ª ºñ½ÁÇÑ ½ºÅ©¸³Æ®). uname -n°ú µ¿ÀÏÇÑ ¸í·É¾îÀÌ°í ³»ºÎ º¯¼öÀÎ $HOSTNAME°ú ¿¬°üÀÌ ÀÖ½À´Ï´Ù.
bash$ hostname localhost.localdomain bash$ echo $HOSTNAME localhost.localdomain |
È£½ºÆ® ¸Ó½Å¿¡ ´ëÇÑ 32ºñÆ® 16Áø¼ö ±¸ºÐÀÚ¸¦ ¿¡ÄÚÇØ ÁÝ´Ï´Ù.
bash$ hostid 7f0100 |
Âü°í: ÀÌ ¸í·É¾î´Â ƯÁ¤ ½Ã½ºÅÛ¿¡ ´ëÇØ "À¯ÀÏÇÑ"(unique) ½Ã¸®¾ó ¼ýÀÚ¸¦ ±¸ÇØÁÝ´Ï´Ù. ¸î¸î »ó¾÷¿ë Á¦Ç°ÀÇ µî·Ï °úÁ¤¿¡¼ ÀÌ ¼ýÀÚ¸¦ ÀÌ¿ëÇØ »ç¿ëÀÚ ¶óÀ̼¾½º¸¦ ¸¸µé¾î ³À´Ï´Ù. ÇÏÁö¸¸ ºÒÇàÇϰԵµ hostid´Â ¿ÀÁ÷ ³×Æ®¿öÅ© ÁÖ¼Ò¸¦ µÎ ¹ÙÀÌÆ® ´ÜÀ§·Î µÚÁý¾î 16Áø¼ö·Î ¸®ÅÏÇØ ÁÝ´Ï´Ù.
³×Æ®¿öÅ©¿¡ ¹°¸®Áö ¾ÊÀº ¸®´ª½º ¸Ó½ÅÀÇ ÀüÇüÀûÀÎ ³×Æ®¿öÅ© ÁÖ¼Ò´Â /etc/hosts¿¡¼ ¾Ë¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù.
bash$ cat /etc/hosts 127.0.0.1 localhost.localdomain localhost°ø±³·Ó°Ôµµ 127.0.0.1À» µÎ ¹ÙÀÌÆ® ´ÜÀ§·Î µÚÁýÀ¸¸é 0.127.1.0ÀÌ µÇ°í À̸¦ 16Áø¼ö·Î º¯È¯Çϸé 007f0100ÀÌ µÇ´Âµ¥ ÀÌ´Â À§¿¡¼ »ìÆìº» hostid°¡ ¸®ÅÏÇÏ´Â °ª°ú Á¤È®È÷ ÀÏÄ¡ÇÕ´Ï´Ù. °á±¹ µ¿ÀÏÇÑ hostid¸¦ °®´Â ¸®´ª½º ¸Ó½ÅÀÌ ¼ö ¹é¸¸ °³°¡ Á¸ÀçÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù.
»ç¿ëÀÚ°¡ ¸¸µé¾î³½ ¸Þ¼¼Áö¸¦ ½Ã½ºÅÛ ·Î±×(/var/log/messages)¿¡ Ãß°¡ ½Ãŵ´Ï´Ù. ÀÌ ¸í·É¾î´Â ÀÏ¹Ý »ç¿ëÀÚµµ ¾µ ¼ö ÀÖ½À´Ï´Ù.
logger Experiencing instability in network connection at 23:10, 05/21. # ÀÚ, ÀÌÁ¦ 'tail /var/log/messages' ¶ó°í ÇØ º¸¼¼¿ä. |
½ºÅ©¸³Æ®¿¡ logger ¸í·É¾î¸¦ ³Ö¾î¼ µð¹ö±ë Á¤º¸¸¦ /var/log/messages¿¡ ¾µ ¼ö ÀÖ½À´Ï´Ù.
logger -t $0 -i Logging at line "$LINENO". # "-t" ¿É¼ÇÀº logger ¿£Æ®¸®¿ë ű׸¦ ÁöÁ¤ÇÕ´Ï´Ù. # "-i" ¿É¼ÇÀº ÇÁ·Î¼¼½º ID¸¦ ÁöÁ¤ÇÕ´Ï´Ù. # tail /var/log/message # ... # Jul 7 20:48:58 localhost ./test.sh[1712]: Logging at line 3. |
ÀÌ À¯Æ¿¸®Æ¼´Â ½Ã½ºÅÛ ·Î±× ÆÄÀϵéÀ» Àû´çÇÏ°Ô ·ÎÅ×ÀÌÆ® ½Ã۰í, ¾ÐÃàÇϰí, Áö¿ì°í, ¸ÞÀÏÀ» º¸³»´Â ÀϵéÀ» ó¸®ÇØ ÁÝ´Ï´Ù. º¸Åë crondÀº logrotate¸¦ °¡Àå ±âº»ÀûÀÎ ÇÏ·ç Àϰú·Î »ï½À´Ï´Ù.
/etc/logrotate.conf¿¡ Àû´çÇÑ ³»¿ëÀ» Àû¾îÁÖ¸é ½Ã½ºÅÛ Àüü ·Î±×»Ó¸¸ ¾Æ´Ï¶ó °³ÀÎ¿ë ·Î±× ÆÄÀÏÀ» °ü¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÇÁ·Î¼¼½º Åë°è(Process Statistics): ÇöÀç ½ÇÇàÁßÀÎ ÇÁ·Î¼¼½ºµéÀ» »ç¿ëÀÚ¿Í PID(ÇÁ·Î¼¼½º ¾ÆÀ̵ð)¿¡ ÀÇÇØ¼ º¸¿©ÁÜ. º¸ÅëÀº ax ¿É¼ÇÀ» Á༠ºÎ¸£°í, grepÀ̳ª sed·Î ÆÄÀÌÇÁ¸¦ °É¾î¼ ƯÁ¤ ÇÁ·Î¼¼½º¸¦ ã½À´Ï´Ù(¿¹ 11-8¿Í ¿¹ 28-1 Âü°í).
bash$ ps ax | grep sendmail 295 ? S 0:00 sendmail: accepting connections on port 25 |
ÇöÀç ½ÇÇàÁßÀÎ ÇÁ·Î¼¼½º¸¦ "³ª¹«"(tree) ÇüÅ·Πº¸¿© ÁÝ´Ï´Ù. -p ¿É¼ÇÀ» ÁÖ¸é ÇÁ·Î¼¼½º À̸§»Ó¸¸ ¾Æ´Ï¶ó PID±îÁö º¸¿© ÁÝ´Ï´Ù.
cpu¸¦ ÁýÁßÀûÀ¸·Î »ç¿ëÇÏ´Â ÇÁ·Î¼¼½º¸¦ Áß½ÉÀ¸·Î ÃֽŠÁ¤º¸¸¦ °è¼Ó º¸¿©ÁÝ´Ï´Ù. -b ¿É¼ÇÀº °á°ú¸¦ ÅØ½ºÆ® ¸ðµå·Î º¸¿©Áֱ⠶§¹®¿¡ ÆÄ½ÌÀ» Çϰųª ½ºÅ©¸³Æ®¿¡¼ Á¢±ÙÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
bash$ top -b 8:30pm up 3 min, 3 users, load average: 0.49, 0.32, 0.13 45 processes: 44 sleeping, 1 running, 0 zombie, 0 stopped CPU states: 13.6% user, 7.3% system, 0.0% nice, 78.9% idle Mem: 78396K av, 65468K used, 12928K free, 0K shrd, 2352K buff Swap: 157208K av, 0K used, 157208K free 37244K cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 848 bozo 17 0 996 996 800 R 5.6 1.2 0:00 top 1 root 8 0 512 512 444 S 0.0 0.6 0:04 init 2 root 9 0 0 0 0 SW 0.0 0.0 0:00 keventd ... |
¹é±×¶ó¿îµå ÀÛ¾÷ÀÇ ¿ì¼±¼øÀ§¸¦ ¹Ù²ãÁÝ´Ï´Ù. ¿ì¼±¼øÀ§´Â 19(Á¦ÀÏ ³·À½)¿¡¼ -20(Á¦ÀÏ ³ôÀ½)±îÁö Àε¥, ¿ÀÁ÷ root¸¸ÀÌ À½¼ö(³ôÀº) ¿ì¼±¼øÀ§¸¦ ÁÙ ¼ö ÀÖ½À´Ï´Ù. °ü·Ã ¸í·É¾î·Î´Â renice, snice, skillÀÌ ÀÖ½À´Ï´Ù.
»ç¿ëÀÚ°¡ ·Î±× ¾Æ¿ôÀ» ÇÏ´õ¶ó°í ¸í·É¾î°¡ °è¼Ó µ¹°Ô ÇØ ÁÝ´Ï´Ù. ¸í·É¾î¿¡ &¸¦ ºÙ¿© ½ÇÇàÇÏÁö ¾ÊÀ¸¸é Æ÷±×¶ó¿îµå·Î ½ÇÇàÀÌ µÉ °ÍÀÔ´Ï´Ù. nohupÀ» ½ºÅ©¸³Æ®¿¡¼ ¾µ ¶§´Â, °í¾Æ ÇÁ·Î¼¼½º³ª Á»ºñ ÇÁ·Î¼¼½º°¡ »ý±âÁö ¾Êµµ·Ï wait°ú °°ÀÌ ½á¾ß ÇÕ´Ï´Ù.
½ÇÇàÁßÀÎ ÀÛ¾÷ÀÇ ÇÁ·Î¼¼½º ID(pid)¸¦ ½Äº°ÇØ ÁÝ´Ï´Ù. killÀ̳ª renice°°Àº ÀÛ¾÷ Á¦¾î ¸í·É¾îµéÀº ÇÁ·Î¼¼½º À̸§ÀÌ ¾Æ´Ï¶ó pid¿¡ ´ëÇØ µ¿ÀÛÇϱ⠶§¹®¿¡ Á¾Á¾ pid·Î ±¸ºÐÇÒ Çʿ䰡 »ý±é´Ï´Ù. pidof ¸í·É¾î´Â ³»ºÎ º¯¼öÀÎ $PPID¿Í °ÅÀÇ ½ÖÀ» ÀÌ·ì´Ï´Ù.
bash$ pidof xclock 880 |
¿¹ 13-4. pidof ·Î ÇÁ·Î¼¼½º¸¦ Á×À̱â
#!/bin/bash # kill-process.sh NOPROCESS=2 process=xxxyyyzzz # Á¸ÀçÇÏÁö ¾Ê´Â ÇÁ·Î¼¼½º¸¦ °¡Áö°í, # ±×³É µ¥¸ð¿ëÀÓ... # ... ½ÇÁ¦·Î µ¹°í ÀÖ´Â ¾î¶² ÇÁ·Î¼¼½ºµµ Á×ÀÌ·Á°í ÇÏ´Â°Ô ¾Æ´Ï´Ï±î. # # ÇÏÁö¸¸, ¿¹¸¦ µé¾î ÀÎÅͳݿ¡¼ ·Î±×¿ÀÇÁÇÏ°í ½Í´Ù¸é #+ process=pppd #+ µË´Ï´Ù. t=`pidof $process` # $processÀÇ pid(ÇÁ·Î¼¼½º ID)¸¦ ã°í, # 'kill'Àº ÇÁ·Î±×·¥ À̸§ÀÌ ¾Æ´Ï¶ó pid¸¦ ¾²±â ¶§¹®¿¡ if [ -z "$t" ] # ÇØ´ç ÇÁ·Î¼¼½º°¡ ¾ø´Ù¸é 'pidof'´Â ³ÎÀ» ¸®ÅÏÇÔ. then echo "$process ´Â ÇöÀç ½ÇÇàÁßÀÌ ¾Æ´Ï¹Ç·Î ±×³É Á¾·áÇÕ´Ï´Ù." exit $NOPROCESS fi kill $t # Àß Á×Áö ¾Ê´Â ÇÁ·Î¼¼½º¶ó¸é 'kill -9'¶ó°í ÇØ¾ß ÇÒÁöµµ ¸ð¸¨´Ï´Ù. # Á×Áö ¾Ê°Ô µÅ ÀÖ´Â ÇÁ·Î¼¼½ºÀϼöµµ Àֱ⠶§¹®¿¡ # ´Ù½Ã ÇÑ ¹ø " t=`pidof $process` " ·Î È®ÀÎÇØ º¼ Çʿ䰡 ÀÖ½À´Ï´Ù. # À§ Àüü ½ºÅ©¸³Æ®´Â # kill $(pidof -x process_name) # À̶ó°í ÇÒ ¼öµµ ÀÖ°ÚÀ¸³ª ±×·¯¸é ±³À°ÀûÀÌÁö´Â ¾ÊÀº°Í °°±º¿ä. exit 0 |
¾î¶² ÆÄÀÏÀ̳ª, ÆÄÀÏ ÁýÇÕ, µð·ºÅ丮¿¡ Á¢±ÙÇϰí ÀÖ´Â ÇÁ·Î¼¼½º¸¦ PID·Î ½Äº°ÇØ ÁÝ´Ï´Ù. -k ¿É¼ÇÀ» ¾²¸é ÇØ´ç ÇÁ·Î¼¼½º¸¦ Á×ÀÏ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸í·É¾î´Â ½Ã½ºÅÛ º¸¾È Â÷¿ø¿¡¼ ¾ÆÁÖ Èï¹Ì·Î¿î ±¸ÇöÀε¥ ÁÖ·Î ½ºÅ©¸³Æ®¿¡¼ ¾²¿© ½Ã½ºÅÛ ¼ºñ½º¿¡ ´ëÇØ Çã°¡ ¹ÞÁö ¾ÊÀº »ç¿ëÀÚÀÇ Á¢±ÙÀ» ¸·´Â ¿ëµµ·Î ¾²ÀÔ´Ï´Ù.
½Ã½ºÅÛ °ü¸®¿ë ½ºÄÉÁì·¯ ÇÁ·Î±×·¥À¸·Î¼, ½Ã½ºÅÛ ·Î±× ÆÄÀÏÀ» Á¤¸®Çϰí Áö¿î´Ù°Å³ª slocate µ¥ÀÌŸ º£À̽º¸¦ ¾÷µ¥ÀÌÆ® ÇÏ´Â µîÀÇ ÀÏÀ» ÇØ ÁÝ´Ï´Ù. atÀÇ ·çÆ® »ç¿ëÀÚ ¹öÀü¿ë ¸í·É¾îÀÔ´Ï´Ù(¹°·Ð, °¢ »ç¿ëÀÚ´Â crontab ¸í·É¾î¸¦ ½á¼ ÀڽŸ¸ÀÇ crontab ÆÄÀÏÀ» °¡Áú¼öµµ ÀÖ½À´Ï´Ù). µ¥¸óÀ¸·Î µ¹¸é¼ /etc/crontabÀÇ ³»¿ëµéÀ» ½ºÄÉÁì¿¡ µû¶ó ½ÇÇà½ÃÄÑ ÁÝ´Ï´Ù.
init ¸í·É¾î´Â ¸ðµç ÇÁ·Î¼¼½ºÀÇ ºÎ¸ð ÇÁ·Î¼¼½º·Î¼, ½Ã½ºÅÛ ºÎÆÃ °úÁ¤ÀÇ Á¦ÀÏ ¸¶Áö¸·¿¡ ºÒ¸®¸é¼ /etc/inittabÀ» ÀÐ¾î¼ ½Ã½ºÅÛÀÇ ·±·¹º§À» °áÁ¤ÇÕ´Ï´Ù. ¿ÀÁ÷ ·çÆ®¸¸ÀÌ º°¸íÀÎ telinitÀ¸·Î ºÎ¸¦ ¼ö ÀÖ½À´Ï´Ù.
init¸¦ °¡¸£Å°´Â ½Éº¼¸¯¸µÅ©·Î¼, ½Ã½ºÅÛ ·±·¹º§À» ¹Ù²Ü ¶§ ¾²´Âµ¥ º¸ÅëÀº ½Ã½ºÅÛ °ü¸®³ª ±ä±ÞÇÏ°Ô ÆÄÀϽýºÅÛÀ» ¼ö¸®ÇØ¾ß ÇÒ ¶§ ¾¹´Ï´Ù. ¿ÀÁ÷ ·çÆ®¸¸ ÀÌ ¸í·É¾î¸¦ ¾µ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸í·É¾î´Â ¾ÆÁÖ À§ÇèÇϱ⠶§¹®¿¡ ¾²±â Àü¿¡ ÀÌ ¸í·É¾î¸¦ Àß ÀÌÇØÇϰí ÀÖ¾î¾ß ÇÕ´Ï´Ù!
ÇöÀç¿Í ¹Ù·Î ÀüÀÇ ·±·¹º§À», ½Ã½ºÅÛÀÌ Á¤Áö »óÅÂÀÎÁö(·±·¹º§ 0), ´ÜÀÏ »ç¿ëÀÚ ¸ðµåÀÎÁö(1), ´ÙÁß »ç¿ëÀÚ ¸ðµåÀÎÁö(2³ª 3), X À©µµ¿ì ¸ðµåÀÎÁö(5), ¸®ºÎÆÃ ÁßÀÎÁö(6)µîÀ¸·Î º¸¿© ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â /var/run/utmp ÆÄÀÏÀ» ÅëÇØ Á¤º¸¸¦ ¾ò¾î ¿É´Ï´Ù.
º¸Åë ½Ã½ºÅÛ Àü¿øÀ» ²ô±â Àü¿¡ ½Ã½ºÅÛÀ» Á¤Áö½ÃŰ´Â ¸í·É¾îµé.
³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º ¼³Á¤¹× Æ©´× À¯Æ¿¸®Æ¼. ÀÌ ¸í·É¾î´Â ºÎÆÃ½Ã ÀÎÅÍÆäÀ̽º¸¦ ¼³Á¤ÇÒ ¶§³ª ¸®ºÎÆÃ¶§ ÀÎÅÍÆäÀ̽º¸¦ ³»¸®±â À§ÇØ ¾²ÀÔ´Ï´Ù.
# /etc/rc.d/init.d/network ÀÇ ÀϺκР# ... # ³×Æ®¿öÅ·ÀÌ °¡´ÉÇÑÁö È®ÀÎ. [ ${NETWORKING} = "no" ] && exit 0 [ -x /sbin/ifconfig ] || exit 0 # ... for i in $interfaces ; do if ifconfig $i 2>/dev/null | grep -q "UP" >/dev/null 2>&1 ; then action "Shutting down interface $i: " ./ifdown $i boot fi # "grep"ÀÇ GNU Àü¿ëÀÎ "-q" ¿É¼ÇÀº "quiet"¸¦ ¶æÇϰí, ¾î¶² Ãâ·Âµµ ÇÏÁö ¾Ê°Ô ÇÕ´Ï´Ù. # µû¶ó¼ Ãâ·ÂÀ» /dev/null ·Î ÀçÁöÇâ ÇÏ´Â °ÍÀÌ ²À ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. # ... echo "ÇöÀç µ¿ÀÛÁßÀÎ µð¹ÙÀ̽º:" echo `/sbin/ifconfig | grep ^[a-z] | awk '{print $1}'` # ^^^^^ globbing À» ¸·±â À§ÇØ Äõ¿ìÆ® ½ÃÄÑ¾ß ÇÕ´Ï´Ù. # ´ÙÀ½µµ ¿ª½Ã µ¿ÀÛÇÕ´Ï´Ù. # echo $(/sbin/ifconfig | awk '/^[a-z]/ { print $1 })' # echo $(/sbin/ifconfig | sed -e 's/ .*//') # S.C.°¡ ÁÖ¼®À» ´õ ³Ö¾î Áá½À´Ï´Ù. °í¸¶¿ö¿ä. |
Ä¿³Î ¶ó¿ìÆÃ Å×À̺í Á¤º¸¸¦ º¸°Å³ª ¹Ù²Ü ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù.
bash$ route Destination Gateway Genmask Flags MSS Window irtt Iface pm3-67.bozosisp * 255.255.255.255 UH 40 0 0 ppp0 127.0.0.0 * 255.0.0.0 U 40 0 0 lo default pm3-67.bozosisp 0.0.0.0 UG 40 0 0 ppp0 |
³×Æ®¿öÅ© ¼³Á¤À» Ã¼Å©ÇØÁÜ. ÀÌ ¸í·É¾î´Â /etc/rc?.d µð·ºÅ丮¿¡ µé¾îÀÖ°í ºÎÆÃ½Ã ½ÃÀ۵Ǵ ³×Æ®¿öÅ© ¼ºñ½ºµéÀ» º¸¿©ÁÖ°í °ü¸®ÇØ ÁÝ´Ï´Ù.
¿ø·¡´Â IRIX¿¡ ÀÖ´ø °ÍÀ» ·¹µåÇÞ ¸®´ª½º°¡ Æ÷ÆÃÇÑ °ÍÀ¸·Î ´Ù¸¥ ¸®´ª½º ¹èÆ÷ÆÇ¿¡¼´Â ±âº» ¼³Ä¡¿¡ ¼ÓÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ½À´Ï´Ù.
bash$ chkconfig --list atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off rwhod 0:off 1:off 2:off 3:off 4:off 5:off 6:off ... |
³×Æ®¿öÅ© ÆÐŶ "½º´ÏÆÛ". ÁÖ¾îÁø ±âÁØ¿¡ ¸Â´Â ÆÐŶ Çì´õÀÇ ´ýÇÁ¸¦ ¶°¼ ³×Æ®¿öÅ© Æ®·¡ÇÈÀ» ºÐ¼®ÇÏ°í ¹®Á¦Á¡À» ÇØ°áÇÒ ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù.
bozoville ¿Í caduceus µÎ È£½ºÆ®°£ÀÇ IP ÆÐŶ Æ®·¡ÇÈÀ» ´ýÇÁ:
bash$ tcpdump ip host bozoville and caduceus |
´ç¿¬È÷ tcpdumpÀÇ Ãâ·ÂÀº ¾Õ¿¡¼ ³íÀÇÇß´ø ÅØ½ºÆ® ó¸® À¯Æ¿¸®Æ¼µéÀ» ÀÌ¿ëÇØ¼ ÆÄ½ÌÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
ÆÄÀϽýºÅÛÀ» ¸¶¿îÆ®ÇØ ÁÝ´Ï´Ù. º¸ÅëÀº Ç÷ÎÇdzª ½Ãµð·Ò °°Àº ¿ÜºÎ µð¹ÙÀ̽º¿¡ ´ëÇØ¼ ¾²ÀÔ´Ï´Ù. /etc/fstab¿¡ °¡´ÉÇÑ ÆÄÀϽýºÅÛÀ̳ª ÆÄƼ¼Ç, µð¹ÙÀ̽º, ¿É¼ÇµîÀ» Àû¾î ³õÀ¸¸é ÀÚµ¿À̳ª ¼öµ¿À¸·Î ¸¶¿îÆ®¸¦ ÆíÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. /etc/mtab ÆÄÀÏÀº /proc °°Àº °¡»ó ÆÄÀϽýºÅÛµµ Æ÷ÇÔÇØ¼ ÇöÀç ¸¶¿îÆ® µÇ¾î ÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛÀ» º¸¿© ÁÝ´Ï´Ù.
mount -a ´Â /etc/fstab¿¡ µé¾î ÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛ°ú ÆÄƼ¼ÇÁß¿¡ noauto ¿É¼ÇÀÌ ÀÖ´Â Ç׸ñ¸¸ »©°í ¸ðµÎ ¸¶¿îÆ® ÇØ ÁÝ´Ï´Ù. ºÎÆÃµÉ ¶§, ¸ðµç ÆÄƼ¼ÇÀÌ ¸¶¿îÆ® µÇµµ·Ï /etc/rc.d µð·ºÅ丮¿¡ µé¾î ÀÖ´Â ½Ã½ºÅÛ ±¸µ¿ ½ºÅ©¸³Æ®(rc.sysinitÀ̳ª ºñ½ÁÇÑ °Í)¿¡¼ ÀÌ ¸í·É¾î¸¦ ºÎ¸¨´Ï´Ù.
mount -t iso9660 /dev/cdrom /mnt/cdrom # CDROM ¸¶¿îÆ® mount /mnt/cdrom # /mnt/cdrom ÀÌ /etc/fstab ¿¡ µé¾î ÀÖÀ» °æ¿ì ª°Ô ºÎ¸£±â |
ÀÌ ´ÙÀç´Ù´ÉÇÑ ¸í·É¾î´Â º¸Åë ÆÄÀÏÀ» ºí·° µð¹ÙÀ̽º¿¡ Á¸ÀçÇÏ´Â ÆÄÀÏ ½Ã½ºÅÛó·³ ¸¶¿îÆ® ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ·± ´É·ÂÀº ·çÇÁ¹é µð¹ÙÀ̽º(loopback device)¶ó°í ÇÏ´Â ÆÄÀÏÀ» ÀÌ¿ëÇØ¼ °¡´ÉÇØ Áý´Ï´Ù. ÀÌ ·çÇÁ¹é µð¹ÙÀ̽º¸¦ Àû¿ëÇÑ ¿¹·Î¼, ISO9660 À̹ÌÁö¸¦ CDR·Î ±Á±â Àü¿¡ ¸¶¿îÆ®ÇØ¼ Å×½ºÆ® ÇØº¸´Â °ÍÀÌ ÀÖ½À´Ï´Ù. [3]
¿¹ 13-5. CD À̹ÌÁö È®ÀÎÇϱâ
# ·çÆ®·Î... mkdir /mnt/cdtest # ¸¶¿îÆ® Æ÷ÀÎÆ®°¡ ¾ø´Ù¸é ÁغñÇÔ. mount -r -t iso9660 -o loop cd-image.iso /mnt/cdtest # À̹ÌÁö ¸¶¿îÆ®. # "-o loop" ¿É¼ÇÀº "losetup /dev/loop0" ¿Í °°À½. cd /mnt/cdtest # ÀÌÁ¦ À̹ÌÁö¸¦ È®ÀÎ. ls -alR # À̹ÌÁö¿¡ µé¾îÀÖ´Â µð·ºÅ丮 Æ®¸®¿¡ µé¾î ÀÖ´Â ÆÄÀϵéÀ» ³ª¿. # ±âŸ µîµî... |
ÇöÀç ¸¶¿îÆ® µÇ¾î ÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛÀ» ¾ð¸¶¿îÆ® ÇØ ÁÝ´Ï´Ù. ÀÌ¹Ì ¸¶¿îÆ® µÇ¾î ÀÖ´Â Ç÷ÎÇdzª ½Ãµð·Ò µð½ºÅ©¸¦ »©±â Àü¿¡ ²À umount¸¦ ÇØ Áà¾ß ÇÕ´Ï´Ù. ¾È ±×·¯¸é ÆÄÀÏ ½Ã½ºÅÛÀÌ ±úÁú ¼öµµ ÀÖ½À´Ï´Ù.
umount /mnt/cdrom # ÀÌÁ¦ ÀÌÁ§Æ® ¹öưÀ» ´·¯ µð½ºÅ©¸¦ ¾ÈÀüÇÏ°Ô »¬ ¼ö ÀÖ½À´Ï´Ù. |
Âü°í: automount À¯Æ¿¸®Æ¼°¡ ÀûÀýÇÏ°Ô ¼³Ä¡µÇ¾î ÀÖ´Ù¸é Ç÷ÎÇdzª ½Ãµð·Ò µð½ºÅ©¿¡ Á¢±Ù½Ã³ª Á¦°Å½Ã¿¡ ÀÚµ¿À¸·Î ¸¶¿îÆ®¿Í ¾ð¸¶¿îÆ®¸¦ ÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç÷ÎÇdzª ½Ãµð·Ò µå¶óÀ̺긦 ²¼´Ù »°´Ù ÇÒ ¼ö ÀÖ´Â ·¦Å¾¿¡¼´Â ¹®Á¦¸¦ ÀÏÀ¸Å³ ¼öµµ ÀÖ½À´Ï´Ù.
¹öÆÛ¿¡ µé¾î ÀÖ´Â Ãֽе¥ÀÌŸ¸¦ ÇÏµå µå¶óÀ̺ê·Î Áï½Ã ¾²°Ô ÇÕ´Ï´Ù(¹öÆÛ¿Í µå¶óÀ̺긦 µ¿±âÈ). ÀÌ ¸í·É¾î°¡ ²À ÇÊ¿äÇÑ °ÍÀº ¾Æ´ÏÁö¸¸ ½Ã½ºÅÛ °ü¸®ÀÚ³ª »ç¿ëÀÚ¿¡°Ô ÀڽŵéÀÌ º¯°æÇÑ µ¥ÀÌŸ°¡ °©ÀÛ½º·± Àü¿ø À̻󿡵µ »ì¾Æ³²À» ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù. ¿¹Àü¿¡´Â sync; sync(¾ÆÁÖ È®½ÇÈ÷ Çϱâ À§Çؼ µÎ ¹ø ³»¸²)¶ó°í ÇØ¼ ½Ã½ºÅÛÀ» ¸®ºÎÆÃÇϱâ ÀüÀÇ À¯¿ëÇÑ ¿¹¹æÃ¥À¸·Î ¾²¿´½À´Ï´Ù.
ÆÄÀÏÀ» ¾ÈÀüÇÏ°Ô Áö¿ì°Å³ª(¿¹ 12-33) õÀåÀÇ ÀüµîÀÌ ±ôºýÀ̱⠽ÃÀÛÇßÀ» ¶§ ¹öÆÛ¸¦ Áï½Ã Ç÷¯½¬½ÃŰ°í ½ÍÀ» ¶§°¡ ÀÖÀ»Áöµµ ¸ð¸¨´Ï´Ù.
·çÇÁ¹é µð¹ÙÀ̽º¸¦ ¼³Á¤ÇØ ÁÝ´Ï´Ù.
½º¿Ò ÆÄƼ¼ÇÀ̳ª ½º¿Ò ÆÄÀÏÀ» ¸¸µé¾î ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î ´ÙÀ½¿¡´Â ²À swaponÀ¸·Î Ȱ¼ºÈ¸¦ ½ÃÄÑÁà¾ß ÇÕ´Ï´Ù.
½º¿Ò ÆÄƼ¼ÇÀ̳ª ½º¿Ò ÆÄÀÏÀ» Ȱ¼ºÈ/ºñȰ¼ºÈ ½ÃÄÑ ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â º¸Åë ºÎÆÃ½Ã³ª ¼Ë´Ù¿î½Ã¿¡ È¿·ÂÀ» °®½À´Ï´Ù.
¸®´ª½º ext2 ÆÄÀϽýºÅÛÀ» ¸¸µé¾î ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î´Â ·çÆ®·Î ½ÇÇà ½ÃÄÑ¾ß ÇÕ´Ï´Ù.
¿¹ 13-7. »õ ÇÏµå µå¶óÀ̺ê Ãß°¡Çϱâ
#!/bin/bash # ½Ã½ºÅÛ¿¡ µÎ ¹øÂ° ÇÏµå µå¶óÀ̺ê Ãß°¡Çϱâ. # ¼ÒÇÁÆ®¿þ¾î ¼³Á¤. Çϵå¿þ¾î°¡ ÀÌ¹Ì ¸¶¿îÆ®µÅ ÀÖ´Ù°í °¡Á¤ÇÔ. # º» ¹®¼ÀÇ ÀúÀÚ°¡ "Linux Gazett", http://www.linuxgazette.com, 38È£¿¡ # ¾´ ±â»ç¿¡¼ ¹ßÃé. ROOT_UID=0 # ÀÌ ½ºÅ©¸³Æ®´Â ·çÆ®·Î ½ÇÇà ½ÃÄÑ¾ß µË´Ï´Ù. E_NOTROOT=67 # root °¡ ¾Æ´Ñ °æ¿ìÀÇ Á¾·á ¿¡·¯. if [ "$UID" -ne "$ROOT_UID" ] then echo "ÀÌ ½ºÅ©¸³Æ®´Â ·çÆ®¸¸ ½ÇÇà½Ãų ¼ö ÀÖ½À´Ï´Ù." exit $E_NOTROOT fi # ÀÌ ½ºÅ©¸³Æ®´Â Á¤¸» ÁÖÀÇÇØ¼ ¾²±â ¹Ù¶ø´Ï´Ù! # ¸¸¾à ¹«¾ð°¡°¡ À߸øµÈ´Ù¸é ¿©·¯ºÐÀÇ ÆÄÀÏ ½Ã½ºÅÛÀ» Ȧ¶ó´ç ³¯·Á¸ÔÀ» ¼ö ÀÖ½À´Ï´Ù. NEWDISK=/dev/hdb # /dev/hdb °¡ ºñ¾î ÀÖ´Ù°í °¡Á¤ÇÔ. ²À È®ÀÎÇØ º¼ °Í! MOUNTPOINT=/mnt/newdisk # ¾Æ´Ï¸é ´Ù¸¥ ¸¶¿îÆ® Æ÷ÀÎÆ® ÁöÁ¤. fdisk $NEWDISK mke2fs -cv $NEWDISK1 # ¹èµå ºí·° È®ÀÎ¹× ÀÚ¼¼ÇÑ Ãâ·Â. # ÁÖÀÇ: /dev/hdb °¡ *¾Æ´Ï¶ó* /dev/hdb1 ÀÔ´Ï´Ù! mkdir $MOUNTPOINT chmod 777 $MOUNTPOINT # »õ µå¶óÀ̺ê´Â ¸ðµç »ç¿ëÀÚ°¡ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇÔ. # ÀÚ, Å×½ºÆ®¸¦ ÇØ º¸ÁÒ. # mount -t ext2 /dev/hdb1 /mnt/newdisk # µð·ºÅ丮¸¦ ¸¸µé¾î º¸°í Àß µÈ´Ù¸é umount ÇÑ ´ÙÀ½ ÇÏ´ø ÀÏÀ» °è¼ÓÇÏ¸é µË´Ï´Ù. # ¸¶Áö¸· ´Ü°è: # ´ÙÀ½À» /etc/fstab ¿¡ Ãß°¡ÇØ ÁÖ¼¼¿ä. # /dev/hdb1 /mnt/newdisk ext2 defaults 1 1 exit 0 |
ext2 ÆÄÀÏ ½Ã½ºÅÛÀ» Æ©´×ÇØ ÁÝ´Ï´Ù. ÃÖ´ë ¸¶¿îÆ® ¼ýÀÚ°°Àº ÆÄÀÏ ½Ã½ºÅÛ ¸Å°³º¯¼ö¸¦ ¹Ù²Ù´Âµ¥ ¾²ÀÏ ¼ö ÀÖ½À´Ï´Ù. ·çÆ®·Î ½ÇÇàÇØ¾ß µË´Ï´Ù.
ÁÖÀÇ |
ÀÌ ¸í·É¾î´Â ±²ÀåÈ÷ À§ÇèÇÕ´Ï´Ù. ºÎÁÖÀÇÇÏ°Ô ¾´´Ù¸é ¿©·¯ºÐ ÆÄÀÏ ½Ã½ºÅÛÀ» ¹Ú»ì³¾ ¼öµµ Àֱ⠶§¹®¿¡ ¿©·¯ºÐ ½º½º·Î Ã¥ÀÓÀ» Áö°í ½á¾ß ÇÕ´Ï´Ù. |
¾ÆÁÖ ÀÚ¼¼ÇÑ ÆÄÀÏ ½Ã½ºÅÛ Á¤º¸¸¦ Ç¥ÁØÃâ·ÂÀ¸·Î ´ýÇÁÇØ ÁÝ´Ï´Ù. ·çÆ®·Î ½ÇÇàµÇ¾ß ÇÕ´Ï´Ù.
root# dumpe2fs /dev/hda7 | grep 'ount count' dumpe2fs 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09 Mount count: 6 Maximum mount count: 20 |
ÇÏµå µð½ºÅ© ¸Å°³º¯¼ö¸¦ º¸¿©Áְųª ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. ·çÆ®·Î ½ÇÇà½ÃÄÑ¾ß µÇ°í À߸ø ¾µ °æ¿ì À§ÇèÇÒ ¼ö ÀÖ½À´Ï´Ù.
º¸ÅëÀº ÇÏµå µå¶óÀ̺êÀÏ, ÀúÀå¿ë µð¹ÙÀ̽º¿¡ ´ëÇØ¼ ÆÄƼ¼Ç Å×À̺íÀ» ¸¸µé°í º¯°æÇÒ ¼ö ÀÖ°Ô ÇØ ÁÝ´Ï´Ù. ·çÆ®·Î ½ÇÇàÇØ¾ß µË´Ï´Ù.
ÁÖÀÇ |
ÀÌ ¸í·É¾î´Â ¾ÆÁÖ Á¶½ÉÇØ¼ ½á¾ß µË´Ï´Ù. ¸¸¾à¿¡ ¹º°¡°¡ À߸øµÇ¸é ¿©·¯ºÐÀÇ ÆÄÀÏ ½Ã½ºÅÛÀ» ¸Á°¡Æ®¸± ¼öµµ ÀÖ½À´Ï´Ù. |
ÆÄÀÏ ½Ã½ºÅÛ Ã¼Å©, Ä¡·á, µð¹ö±×¿ë ¸í·É¾îµé.
fsck: À¯´Ð½º ÆÄÀÏ ½Ã½ºÅÛÀ» Ã¼Å©ÇØ ÁÖ´Â ÇÁ·ÐÆ® ¿£µå(front end)·Î¼ ´Ù¸¥ À¯Æ¿¸®Æ¼°¡ ÀÌ ¸í·É¾î¸¦ ºÎ¸§. ½ÇÁ¦·Î üũÇÒ ÆÄÀÏ ½Ã½ºÅÛ Å¸ÀÔÀº ext2°¡ ±âº»À¸·Î ÀâÇô ÀÖ½À´Ï´Ù.
e2fsck: ext2 ÆÄÀÏ ½Ã½ºÅÛ Ã¼Ä¿.
debugfs: ext2 ÆÄÀÏ ½Ã½ºÅÛ µð¹ö°Å.
°æ°í |
ÀÌ ¸í·É¾îµéÀº ·çÆ®·Î ½ÇÇà½ÃÄÑ¾ß ÇÕ´Ï´Ù. À߸ø ¾²¸é ÆÄÀÏ ½Ã½ºÅÛÀÌ ¼Õ»óµÇ°Å³ª ¸Á°¡Áú ¼öµµ ÀÖ½À´Ï´Ù. |
ÀúÀå¿ë µð¹ÙÀ̽º¿¡ ´ëÇØ ¹èµå ºí·°(¹Ìµð¾îÀÇ ¹°¸®ÀûÀÎ °áÇÔ)À» Ã¼Å©ÇØ ÁÝ´Ï´Ù. »õ ÇÏµå µå¶óÀ̺긦 ¼³Ä¡ÇÏ°í Æ÷¸ËÇÒ ¶§³ª ¹é¾÷ ¹Ìµð¾îÀÇ ¹«°á¼ºÀ» Å×½ºÆ® ÇØº¸·Á°í ÇÒ ¶§ ¾µ ¼ö ÀÖ½À´Ï´Ù. [4] ¿¹¸¦ µé¾î badblocks /dev/fd0 ¶ó°í Çϸé Ç÷ÎÇÇ µð½ºÅ©¸¦ Å×½ºÆ®ÇØ ÁÝ´Ï´Ù.
badblocks ¸í·É¾î´Â ¸ðµç µ¥ÀÌŸ¸¦ ´Ù µ¤¾î½á¹ö¸®µµ·Ï ºÒ¸± ¼öµµ ÀÖ°í Àбâ Àü¿ë ¸ðµå·Î ¾ÈÀüÇÏ°Ô ºÒ¸± ¼öµµ ÀÖ½À´Ï´Ù. ·çÆ® »ç¿ëÀÚ°¡ Å×½ºÆ®ÇÒ µð¹ÙÀ̽º¸¦ ¼ÒÀ¯Çϰí ÀÖ´Ù¸é, º¸Åë ±×·± »óȲÀÏÅ×Áö¸¸, ·çÆ®°¡ ÀÌ ¸í·É¾î¸¦ ½ÇÇà½ÃÄÑ¾ß ÇÕ´Ï´Ù.
¿¹¸¦ µé¾î MBR(master boot record)ÀÌ ±úÁø »óȲµî¿¡¼ ½Ã½ºÅÛÀ» ´Ù½Ã »ì¸± ¼ö ÀÖµµ·Ï ºÎÆÃ µð½ºÄÏÀ» ¸¸µé¾î ÁÝ´Ï´Ù. mkbootdisk´Â ½ÇÁ¦·Î´Â Erik TroanÀÌ ¸¸µç Bash ½ºÅ©¸³Æ®·Î /sbin µð·ºÅ丮¿¡ µé¾î ÀÖ½À´Ï´Ù.
·çÆ® µð·ºÅ丮¸¦ ¹Ù²ãÁÝ´Ï´Ù(CHange ROOT directory). ¸í·É¾îµéÀº º¸Åë ±âº» ·çÆ® µð·ºÅ丮ÀÎ /¸¦ ±âÁØÀ¸·Î $PATH¿¡ µû¶ó ÇØ¼®µË´Ï´Ù. ÀÌ ¸í·É¾î´Â ÀÌ ·çÆ® µð·ºÅ丮¸¦ ´Ù¸¥ °÷À¸·Î ¹Ù²Û´ÙÀ½ ÀÛ¾÷ µð·ºÅ丮µµ ±× ÂÊÀ¸·Î ¹Ù²ãÁÝ´Ï´Ù. º¸¾È¿ëÀ¸·Î ¾ÆÁÖ À¯¿ëÇѵ¥, ¿¹¸¦ µé¸é ½Ã½ºÅÛ °ü¸®ÀÚ°¡ ÅÚ³ÝÀ¸·Î Á¢¼ÓÁßÀÎ »ç¿ëÀÚ¸¦ º¸¾È°ú °ü·ÃµÈ ÆÄÀÏ ½Ã½ºÅÛ¿¡ Á¢±Ù½ÃŰÁö ¾ÊÀ¸·Á ÇÒ ¶§¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù(°¡²û guest »ç¿ëÀÚ¸¦ "chroot °¨¿Á"(chroot jail)¿¡ °¡µÐ´Ù¶ó°íµµ ÇÕ´Ï´Ù). chrootÈÄ¿¡´Â ½Ã½ºÅÛ ¹ÙÀ̳ʸ®¿¡ ´ëÇÑ ½ÇÇà °æ·Î°¡ ´õ ÀÌ»ó ¸ÂÁö ¾Ê´Â °Í¿¡ ÁÖÀÇÇϱ⠹ٶø´Ï´Ù.
chroot /opt ¶ó°í Çϸé /usr/binÀ» /opt/usr/binÀ̶ó°í ÇØ¼®ÇÕ´Ï´Ù. ºñ½ÁÇϰÔ, º¸ÅëÀÇ »óȲ¿¡¼´Â /¸¦ ±âº» µð·ºÅ丮·Î »ïÁö¸¸ chroot /aaa/bbb /bin/ls ¶ó°í ÇÏ¸é ±× ÈÄ·Î ½ÇÇàµÇ´Â ls´Â /aaa/bbbÀ» ±âº» µð·ºÅ丮·Î ÀνÄÇÕ´Ï´Ù. »ç¿ëÀÚÀÇ ~/.bashrc¿¡ alias XX 'chroot /aaa/bbb ls' ¶ó´Â ÁÙÀ» ³ÖÀ¸¸é ±× »ç¿ëÀÚ°¡ "XX"¸¦ ½ÇÇà ½ÃŰ´Â ÆÄÀÏ ½Ã½ºÅÛÀ» È¿°úÀûÀ¸·Î Á¦ÇÑÇÒ ¼ö ÀÖ½À´Ï´Ù.
chroot´Â ºñ»ó¿ë ºÎÆ® Ç÷ÎÇÇ·Î ºÎÆÃÇßÀ» ¶§ ÆíÇÏ°Ô ¾µ ¼ö ÀÖ°í(/dev/fd0¿¡ chroot °É±â), ½Ã½ºÅÛÀÌ ¹Ú»ì³ª¼ °íÄ¡·Á°í ÇÒ ¶§ lilo¿¡ ¿É¼ÇÀ¸·Î ÁÙ ¼öµµ ÀÖ½À´Ï´Ù. ¶ÇÇÑ ´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛÀ» ÅëÇØ¼ ¼³Ä¡¸¦ ÇÒ °æ¿ì³ª(rpm ¿É¼Ç), CDROM °°Àº Àбâ Àü¿ë ÆÄÀÏ ½Ã½ºÅÛ¿¡¼ ½ÇÇàÇÒ ¶§ ¾µ ¼ö ÀÖ½À´Ï´Ù. ¿ÀÁ÷ ·çÆ® »ç¿ëÀÚ·Î ½ÇÇàÇÒ ¼ö ÀÖÀ¸¸ç, Á¶½ÉÇØ¼ ½á¾ß ÇÕ´Ï´Ù.
°æ°í |
¸î °³ÀÇ ½Ã½ºÅÛ ÆÄÀϵéÀº chrootµÈ µð·ºÅ丮¿¡ º¹»çÇØ ³õ¾Æ¾ß $PATH°¡ ±×µéÀ» Á¦´ë·Î ÀνÄÇÒ ¼ö ÀÖ½À´Ï´Ù. |
ÀÌ À¯Æ¿¸®Æ¼´Â procmail ÆÐŰÁö ÁßÀÇ ÇϳªÀÔ´Ï´Ù(www.procmail.org ). ÀÌ ¸í·É¾î´Â Àá±Ý ÆÄÀÏÀ» ¸¸µé¾î Áִµ¥, Àá±Ý ÆÄÀÏÀ̶õ ƯÁ¤ ÆÄÀÏÀ̳ª µð¹ÙÀ̽º, ¸®¼Ò½º¿¡ ´ëÇØ¼ Á¢±Ù Á¦¾î¸¦ ÇØÁÖ´Â ¼¼¸¶Æ÷¾î ÆÄÀÏÀÔ´Ï´Ù. Àá±Ý ÆÄÀÏÀº ÀÌ Æ¯Á¤ÇÑ ÆÄÀÏ, µð¹ÙÀ̽º, ¸®¼Ò½º¸¦ ƯÁ¤ ÇÁ·Î¼¼½º°¡ ¾²°í ÀÖ´Ù("busy")´Â Ç÷¡±×·Î ¾²¿©, ´Ù¸¥ ÇÁ·Î¼¼½º¿¡°Ô Á¦ÇÑµÈ Á¢±Ù¸¸À» Çã¿ëÇϰųª ¾Æ¿¹ Á¢±ÙÀ» ¸øÇϵµ·Ï ¸¸µé¾î ÁÝ´Ï´Ù.
Àá±Ý ÆÄÀÏÀº ¿©·¯ »ç¿ëÀÚ¿¡ ÀÇÇØ ½Ã½ºÅÛ ¸ÞÀÏ Æú´õ°¡ µ¿½Ã¿¡ º¯°æµÇ´Â °ÍÀ» ¸·¾ÆÁÖ°í, ¸ðµ© Æ÷Æ®°¡ »ç¿ëÁßÀ̶ó´Â °ÍÀ» ¾Ë·ÁÁÖ¸ç, ³Ý½ºÄÉÀÌÇÁ°¡ ij½¬¸¦ »ç¿ëÁßÀ̶ó´Â °ÍÀ» º¸¿©Áִµ¥ ¾²ÀÏ ¼ö ÀÖ½À´Ï´Ù. ½ºÅ©¸³Æ®¿¡¼ ƯÁ¤ ÇÁ·Î¼¼½º°¡ ¸¸µé¾î ³õÀº Àá±Ý ÆÄÀÏÀÌ ÀÖ´ÂÁö È®ÀÎÇØ¼ ±× ÇÁ·Î¼¼½º°¡ ÀÌ¹Ì ¶° ÀÖ´ÂÁö ¾Ë¾Æ³¾ ¼öµµ ÀÖ½À´Ï´Ù. ¸¸¾à¿¡ ½ºÅ©¸³Æ®¿¡¼ ÀÌ¹Ì Á¸ÀçÇÏ´Â Àá±Ý ÆÄÀÏÀ» ´Ù½Ã ¸¸µé·Á°í ÇÑ´Ù¸é ±× ½ºÅ©¸³Æ®´Â ¸ØÃç ¹ö¸± ¼öµµ ÀÖÀ¸´Ï Á¶½ÉÇϱ⠹ٶø´Ï´Ù.
º¸ÅëÀÇ ¾îÇø®ÄÉÀ̼ǵéÀº Àá±Ý ÆÄÀÏÀ» ¸¸µé°í üũÇÏ´Â ±âº» µð·ºÅ丮¸¦ /var/lock À¸·Î »ï½À´Ï´Ù. ´ÙÀ½ ½ºÅ©¸³Æ®Ã³·³ ÇØ¼ Àá±Ý ÆÄÀÏÀÌ ÀÖ´ÂÁö ¾ø´ÂÁö¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
appname=xyzip # "xyzip" ¾îÇø®ÄÉÀ̼ÇÀº "/var/lock/xyzip.lock" ¶õ Àá±Ý ÆÄÀÏÀ» ¸¸µì´Ï´Ù. if [ -e "/var/lock/$appname.lock ] then ... |
ºí·° µð¹ÙÀ̽º³ª ¹®ÀÚ µð¹ÙÀ̽º ÆÄÀÏÀ» ¸¸µé¾î ÁÝ´Ï´Ù(¿¹¸¦ µé¸é Çϵå¿þ¾î¸¦ »õ·Î ¼³Ä¡ÇÒ °æ¿ì¿¡ ÇÊ¿äÇϰÚÁÒ?).
ƯÁ¤ ±â°£µ¿¾È Á¢±ÙÀÌ ¾ø´Â ÆÄÀÏÀ» ÀÚµ¿À¸·Î Áö¿öÁÝ´Ï´Ù. º¸ÅëÀº ¿À·¡µÈ ·Î±× ÆÄÀÏÀ» Áö¿ì±â À§ÇØ crond¿¡ °É¾î ³õ°í ¾¹´Ï´Ù.
µð¹ÙÀ̽º ÆÄÀÏÀ» ¸¸µé¾î ÁÖ´Â À¯Æ¿¸®Æ¼·Î¼, ·çÆ®·Î ½ÇÇà½ÃÄÑ¾ß ÇÕ´Ï´Ù. ÀÌ ¸í·É¾î´Â /dev µð·ºÅ丮¿¡ ÀÖ½À´Ï´Ù.
root# ./MAKEDEV |
dump ¸í·É¾î´Â º¹ÀâÇÑ ÆÄÀÏ ½Ã½ºÅÛ ¹é¾÷ À¯Æ¿¸®Æ¼·Î¼ º¸ÅëÀº ±Ô¸ð°¡ Å« ¼³Ä¡¿Í ³×Æ®¿öÅ©¿¡¼ ¾²ÀÔ´Ï´Ù. [5] µð½ºÅ© ÆÄƼ¼ÇÀ» ÀÖ´Â ±×´ë·Î(raw) ÀÐ°í ¹ÙÀ̳ʸ® ÇüÅ·Π¹é¾÷ ÆÄÀÏÀ» ¸¸µé¾î ³À´Ï´Ù. ¹é¾÷ µÇ´Â ÆÄÀϵéÀº µð½ºÅ©³ª Å×ÀÔ µå¶óÀ̺갰Àº ´Ù¾çÇÑ ÀúÀå ¹Ìµð¾î·Î ÀúÀåµË´Ï´Ù. restore ¸í·É¾î´Â dump·Î ¹é¾÷µÈ ÆÄÀϵéÀ» º¹±¸½ÃÄÑ ÁÝ´Ï´Ù.
Ç÷ÎÇÇ µð½ºÅ©¿¡ ´ëÇØ¼ ·Î¿ì·¹º§ Æ÷¸ËÀ» ÇØ ÁÝ´Ï´Ù.
½Ã½ºÅÛ ¸®¼Ò½º¿¡ ´ëÇØ¼ ÃÖ´ë ÇѰè(upper limit)¸¦ ÁöÁ¤ÇØ ÁÝ´Ï´Ù. º¸Åë -f ¿É¼ÇÀ» ½á¼ ½©ÀÌ ¸¸µé ¼ö ÀÖ´Â ÆÄÀÏ Å©±â¸¦ Á¦ÇÑ ½Ãŵ´Ï´Ù(ulimit -f 1000 À̶ó°í ÇÏ¸é ÆÄÀÏ Å©±â¸¦ 1 ¸Þ°¡·Î Àâ¾Æ ÁÝ´Ï´Ù). -t ¿É¼ÇÀº ÄÚ¾î´ýÇÁ ÆÄÀÏÀÇ Å©±â¸¦ Á¦ÇÑ ½Ãŵ´Ï´Ù(ulimit -c 0 À̶ó°í Çϸé ÄÚ¾î´ýÇÁ¸¦ »ý¼º½ÃŰÁö ¾Ê½À´Ï´Ù). ulimit °ªÀº º¸Åë, /etc/profileÀ̳ª ~/.bash_profile¿¡¼ ÁöÁ¤ÇØ ÁÝ´Ï´Ù(27Àå Âü°í).
»ç¿ëÀÚ(User) ÆÄÀÏ »ý¼º ¸¶½ºÅ©(MASK). »ç¿ëÀÚ °¢ÀÚÀÇ ±âº» ÆÄÀÏ ¼Ó¼ºÀ» Á¦ÇÑÇØ ÁÝ´Ï´Ù. »ç¿ëÀÚ°¡ »ý¼ºÇÏ´Â ¸ðµç ÆÄÀÏÀº umask·Î ÁöÁ¤µÈ ¼Ó¼ºÀÇ ¿µÇâÀ» ¹Þ½À´Ï´Ù. umask·Î ³Ñ°ÜÁØ °ªÀº ÇØ´ç ÆÄÀÏ ¼ÒÀ¯±ÇÀ» ²¨¹ö¸³´Ï´Ù. ¿¹¸¦ µé¾î, umask 022 ´Â »õ·Î ¸¸µé¾î Áö´Â ÆÄÀÏÀÌ ÃÖ¼ÒÇÑ 755 ¼ÒÀ¯±ÇÀ» °®µµ·Ï ÇØ ÁÝ´Ï´Ù(777 NAND 022). [6] »ç¿ëÀÚ´Â ´ç¿¬È÷ ³ªÁß¿¡ ±× ÆÄÀÏÀÇ ¼Ó¼ºÀ» chmod·Î ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. º¸Åë umask °ªÀ» ¼³Á¤ÇÒ ¶§´Â /etc/profileÀ̳ª ~/.bash_profile¿¡¼ ÇÕ´Ï´Ù(27Àå Âü°í).
·çÆ® µð¹ÙÀ̽º, ½º¿Ò ¿µ¿ª, ºñµð¿À ¸ðµå¿¡ ´ëÇÑ Á¤º¸¸¦ ¾ò°Å³ª º¯°æ. rdevÀÇ ±â´ÉÀº lilo·Î ³Ñ¾î°¬Áö¸¸ ¾ÆÁ÷ ·¥ µð½ºÅ©¸¦ ¼³Á¤ÇÒ ¶§´Â À¯¿ëÇÕ´Ï´Ù. ¿ª½Ã À߸ø ¾²¸é À§ÇèÇÑ ¸í·É¾îÀÔ´Ï´Ù.
¼³Ä¡µÈ Ä¿³Î ¸ðµâÀ» º¸¿©ÁÝ´Ï´Ù.
bash$ lsmod Module Size Used by autofs 9456 2 (autoclean) opl3 11376 0 serial_cs 5456 0 (unused) sb 34752 0 uart401 6384 0 [sb] sound 58368 0 [opl3 sb uart401] soundlow 464 0 [sound] soundcore 2800 6 [sb sound] ds 6448 2 [serial_cs] i82365 22928 2 pcmcia_core 45984 0 [serial_cs ds i82365] |
Ä¿³Î ¸ðµâÀ» °Á¦·Î ¿Ã¸³´Ï´Ù. ·çÆ®·Î ½ÇÇàÇØ¾ß ÇÕ´Ï´Ù.
º¸Åë ½Ã½ºÅÛ ±¸µ¿ ½ºÅ©¸³Æ®¿¡¼ ÀÚµ¿À¸·Î ºÒ¸®´Â ¸ðµâ ·Î´õ.
¸ðµâ°£ ÀÇÁ¸ ÆÄÀÏÀ» ¸¸µé¾î ÁÝ´Ï´Ù. º¸Åë ½Ã½ºÅÛ ±¸µ¿ ½ºÅ©¸³Æ®¿¡¼ ºÒ¸³´Ï´Ù.
ÇöÀçÀÇ È¯°æ º¯¼ö, ȤÀº ±× °ªÀ» ¹Ù²ã ÇÁ·Î±×·¥À̳ª ½ºÅ©¸³Æ®¸¦ ½ÇÇà ½Ãŵ´Ï´Ù(½Ã½ºÅÛ Àüü ȯ°æÀº °Çµå¸®Áö ¾Ê½À´Ï´Ù). [varname=xxx] ¿É¼ÇÀ» ÁÖ¸é ½ºÅ©¸³Æ®°¡ ½ÇÇàµÉ µ¿¾È¿¡¸¸ ȯ°æ º¯¼ö varnameÀÇ °ªÀ» ¹Ù²ãÁÝ´Ï´Ù. ¾Æ¹« ¿É¼Çµµ ¾È ÁÖ¸é ÇöÀç ¼¼ÆÃµÇ¾î ÀÖ´Â ¸ðµç ȯ°æ º¯¼ö¸¦ º¸¿©ÁÝ´Ï´Ù.
Âü°í: Bash³ª º»½©¿¡¼ ÆÄ»ýµÈ ´Ù¸¥ ½©µé¿¡¼´Â ´ÜÀÏ ¸í·É¾î ȯ°æ¿¡¼ º¯¼ö¸¦ ¼³Á¤ÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.
var1=value1 var2=value2 commandXXX # 'commandXXX' ÀÇ È¯°æ¿¡¼¸¸ $var1 °ú $var2 ¸¦ ¼³Á¤.
ÀÛÀº Á¤º¸: ½ºÅ©¸³Æ®ÀÇ Ã¹¹øÂ° ÁÙ("#!"°¡ ÀÖ´Â ÁÙ)¿¡ env¸¦ ½á¼ °æ·Î¸¦ ¸ð¸£´Â ½©À̳ª ¸í·É¾î ÇØ¼®±â¸¦ ÁöÁ¤ÇØ ÁÙ ¼öµµ ÀÖ½À´Ï´Ù.
#! /usr/bin/env perl print "ÆÞÀÌ ¾îµð¿¡ ÀÖ´ÂÁö ¸ô¶óµµ\n"; print "ÀÌ ÆÞ ½ºÅ©¸³Æ®´Â Àß µ¿ÀÛÇÒ °ÍÀÔ´Ï´Ù.\n"; # ÆÞ ½ÇÇà ÆÄÀÏÀÌ ¿øÇÏ´Â °÷¿¡ ¾øÀ» ¼öµµ Àֱ⠶§¹®¿¡ # À̽ļº ÀÖ´Â Å©·Î½º Ç÷§Æû¿ë ½ºÅ©¸³Æ®¿¡ ¾ÆÁÖ ÁÁ½À´Ï´Ù. # Thanks, S.C.
½ÇÇà ÆÄÀÏ¿¡ ÇÊ¿äÇÑ °øÀ¯ ¶óÀ̺귯¸®¸¦ º¸¿©ÁÝ´Ï´Ù.
bash$ ldd /bin/ls libc.so.6 => /lib/libc.so.6 (0x4000c000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000) |
½ÇÇà °¡´ÉÇÑ ¹ÙÀ̳ʸ® ÆÄÀÏ¿¡¼ µð¹ö±ë¿ë ½Éº¼¸¯ ÂüÁ¶ Á¤º¸¸¦ Á¦°ÅÇØ ÁÝ´Ï´Ù. ÀÌ ¸í·É¾î¸¦ ¾²¸é ½ÇÇà ÆÄÀÏÀÇ Å©±â´Â ÀÛ¾ÆÁöÁö¸¸ µð¹ö±ëÀº ÇÒ ¼ö°¡ ¾ø½À´Ï´Ù.
ÁÖ·Î Makefile¿¡¼³ª ³ª¿À°í ½© ½ºÅ©¸³Æ®¿¡¼´Â Àß ¾²ÀÌÁö ¾Ê½À´Ï´Ù.
strip µÇÁö ¾ÊÀº ÄÄÆÄÀÏµÈ ¹ÙÀ̳ʸ®¿¡ µé¾î ÀÖ´Â ½Éº¼µéÀ» º¸¿©ÁÝ´Ï´Ù.
¸®¸ðÆ® ºÐ»ê Ŭ¶óÀ̾ðÆ®: ¸®¸ðÆ® ¼¹ö¿¡ ÀÖ´Â ÆÄÀÏ ½Ã½ºÅÛÀ¸·Î µ¿±âÈ, º¹»ç, ¹é¾÷À» ÇØ ÁÝ´Ï´Ù.
Áö±Ý±îÁö ¹è¿î °ü¸®ÀÚ¿ë ¸í·É¾îµé¿¡ ´ëÇÑ Áö½ÄÀ» °¡Áö°í ½Ã½ºÅÛ ½ºÅ©¸³Æ®¸¦ »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù. killallÀº ½Ã½ºÅÛ ¼Ë´Ù¿î½Ã¿¡, µ¹°í ÀÖ´Â ÇÁ·Î¼¼½º¸¦ ¸ØÃß°Ô ÇØ ÁÖ´Â ÇÁ·Î¼¼½º·Î¼, ªÀ¸¸é¼µµ ÀÌÇØÇϱ⠽¬¿î ½ºÅ©¸³Æ®ÁßÀÇ ÇϳªÀÔ´Ï´Ù.
¿¹ 13-8. killall, /etc/rc .d/init.d ¿¡¼ Àοë
#!/bin/sh # --> "# -->" Ç¥½Ã´Â º» ¹®¼ÀÇ ÀúÀÚ°¡ ºÙÀÎ ÁÖ¼®ÀÔ´Ï´Ù. # --> ¿©±â¼ ¼Ò°³ÇÏ´Â ºÎºÐÀº # --> Miquel van Smoorenburg(<miquels@drinkel.nl.mugnet.org>)ÀÇ # --> 'rc' ½ºÅ©¸³Æ® ÆÐŰÁöÁßÀÇ ÀϺÎÀÔ´Ï´Ù. # --> ÀÌ ½ºÅ©¸³Æ®´Â ·¹µåÇÞ Àü¿ë ½ºÅ©¸³Æ®ÀÎ °Íó·³ º¸À̱⠶§¹®¿¡ # --> ´Ù¸¥ ¹èÆ÷ÆÇ¿¡´Â ¾øÀ» ¼öµµ ÀÖ½À´Ï´Ù. # ¾²ÀÌÁö ¾ÊÀ¸¸é¼ ½ÇÇàÁßÀÎ ¸ðµç ¼ºñ½º¸¦ Á×ÀÔ´Ï´Ù(½ÇÁ¦·Î ½ÇÇàÁßÀÎÁö¸¦ # È®½ÇÈ÷ È®ÀÎÇϱ⠶§¹®¿¡ ¾Æ¹« ¼ºñ½ºµµ ¾È Á×ÀÏ ¼ö ÀÖ½À´Ï´Ù). for i in /var/lock/subsys/*; do # --> Ç¥ÁØ for/in ·çÇÁÀ̳ª "do" °¡ °°Àº ÁÙ¿¡ Àֱ⠶§¹®¿¡ # --> ";" ¸¦ ºÙ¿©Áà¾ß µË´Ï´Ù. # ½ºÅ©¸³Æ®°¡ ½ÇÁ¦·Î ÀÖ´ÂÁö È®ÀÎ. [ ! -f $i ] && continue # --> "and list"¸¦ ¾ÆÁÖ Àß ½è½À´Ï´Ù. ´ÙÀ½Ã³·³ ÇØµµ ¶È°°½À´Ï´Ù. # --> if [ ! -f "$i" ]; then continue # ¼ºê½Ã½ºÅÛ À̸§À» ¾Ë¾Æ³À´Ï´Ù. subsys=${i#/var/lock/subsys/} # --> º¯¼ö À̸§ ¸ÅĪÀε¥ ¿©±â¼´Â ÆÄÀÏ À̸§ÀÌ µÇ°ÚÁÒ. # --> subsys=`basename $i` ¿Í ¿ÏÀüÈ÷ ¶È°°Àº Ç¥ÇöÀÔ´Ï´Ù. # --> Àá±Ý ÆÄÀÏÀÇ À̸§À» ¾Ë¾Æ³»´Âµ¥, Àá±Ý ÆÄÀÏÀÌ ÀÖ´Ù¸é # --> ÇØ´ç ÇÁ·Î¼¼½º°¡ ½ÇÇàÁßÀ̶ó´Â Áõ°ÅÀÔ´Ï´Ù. # --> ¾Õ¿¡¼ ¼³¸íÇß´ø "lockfile" À» Âü°íÇϼ¼¿ä. # ±× ¼ºê½Ã½ºÅÛÀ» ³»¸³´Ï´Ù. if [ -f /etc/rc.d/init.d/$subsys.init ]; then /etc/rc.d/init.d/$subsys.init stop else /etc/rc.d/init.d/$subsys stop # --> ½© ³»Àå¸í·ÉÀÎ 'stop'À» ½á¼ µ¹°í ÀÖ´Â ÀÛ¾÷°ú µ¥¸óÀ» ÁßÁö½Ãŵ´Ï´Ù. fi done |
º°·Î ¾î·Á¿ö º¸ÀÌÁö ¾Ê½À´Ï´Ù. º¯¼ö ¸ÅĪ¿¡ ´ëÇÑ ºÎºÐ¸¸ »©°í ¾Õ¿¡¼ ´Ù ¹è¿î °ÍµéÀÔ´Ï´Ù.
¿¬½À¹®Á¦ 1. /etc/rc.d/init.d ¿¡ ÀÖ´Â halt ½ºÅ©¸³Æ®¸¦ ºÐ¼®ÇØ º¸¼¼¿ä. killallº¸´Ù ¾à°£ ´õ ±æÁö¸¸ °³³äÀº °°½À´Ï´Ù. ÀÚ½ÅÀÇ È¨ µð·ºÅ丮 ¾îµðÂë¿¡ º¹»çÇØ ³õ°í ÀÌ°Í Àú°Í ½ÇÇèÇØ º¸¼¼¿ä.(·çÆ®·Î ½ÇÇà½ÃŰ¸é ¾È µË´Ï´Ù). -vn ¿É¼ÇÀ» ½á¼ °¡»ó ¸ðµå·Î ½ÇÇà½ÃÄÑ º¸¼¼¿ä(sh -vn scriptname). ÁÖ¼®À» ²Ä²ÄÇÏ°Ô ´Þ¾Æ º¸¼¼¿ä. "action" ¸í·É¾î¸¦ "echo" ¸í·É¾î·Î ¹Ù²ã º¸¼¼¿ä.
¿¬½À¹®Á¦ 2. ÀÚ ÀÌÁ¦, /etc/rc.d/init.d ¿¡¼ ´õ º¹ÀâÇÑ ½ºÅ©¸³Æ®µéÀ» »ìÆì º¸¼¼¿ä. °Å±â¿¡ ÀÖ´Â ½ºÅ©¸³Æ®µéÀ» ÀÌÇØÇÒ ¼ö ÀÖ³ª¿ä? ¹æ±Ý À§¿¡¼ Çß´ø ¹æ¹ýÀ» ½á¼ ºÐ¼®ÇØ º¸¼¼¿ä. "initscripts" ¹®¼ÀÇ ÀϺκÐÀÎ /usr/share/doc/initscripts-?.?? ¿¡ ÀÖ´Â sysvinitfilesÀ» ºÐ¼®Çؼ ÅëÂû·ÂÀ» ±â¸£¼¼¿ä.
[1] | µð½ºÅ© ÄõŸ°¡ °É·Á ÀÖ´Â ¸®´ª½º ¸Ó½ÅÀ̳ª À¯´Ð½º ½Ã½ºÅÛÀÎ °æ¿ì¿¡ Àû¿ëµË´Ï´Ù. |
[2] | userdelÀº Áö¿ï »ç¿ëÀÚ°¡ ·Î±×ÀÎÁßÀÏ ¶§´Â ½ÇÆÐÇÕ´Ï´Ù. |
[3] | CDR ±Á±â¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â Alex Wither °¡ ¸®´ª½º Àú³Î(Linux Journal)¿¡ 1999³â 10¿ù¿¡ ¾´ CD ¸¸µé±â(Creating CDs) ±â»ç¸¦ ÀÐ¾î º¸±â ¹Ù¶ø´Ï´Ù. |
[4] | mke2fs¿¡ -c ¿É¼ÇÀ» Á൵ ¹èµå ºí·°À» Ã¼Å©ÇØ ÁÝ´Ï´Ù. |
[5] | ´ÜÀÏ »ç¿ëÀÚ ¸®´ª½º ½Ã½ºÅÛÀº ÀϹÝÀûÀ¸·Î taró·³ °£´ÜÇÑ ¸í·É¾î·Î ¹é¾÷À» ÇÕ´Ï´Ù. |
[6] | NAND´Â "not-and" ³í¸® ¿¬»êÀÚ ÀÔ´Ï´Ù. »©±â ¿¬»ê°ú ºñ½ÁÇÑ °³³äÀ¸·Î º¸¸é µË´Ï´Ù. |