[Áöµð³ÝÄÚ¸®¾Æ]Áö³ È£¿¡ À̾î À̹ø È£¿¡¼´Â ¸®´ª½º¸¦ ¼³Ä¡ ÇÑ ´ÙÀ½ ¼÷ÁöÇØ¾ß ÇÒ ¸®´ª½º ½Ã½ºÅÛÀÇ Æ¯¼ºÀ» »ìÆìº¸±â·Î ÇÑ´Ù. ÇÊÀÚ °³ÀÎÀûÀÎ °æÇèÀ¸·Î´Â ¸®´ª½º ½Ã½ºÅÛÀÇ ¿©·¯ ÅäÇȵé Áß¿¡¼ ¸®´ª½º¸¦ ¸¹ÀÌ ½á º¸Áö ¾ÊÀº »ç¶÷µéÀÌ Á¶±Ý ´çȤÇÒ ¼ö ÀÖ´Â ºÎºÐÀÌ ¸®´ª½ºÀÇ º¸¾È ½Ã½ºÅÛÀ̶ó°í »ý°¢ÇÑ´Ù. ½ÇÁ¦, À©µµ¿ì´Â ÃÖ±Ù À©µµ¿ì 2000, XP¿¡ ¿Í¼¾ß ¸ÖƼÀ¯ÀúÀÇ °³³äÀÌ Á¦´ë·Î Á¤ÂøµÇ¾î ³ª°¡°í ÀÖ´Â ¼ÀÀÌÁö¸¸ ¸®´ª½º´Â ¾ÖÃʺÎÅÍ ¸ÖƼÀ¯ÀúÀÇ °³³ä¿¡¼ ¼³°è°¡ µÇ¾ú°í ¶Ç ±×·¸°Ô ¿î¿µµÇ´Â ½Ã½ºÅÛÀÌ´Ù.
¸ÖƼÀ¯Àú ¿î¿µÃ¼Á¦¿¡¼´Â ÀÚ¿¬½º·´°Ô »ç¿ëÀÚ°£ÀÇ ÆÄÀÏ Á¢±Ù ±ÇÇÑÀ̶óµç°¡ º¸¾È ¹®Á¦°¡ ºÎ»óÇÏ°Ô µÈ´Ù. ´ëºÎºÐÀÇ ¸®´ª½º »ç¿ëÀÚµéÀÌ Ã³À½¿¡´Â À©µµ¿ì¸¦ ¾²´Â °æ¿ì°¡ ¸¹Àº ±î´ß¿¡ ¸ÖƼÀ¯Àú ½Ã½ºÅÛÀº ³¸¼³°Ô ´À²¸Áú ¼ö¹Û¿¡ ¾øÀ¸¸ç À¥ ¼¹ö ÇÁ·Î±×·¡¹ÖÀÌ ¸¹Àº ¿äÁîÀ½ÀÇ Æ¯¼º»ó º¸¾ÈÀÇ ±âÃʰ¡ µÇ´Â ¸®´ª½ºÀÇ ÆÄÀÏ Á¢±Ù ±ÇÇÑ(permission)°ú ¼ÒÀ¯±Ç(ownership)¿¡ ´ëÇÑ Áö½ÄÀº ´Ü´ÜÈ÷ ´ÙÁ®³õ°í ³Ñ¾î°¡µµ·Ï ÇÏÀÚ.
ÆÄÀÏ Á¢±Ù ±ÇÇѰú ¼ÒÀ¯±Ç
À¯´Ð½ºÀÇ ½ÉÇÃÇÑ ¼³°è öÇÐÀº ÆÄÀÏ ¼ÒÀ¯±Ç¿¡µµ ¹Ý¿µµÇ¾î Àִµ¥ ¿ì¼± À¯´Ð½ºÀÇ ÆÄÀÏÀº Àбâ(read), ¾²±â(write), ½ÇÇàÇϱâ(execute) ¼¼ °¡ÁöÀÇ ±â´ÉÀ» ¼öÇàÇÒ ¼ö ÀÖ´Ù. ¿©±â¼ Àá±ñ ÁÖÀÇÇÒ °ÍÀº cd ¸í·ÉÀ¸·Î µð·ºÅ丮¸¦ ¹Ù²Ù¾î µé¾î°¥ ¼ö ÀÖ´Â ±ÇÇÑÀº ½ÇÇàÇϱ⿡ ÇØ´çÇÑ´Ù´Â °ÍÀÌ´Ù.
À¯´Ð½º ÂÊÀÇ ÆÄÀÏ ¼ÒÀ¯±ÇÀº ¿ì¼± »ç¿ëÀÚ(user), ±×·ì(group), ±×¸®°í ±× ¿ÜÀÇ »ç¶÷µé(others)ÀÇ °üÁ¡À¸·Î ³ª´©¾îÁø´Ù. Áï, ÆÄÀÏ Çϳª¿¡ ´ëÇØ¼ »ç¿ëÀÚ, ±×·ì, ±×¸®°í ±× ¿ÜÀÇ »ç¶÷µéÀº °¢±â ´Ù¸¥ Á¢±Ù ±ÇÇÑÀ» °¡Áú ¼ö ÀÖµµ·Ï ¼³°èµÇ¾î ÀÖ´Ù. ´ÙÀ½À» º¸ÀÚ.
r w x r w x r w x
4 2 1 4 2 1 4 2 1 (2^2, 2^1, 2^0)
O O O | O O O | O O O
user group others
À¯´Ð½ºÀÇ ÆÄÀÏ ¼ÒÀ¯±ÇÀº ÀÌ¿Í °°ÀÌ °£´ÜÈ÷ µµ½ÄÈ ÇØ º¼ ¼ö ÀÖ´Ù. »ç¿ëÀÚ, ±×·ì, ±× ¿ÜÀÇ »ç¶÷µé¸¶´Ù 3ºñÆ®·Î °¢°¢ read, write, executeÀÇ ½ºÀ§Ä¡¸¦ on/off ÇÒ ¼ö ÀÖ´Ù. 3ºñÆ®´Â ¼ýÀڷΠǥÇöÇØº¸¸é 0¿¡¼ 7±îÁöÀÇ ¼ýÀÚ·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, ¾î¶² ÆÄÀÏÀÇ ¼ÒÀ¯±ÇÀÚ¿¡°Ô Àбâ¿Í ¾²±â ±ÇÇÑÀ» ÁÖ°í ½ÍÀ¸¸é r ½ºÀ§Ä¡¿Í w ½ºÀ§Ä¡¸¦ ¿Ã¸®¸é µÇ´Ï À̰ÍÀ» ¼ýÀڷΠǥÇöÇØº¸¸é 4+2+0=6ÀÌ µÈ´Ù. ¸¶Âù°¡Áö·Î Àбâ¿Í ½ÇÇà ±ÇÇѸ¸ ÁÖ°í ½Í´Ù¸é r ½ºÀ§Ä¡¿Í x ½ºÀ§Ä¡¸¦ ¿Ã·Á¼ 4+0+1=5°¡ µÈ´Ù. ÀÌ·± ¹æ½ÄÀ¸·Î À¯´Ð½ºÀÇ chmod ¸í·É¿¡¼´Â ¼ýÀÚ¸¦ ÀÌ¿ë, ÆÄÀÏÀÇ ÆÛ¹Ì¼ÇÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹¸¦ º¸¸é¼ Á» ´õ ÀÚ¼¼È÷ »ìÆìº¸ÀÚ.
$ ls -l foobar.txt
-rw-rw---- 1 mewmew mewmew 500 6¿ù 8 23:00 foobar.txt
$ chmod 640 foobar.txt
$ ls -l foobar.txt
-rw-r----- 1 mewmew mewmew 500 6¿ù 8 23:00 foobar.txt
Á» ´õ ÆÛ¹Ì¼ÇÀÇ ¼ýÀÚ Ç¥Çö¿¡ Ä£¼÷ÇØ Áö±â À§ÇØ Çѹø 8°¡Áö ÆÛ¹Ì¼ÇÀÇ °æ¿ì¸¦ ´Ù Àû¾îº¸¸é ´ÙÀ½°ú °°´Ù. Á¶±Ý ±ÍÂú¾Æ º¸¿©µµ Çѹø ¼Õ°¡¶ôÀ¸·Î Á÷Á¢ ²Å¾Æ°¡¸ç È®ÀÎÇØ º¸ÀÚ.
--- 0 --x 1
-w- 2 -wx 3
r-- 4 r-x 5
rw- 6 rwx 7
ÆÄÀÏ ¼ÒÀ¯±ÇÀÌ ¼³Á¤µÇ´Â °úÁ¤
ÀÌÁ¦ À¯´Ð½º¿¡¼ ÆÄÀÏ ¼ÒÀ¯±ÇÀÌ ¾î¶»°Ô °áÁ¤µÇ´ÂÁö ¾Ë¾Æº¸ÀÚ. À¯´Ð½º¿¡¼ ÆÄÀÏ ¼ÒÀ¯±ÇÀº ¿øÄ¢ÀûÀ¸·Î ±× ÆÄÀÏÀ» ¡®»ý¼ºÇÑ¡¯ À¯Àú°¡ °®°Ô µÈ´Ù. Áï, mewmew¶ó´Â À¯Àú°¡ foobar.txt¶ó´Â ÆÄÀÏÀ» Çϳª ¸¸µé¾ú´Ù°í °¡Á¤ÇÏÀÚ. À¯´Ð½º ½Ã½ºÅÛÀº µðÆúÆ®·Î »õ·ÎÀÌ »ý¼ºµÇ´Â foobar.txtÀÇ ¼ÒÀ¯ÀÚ¸¦ ÆÄÀÏÀ» »ý¼ºÇÑ mewmew·Î ¼³Á¤ÇÏ°Ô µÈ´Ù.
±× ´ÙÀ½À¸·Î À¯´Ð½º ½Ã½ºÅÛÀº foobar.txtÀÇ ±×·ì ¼ÒÀ¯±ÇÀ» °áÁ¤ÇÏ°Ô µÇ´Âµ¥ À̸¦ À§ÇØ mewmew¶ó´Â À¯Àú°¡ ¾î¶² ±×·ì¿¡ ¼ÓÇØ ÀÖ´ÂÁö¸¦ /etc/passwdÀÇ ÆÐ½º¿öµå ¿£Æ®¸®¸¦ º¸°í °áÁ¤ÇÏ°Ô µÈ´Ù. /etc/passwd¿¡ mewmew À¯Àú´Â ´ÙÀ½°ú °°ÀÌ µî·ÏµÇ¾î ÀÖ´Ù.
mewmew:x:1012:1012:,,,:/home/mewmew:/bin/bash
Ȥ /etc/passwdÀÇ ¹®¹ýÀ» Àß ¸ð¸£´Â »ç¶÷Àº ¹Ú½º ±â»ç¸¦ Âü°íÇØ¼ passwdÀÇ ¸Å´º¾ó ÆäÀÌÁö¸¦ Àá±ñ ÀоÀÚ. ¿©±â¼ mewmewÀº µðÆúÆ®·Î 1012ÀÇ uid¸¦ °¡Áö°í 1012ÀÇ gid¸¦ °¡ÁüÀ» ¾Ë ¼ö ÀÖ´Ù. ±×·¸´Ù¸é ÀÌÁ¦ /etc/group¸¦ Àá±ñ º¸ÀÚ.
mewmew:x:1012:
µû¶ó¼ mewmewÀÌ »ý¼ºÇÑ foobar.txtÀÇ ±×·ì ¼ÒÀ¯±ÇÀÚÀÇ µðÆúÆ®´Â 1012ÀÇ gid¸¦ °®´Â mewmew ±×·ìÀÌ µÈ´Ù. ±×·¸´Ù¸é ÀÌ foobar.txtÀÇ ±âº» Àбâ/¾²±â/½ÇÇà ÆÛ¹Ì¼ÇÀº ¾î¶»°Ô Á¤ÇØÁú±î? À¯´Ð½º¿¡¼´Â umask¸¦ ÀÌ¿ëÇØ¼ »ý¼ºµÇ´Â ÆÄÀÏÀÇ ±âº» ÆÛ¹Ì¼ÇÀÌ Á¤ÇØÁø´Ù. umask´Â masking, Áï »©±â ¹æ½ÄÀ¸·Î ÆÄÀÏ ÆÛ¹Ì¼ÇÀ» Á¤Çϴµ¥ º¸Åë 022¸¦ umask °ªÀ¸·Î ¸¹ÀÌ ¾´´Ù. /etc/profileÀÇ ½© ¼³Á¤À» º¸¸é º¸Åë ´ÙÀ½°ú °°Àº ¸í·É¾î¸¦ º¼ ¼ö ÀÖ´Ù.
umask 022
ÀÌ ¸í·ÉÀÌ ½ÇÇàµÇ¸é ÀÏ¹Ý ÆÄÀÏÀº 666(rw-rw-rw)ÀÇ ÆÛ¹Ì¼Ç¿¡¼ umaskÀÇ 022¸¦ »« 644(rw-r--r--)ÀÇ µðÆúÆ® ÆÛ¹Ì¼ÇÀ» °®°Ô µÇ°í µð·ºÅ丮ÀÇ °æ¿ì´Â 777(rwxrwxrwx)ÀÇ ÆÛ¹Ì¼Ç¿¡¼ umaskÀÇ 022¸¦ »« 755(rwxr-xr-x)¸¦ °®°Ô µÈ´Ù.
setuid, setgid, sticky bit
setuid´Â À¯´Ð½º¿¡¼ º¼ ¼ö Àִ ƯÀÌÇÑ ÆÄÀÏ º¸¾È °³³äÀÌ´Ù. ÀϹÝÀûÀ¸·Î ½ÇÇà °¡´ÉÇÑ À¯´Ð½º ÆÄÀÏÀ» ½ÇÇàÇÒ ¶§ À¯´Ð½º¿¡¼´Â ±× ¸í·ÉÀ» ³»¸° À¯ÀúÀÇ ±ÇÇÑ¿¡ µû¶ó ½ÇÇàÇÏ°Ô µÈ´Ù. ¿¹¸¦ µé¾î mewmew À¯Àú°¡ ´ÙÀ½°ú °°Àº ÆÛ¹Ì¼ÇÀÇ /bin/ls ¸í·ÉÀ» ½ÇÇà½Ã۸é mewmew À¯Àú´Â root À¯Àúµµ ¾Æ´Ï°í, wheel ±×·ì¿¡ ¼ÓÇØ ÀÖÁöµµ ¾ÊÁö¸¸ others ÆÛ¹Ì¼Ç¿¡ ¸í½ÃµÈ r-x ±ÇÇÑ Áß¿¡¼ x ±ÇÇÑÀÌ Çã°¡µÇ¾î ÀÖ´Â ±î´ß¿¡ À¯´Ð½º ½Ã½ºÅÛÀº mewmew À¯ÀúÀÇ /bin/ls ¸í·É ½ÇÇàÀ» Çã°¡ÇØ ÁÖ°Ô µÈ´Ù.
-r-xr-xr-x 1 root wheel 32464 28 May 01:43 /bin/ls
±×·±µ¥ setuid ¿É¼ÇÀÌ ÄÑÁø ÆÄÀÏÀº ½ÇÇàµÉ ¶§, ¿¹¸¦ µé¾î ¾ÕÀÇ °æ¿ì /bin/ls ¸í·É¿¡ setuid°¡ ÄÑÁ® ÀÖ´Ù¸é mewmew À¯Àú°¡ ¸í·ÉÀ» ½ÇÇàÇß´õ¶óµµ À¯´Ð½º ½Ã½ºÅÛÀº /bin/ls ÆÄÀÏÀÇ ¼ÒÀ¯ÀÚÀÎ root À¯Àú°¡ ¸í·ÉÀ» ½ÇÇàÇÑ °ÍÀ¸·Î °£ÁÖÇØ¼ /bin/ls ¸í·ÉÀ» ½ÇÇàÇÑ´Ù. Áï, /bin/ls ¸í·ÉÀÌ mewmew°¡ ¾Æ´Ñ root ¼ÒÀ¯·Î ½ÇÇàµÇ´Â °ÍÀÌ´Ù. setuid¸¦ ÄÑ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù. µÎ ¸í·É ¸ðµÎ µ¿ÀÏÇÑ ¸í·ÉÀÌ´Ù. ¾Æ·¡ ¸í·ÉÀÇ °æ¿ì´Â rwxr-xr-x ÆÛ¹Ì¼ÇÀÌ 755ÀÌ°í ¾ÕÀÇ 4°¡ setuid ¿É¼ÇÀÌ´Ù.
$ chmod u+s foobar
$ chmod 4755 foobar
µÎ ¹øÂ° ¸í·ÉÀÇ °æ¿ì ¼ýÀÚ Ç¥ÇöÀÌ Á¶±Ý µ¶Æ¯Çѵ¥ Çѹø ¼½¼Ç 2ÀÇ chmodÀÇ ¸Å´º¾ó ÆäÀÌÁöÀÇ ÀϺκÐÀ» ÀοëÇØ º¸°Ú´Ù. ´ÙÀ½ÀÇ ¸Å´º¾ó ÆäÀÌÁö ÀοëÀ» º¸¸é À¯´Ð½ºÀÇ ÆÄÀÏ¿¡´Â user, group, othersÀ̿ܿ¡ µðÆúÆ®·Î »ý·«µÇ¾î ÀÖ´Â 3 ºñƮ¥¸® setuid, setgid, sticky bit ¿É¼ÇÀÌ ÀÖÀ¸¸ç, Â÷·Ê´ë·Î 4, 2, 1ÀÇ ¼ýÀÚ·Î ³ªÅ¸³¾ ¼ö ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù.
CHMOD(2) Linux Programmer's Manual CHMOD(2)
NAME
chmod, fchmod - change permissions of a file
SYNOPSIS
#include
#include
int chmod(const char *path, mode_t mode);
int fchmod(int fildes, mode_t mode);
DESCRIPTION
The mode of the file given by path or referenced by fildes
is changed.
Modes are specified by or'ing the following:
S_ISUID 04000 set user ID on execution
S_ISGID 02000 set group ID on execution
S_ISVTX 01000 sticky bit
S_IRUSR (S_IREAD)
00400 read by owner
(ÀÌÇÏ »ý·«)
ÀÌ·± ¹æ½ÄÀº ¾îµð¿¡¼ ÀÀ¿ëÇϸé ÁÁÀ»±î? °£´ÜÇÑ ¿¹°¡ °ÔÀÓ¿¡¼ ÇÏÀÌ ½ºÄÚ¾î ¸®½ºÆ®¸¦ °ü¸®ÇÏ´Â °æ¿ì¸¦ µé¾îº¼ ¼ö ÀÖ´Ù. ÇÏÀÌ ½ºÄÚ¾î ¸®½ºÆ®´Â ÀÏ¹Ý À¯ÀúµéÀº ¸¶À½´ë·Î °íÄ¥ ¼ö ¾øµµ·Ï ÇØ¾ß ÇÏÁö¸¸ ¸·»ó ¼·Î ´Ù¸¥ À¯Àú°¡ ÇϳªÀÇ ÇÏÀÌ ½ºÄÚ¾î ¸®½ºÆ® ÆÄÀÏÀ» °øÀ¯ÇÏ´Â °ÍÀº ½±Áö ¾ÊÀº ÀÏÀÌ´Ù. foobar, doobar À¯Àú°¡ fungameÀ» ÇÏ´Â »óȲÀ» »ý°¢Çغ¸ÀÚ. fungameÀÇ ÆÄÀÏ ÆÛ¹Ì¼ÇÀº ´ÙÀ½°ú °°´Ù. fungame À¯Àú´Â fungame ½ÇÇàÆÄÀÏÀ» À§ÇØ »õ·Î ¸¸µé¾îÁø À¯ÀúÀÌ´Ù. ±×¸®°í fungame_high_score_list¸¦ ´ÙÀ½°ú °°ÀÌ ±¸¼ºÇß´Ù.
-r-sr-xr-x 1 fungame wheel 65535 28 May 08:13 /usr/local/bin/fungame
-rw-r--r-- 1 fungame fungame 38 28 May 09:00 /usr/local/etc/fungame_high_score_list
setuid°¡ ¼³Á¤µÇ¾î ÀÖÁö ¾Ê´Â °æ¿ì¶ó¸é foobar À¯Àú°¡ fungameÀ» ½ÇÇàÇϸé fungame ½ÇÇàÆÄÀÏÀº foobar À¯ÀúÀÇ ¼ÒÀ¯·Î ½ÇÇàµÇ±â ¶§¹®¿¡ fungame¿¡¼ fungame_high_score_list ÆÄÀÏÀ» ¾×¼¼½ºÇϸé others¿¡ ÇØ´çÇÏ´Â Àб⠱ÇÇѹۿ¡ ¾òÀ» ¼ö ¾ø´Ù. doobar À¯Àú ¿ª½Ã ¸¶Âù°¡Áö·Î fungameÀÌ ½ÇÇàµÉ ¶§ doobar À¯Àú°¡ others·Î ºÐ·ùµÇ´Â ¹Ù¶÷¿¡ fungame¿¡¼ ÇÏÀÌ ½ºÄÚ¾î ¸®½ºÆ® ÆÄÀÏÀ» ÀÐÀ» ¼ö¹Û¿¡ ¾ø´Â »óȲÀÌ ¹ú¾îÁø´Ù.
ÇÏÁö¸¸ fungame ½ÇÇàÆÄÀÏ¿¡ setuid¸¦ ÄÑ ÁÖ¸é »óȲÀÌ ´Þ¶óÁø´Ù. setuid°¡ ¼³Á¤µÈ fungame ½ÇÇàÆÄÀÏÀº ¾î¶² »ç¿ëÀÚ°¡ ÀÌ ¸í·ÉÀ» ½ÇÇà½Ã۵çÁö °£¿¡ fungame »ç¿ëÀÚ°¡ ¸í·ÉÀ» ½ÇÇàÇÑ °ÍÀ¸·Î °£ÁÖÇϱ⠶§¹®ÀÌ´Ù. µû¶ó¼ fungame ½ÇÇàÆÄÀÏÀº »ç¿ëÀÚ¿¡ »ó°ü¾øÀÌ fungame_high_score_list ÆÄÀÏÀ» ÀÐ°í ¾µ ¼ö ÀÖ°Ô µÈ´Ù.
ÀÌ·± setuid º¸¾È ¸ðµ¨Àº º¸Åë ÀÏ¹Ý À¯Àú°¡ ½Ã½ºÅÛ °ü·Ã ¸í·ÉÀ» ½ÇÇàÇßÀ» ¶§ ±× ¸í·ÉÀÌ Àá±ñ µ¿¾È °ü¸®ÀÚÀÎ root ±ÇÇÑÀ» ¾òÀ» Çʿ䰡 ÀÖÀ» ¶§ ¸¹ÀÌ »ç¿ëµÈ´Ù. À̰ÍÀ» º¸Åë setuid root¶ó°í ºÎ¸¥´Ù. setuid root´Â º¸¾È»óÀÇ ¹®Á¦¸¦ ÃÊ·¡Çϱ⵵ ÇÏÁö¸¸ À¯Àú¿¡ µû¶ó¼ ÄÉÀ̽º¸¦ ¸ðµÎ ±¸ºÐÇØ ÁÖ¾î¾ß ÇÏ´Â º¹ÀâÇÑ °æ¿ì¸¦ ÇÇÇÒ ¼ö ÀÖ´Ù. ¾ÕÀÇ °ÔÀÓ ÇÏÀÌ ½ºÄÚ¾î ¸®½ºÆ® ¿¹¸¦ passwd ¸í·É°ú /etc/passwd·Î ¹Ù²Ù¾î »ý°¢ÇØ º¸¸é setuid rootÀÇ À¯¿ëÇÔÀ» ½±°Ô ¾Ë ¼ö ÀÖ´Ù. Âü°í·Î /etc/passwd¿Í /usr/bin/passwdÀÇ ÆÄÀÏ ÆÛ¹Ì¼ÇÀ» »ìÆìº¸¸é ´ÙÀ½°ú °°´Ù. ¿¹»ó´ë·Î /usr/bin/passwd´Â setuid°¡ root À¯Àú·Î ¼³Á¤µÇ¾î ÀÖ°í /etc/passwd ÆÄÀÏÀº root À¯Àú°¡ Àбâ¿Í ¾²±â ±ÇÇÑÀ» °®°í ÀÖÀ½À» º¼ ¼ö ÀÖ´Ù.
-r-s--x--x 1 root root 13476 6¿ù 18 2002 /usr/bin/passwd
-rw-r--r-- 1 root root 43188 6¿ù 16 23:10 /etc/passwd
ÇÏÁö¸¸ setuid root´Â º¸¾È»óÀÇ ¹®Á¦°¡ »ý±æ ¼ö ÀÖ´Ù´Â Á¡À» Ç×»ó ¿°µÎ¿¡ µÎ°í ÀÖ¾î¾ß ÇÑ´Ù. °£´ÜÇÑ ¿¹·Î, ´©±º°¡°¡ root ±ÇÇÑÀ» ÀçÁÖ²¯ ¾òÀº ´ÙÀ½ bash Çϳª¸¦ º¹»çÇÏ°í °Å±â¿¡ setuid¸¦ ¼³Á¤ÇØ ³õÀº °æ¿ì¸¦ »ý°¢Çغ¸ÀÚ.
-rwsr-xr-x 1 root root 519964 7¿ù 9 2001 bash
ÀÌ ¼ÐÀ» ½ÇÇà½ÃŰ´Â »ç¿ëÀÚ´Â ´ç¿¬È÷ root ±ÇÇÑÀ» °®°Ô µÈ´Ù. ½ÇÁ¦, °£È¤ ¸®´ª½º ¼¹ö°¡ ÇØÅ·¿¡ ¶Õ¸®°í ³ µÚ¿¡´Â ÀÌ·¸°Ô setuid rootµÈ ¼ÐÀÌ ¸¸µé¾îÁ® ÀÖ´Â °æ¿ì°¡ ¸¹´Ù.
setgid´Â setuid ¸¸Å ÀÚÁÖ ¹ß»ýÇÏÁö´Â ¾ÊÁö¸¸ ±× ¿ø¸®´Â setuid¿Í ¸¶Âù°¡Áö·Î setgid°¡ ¼³Á¤µÈ ÆÄÀÏÀº ½ÇÇàµÉ ¶§ ±×·ì ¼ÒÀ¯ÀÚ°¡ ±× ÆÄÀÏ¿¡ ÁöÁ¤µÈ ±×·ìÀ¸·Î ¼³Á¤µÈ´Ù. setgid´Â write ¸í·É°ú °°ÀÌ Æ¯Á¤ ±×·ìÀ» ¸Å°³Ã¼·Î ¾×¼¼½º ±ÇÇÑÀ» °øÀ¯ÇÒ ¶§ »ç¿ëµÈ´Ù. write ¸í·ÉÀ» ÅëÇØ ´Ù¸¥ À¯Àú¿¡°Ô ¸Þ½ÃÁö¸¦ º¸³»´Â °æ¿ì setgid°¡ ¾ø´Â °æ¿ì´Â ´Ù¸¥ »ç¶÷ÀÇ Å͹̳Πµð¹ÙÀ̽º(/dev/tty??¿Í °°Àº)¿¡ µðÆúÆ®·Î ¾²±â¸¦ ÇÒ ¼ö ¾ø°í µû¶ó¼ ¸Þ½ÃÁö¸¦ º¸³¾ ¼ö ¾ø°Ô µÈ´Ù. ÇÏÁö¸¸, À¯ÀúµéÀÌ ¾²´Â ¸ðµç Å͹̳Πµð¹ÙÀ̽º ÆÄÀÏÀ» tty¿Í °°Àº ±×·ìÀ¸·Î ¹°í, write ÆÄÀÏ¿¡ tty ±×·ìÀ¸·Î setgid¸¦ ÇØ ³õÀ¸¸é ±×·ì ÆÛ¹Ì¼ÇÀ» ÅëÇØ¼ ´Ù¸¥ À¯ÀúÀÇ Å͹̳Πȸ鿡 ¾²±â¸¦ ÇÏ´Â °ÍÀÌ °¡´ÉÇØÁø´Ù.
sticky bitÀº /tmp¿Í /var/tmp¿Í °°ÀÌ Àӽà ÆÄÀÏÀÌ »ý°Ü³µ´Ù°¡ ¾ø¾îÁö´Â µð·ºÅ丮¿¡ ÀÚÁÖ »ç¿ëµÈ´Ù. /tmp µð·ºÅ丮ÀÇ °æ¿ì ¸ðµç À¯ÀúµéÀÌ ¸¶À½´ë·Î ÆÄÀÏÀ» ÀÐ°í ¾²´Â °ÍÀÌ °¡´ÉÇØ¾ß Çϴµ¥ ÀÌ·¸°Ô µÇ¸é /tmp µð·ºÅ丮´Â rwxrwxrwx ÆÛ¹Ì¼ÇÀ» °¡Á®¾ß Çϰí À̰ÍÀº À¯ÀúµéÀÌ /tmp µð·ºÅ丮¿¡¼´Â ´Ù¸¥ À¯ÀúÀÇ ÆÄÀÏÀ» Áö¿ï ¼öµµ ÀÖ´Ù´Â ¹®Á¦¸¦ ÃÊ·¡ÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ sticky bitÀÌ ¼³Á¤µÈ µð·ºÅ丮¿¡¼ À¯Àú A´Â À¯Àú B°¡ »ý¼ºÇÑ ÆÄÀÏÀ» Áö¿ï ¼ö ¾ø°Ô µÈ´Ù. Á» ´õ Á¤È®È÷ ¸»Çϸé /tmp¿Í °°Àº sticky bitÀÌ ¼³Á¤µÈ µð·ºÅ丮¿¡¼´Â µðÀ½°ú °°Àº °æ¿ì°¡ ¾Æ´Ï°í¼´Â ÆÄÀÏÀ» Áö¿ï ¼ö ¾ø´Ù.
¡ß ÆÄÀÏÀÇ ¼ÒÀ¯ÀÚ
¡ß ÆÄÀÏÀÌ ³õÀÎ µð·ºÅ丮ÀÇ ¼ÒÀ¯ÀÚ
¡ß ¼öÆÛÀ¯Àú
sticky bitÀº ´ÙÀ½°ú °°ÀÌ t°¡ Ãß°¡µÈ ÇüÅ·Πǥ±âµÈ´Ù. ¼ýÀڷΠǥÇöÇϸé 1777ÀÌ µÉ °ÍÀÌ´Ù. ÀÌ°Í ¿ª½Ã ¾Õ¿¡ Àá±ñ ¾ð±ÞÇÑ chmod(2) ¸Å´º¾ó ÆäÀÌÁö¸¦ Âü°íÇØ º¸ÀÚ.
drwxrwxrwt 105 root root 102400 6¿ù 13 13:09 /tmp
su
ÀϹÝÀûÀ¸·Î À©µµ¿ì¸¦ ¸¹ÀÌ ¾²´ø »ç¿ëÀÚ°¡ ¸®´ª½º¸¦ ¾²±â ½ÃÀÛÇÏ¸é¼ Á¢Çϱ⠽¬¿î ½Ç¼ö°¡ ¼öÆÛÀ¯ÀúÀÎ root °èÁ¤À¸·Î ¸®´ª½º ½Ã½ºÅÛÀ» ¾²´Â °ÍÀÌ´Ù. ÇÏÁö¸¸ À©µµ¿ì¿Í´Â ´Þ¸® ¸®´ª½º´Â ÀÏ¹Ý À¯Àú °èÁ¤À¸·Îµµ º°´Ù¸¥ ºÒÆí ¾øÀÌ ¸ðµç ÀÛ¾÷À» ÇÒ ¼ö ÀÖ°í, ÇÊ¿äÇÒ ¶§¸¸ root °èÁ¤À» ¾²¸é µÇ¸ç, ƯÈ÷ ÀÏ¹Ý À¯Àú °èÁ¤À» ¾µ °æ¿ì ¹ÙÀÌ·¯½º¿Í °°Àº ¾Ç¼º Äڵ尡 ½ÇÇà ±ÇÇÑÀ» ¾ò°Ô µÇ´Â °ÍÀ» ±¸Á¶ÀûÀ¸·Î ¹æÁöÇÒ ¼ö Àֱ⠶§¹®¿¡ óÀ½ºÎÅÍ ÀÏ¹Ý »ç¿ëÀÚ·Î ½Ã½ºÅÛÀ» »ç¿ëÇÏ´Â ½À°üÀ» µéÀÌ´Â °ÍÀÌ Áß¿äÇÏ´Ù. ±×·± ÀÌÀ¯·Î ¸®´ª½º¿¡¼´Â ÇÊ¿äÇÒ ¶§¸¸ su ¸í·ÉÀ¸·Î root shellÀ» ȹµæÇÏ°í ±×·¸Áö ¾ÊÀº °æ¿ì´Â Ç×»ó ÀÏ¹Ý À¯ÀúÀÇ ±ÇÇÑÀ¸·Î ÄÄÇ»Å͸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. ÃÖ±Ù¿¡ À©µµ¿ì XP¿¡¼µµ µµÀÔµÈ Switch User ±â´ÉÀÌ À©µµ¿ìÆÇ su¶ó°í º¼ ¼ö ÀÖ°Ú´Ù.
¸®´ª½º ½Ã½ºÅÛÀÇ È¯°æ º¯¼ö¿Í µð·ºÅ丮
ÇÊÀÚÀÇ °³ÀÎÀûÀÎ »ý°¢ÀÌÁö¸¸ ¸®´ª½º µ¥½ºÅ©Å¾ÀÌ ¾ÆÁ÷±îÁö ³Î¸® ¾²ÀÌÁö ¾Ê°í ÀÖ´Â ÀÌÀ¯ ÁßÀÇ Çϳª´Â ¸®´ª½º ¹èÆ÷ÆÇÀÌ ÀüÅëÀûÀ¸·Î º¸¾È¿¡ ½Å°æÀ» ¸¹ÀÌ ¾´ ÇüÅ·Π¼³Á¤µÇ¾î ³ª¿À±â ¶§¹®À̶ó°í º»´Ù. µû¶ó¼ À©µµ¿ì¸¦ ¾²´ø »ç¿ëÀÚµéÀÌ ¸®´ª½º¸¦ ¾²¸é º¸¾È»ó ÀÌÀ¯·Î µðÆúÆ®·Î ¼û°Ü³õÀº ±â´ÉµéÀ» Àß ¸ð¸£°í Áö³ªÄ¡°Ô µÇ°í, À̰ÍÀÌ ³ªÁß¿¡ ºÒÆíÇÔÀ¸·Î ´À²¸Áö´Â °æ¿ì°¡ ¸¹Àº µí ÇÏ´Ù. »ç¿ëÀÚ È¨ µð·ºÅ丮¿Í ȯ°æ º¯¼ö¿¡¼ ÀÌ·± »ç¼ÒÇÑ ºÒÆíÇÔÀ» °£´ÜÈ÷ ¸î °¡Áö ´Ù·ç¾î º¸ÀÚ.
PATH ȯ°æ º¯¼ö
¿ì¼±, ¸®´ª½º¿¡¼´Â ¸í·ÉÀ» ½ÇÇàÇÒ ¶§ ±âº»ÀûÀ¸·Î ¼öÆÛÀ¯ÀúÀÇ ±ÇÇÑÀÌ ÇÊ¿äÇÑ ½ÇÇàÆÄÀϵéÀÇ µð·ºÅ丮 À§Ä¡¸¦ PATH ȯ°æº¯¼ö¿¡¼ »© ³õ°í ÀÖ´Ù. ½ÇÁ¦, su ¸í·ÉÀ» ½ÇÇàÇÑ ´ÙÀ½ fdisk¿Í °°Àº ¼öÆÛÀ¯Àú¿ë ¸í·ÉÀ» ½ÇÇàÇØº¸¸é ´ëºÎºÐÀÇ ¸®´ª½º ¹èÆ÷ÆÇ¿¡¼ command not found¶ó´Â ¿¡·¯ ¸Þ½ÃÁö¸¦ ¸¸³ª°Ô µÈ´Ù. µµ´ëü PATH°¡ ¾î¶»°Ô ¼³Á¤µÇ¾î ÀÖÀ»±î?
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
±×·¸´Ù¸é fdisk´Â ¾îµð¿¡ µé¾î°¡ ÀÖÀ»±î? ´ÙÀ½ÀÇ °á°ú¸¦ º¸¸é /sbin/fdisk¿¡ µé¾î°¡ ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. ±×·¯³ª PATH ȯ°æ º¯¼ö¿¡´Â /sbin µð·ºÅ丮°¡ µé¾î°¡ ÀÖÁö ¾Ê´Ù. µû¶ó¼ ÀÏ¹Ý À¯Àú´Â su ¸í·ÉÀ¸·Î ¼öÆÛÀ¯Àú°¡ µÇ´õ¶óµµ PATH ȯ°æ º¯¼ö¿¡ /sbin µð·ºÅ丮°¡ µé¾î°¡ ÀÖÁö ¾ÊÀº ±î´ß¿¡ fdisk ¸í·É¾î°¡ ½ÇÇàÀÌ µÇÁö ¾Ê´Â °ÍÀÌ´Ù. Âü°í·Î ¸®´ª½ºÀÇ ¸í·É¾î Áß ÀÏ¹Ý »ç¿ëÀÚ¿ë ¸í·É¾îµéÀº ÀüÅëÀûÀ¸·Î bin µð·ºÅ丮 ¾Æ·¡ ¸¹ÀÌ µé¾î°¡°í ¼öÆÛÀ¯Àú¿ë ¸í·É¾îµéÀº sbin µð·ºÅ丮¿¡ ¸¹ÀÌ µé¾î°£´Ù.
$ find / -name fdisk
/usr/share/webmin/mscstyle3/fdisk
/usr/share/webmin/fdisk
/sbin/fdisk
/etc/webmin/fdisk
±×·¯¸é PATH ȯ°æ º¯¼ö¿¡ /sbin µð·ºÅ丮¸¦ Ãß°¡ÇØ º¸ÀÚ. sbin µð·ºÅ丮´Â /sbin À̿ܿ¡µµ /usr/sbin, /usr/local/sbinÀÌ ÀÖÀ» ¼ö ÀÖ°í, º¸Åë /usr/sbin¿¡´Â ¹èÆ÷ÆÇÀÌ ¼³Ä¡µÉ ¶§ /sbin ¸¸Å ÇʼöÀûÀÌÁö´Â ¾ÊÁö¸¸ Áß¿äÇÑ ½Ã½ºÅÛ °ü¸® ¸í·É¾îµéÀÌ ¸¹ÀÌ µé¾î°¡ ÀÖÀ¸´Ï /sbin°ú ÇÔ²² /usr/sbinµµ °°ÀÌ ³Ö¾îº¸ÀÚ. Âü°í·Î bash ¿ÜÀÇ cshÀ̳ª tcshÀº ¿©±â¼´Â ´Ù·çÁö ¾Êµµ·Ï ÇϰڴÙ.
$ export PATH=${PATH}:/sbin:/usr/sbin
À̰ÍÀ» ÀüÅëÀûÀÎ º» ¼Ð ¹æ½ÄÀ¸·Î Ç®¾î¾²¸é ´ÙÀ½°ú °°ÀÌ µÈ´Ù.
$ PATH=${PATH}:/sbin:/usr/sbin
$ export PATH
±×·¯³ª ÀÌ ¸í·ÉÀ» ¼¿ Çϳª¸¦ ½ÇÇàÇÒ ¶§¸¶´Ù ŸÀÌÇÎÇϱ⿡´Â ±ÍÂúÀ» Å×´Ï À̰ÍÀ» ¼ÐÀÌ ½ÇÇàµÉ ¶§¸¶´Ù °°ÀÌ ½ÇÇàµÇµµ·Ï ÇØ º¸ÀÚ. bash ¼ÐÀº ½ÃÀÛÇÏ¸é¼ ´ÙÀ½°ú °°Àº ÆÄÀÏÀÇ ³»¿ëÀ» ½ÇÇà½ÃŲ´Ù. bashÀÇ ¸Å´º¾ó ÆäÀÌÁö¸¦ Àá±ñ »ìÆì º¸¸é FILES Ç׸ñ ¾Æ·¡ÂÊ¿¡ ¼³Á¤ÆÄÀÏ¿¡ ´ëÇÑ ¼³¸íÀÌ ³ª¿Â´Ù.
/etc/profile - system-wide initialization file, executed for login shells
~/.bash_profile - personal initialization file, executed for login shells
~/.bashrc - the individual per-interactive-shell startup file
¿ì¸®ÀÇ °æ¿ì´Â Ȩ µð·ºÅ丮ÀÇ ~/.bash_profileÀ̳ª ~/.bashrc¸¦ ¾²´Â °ÍÀÌ Àû´çÇØ º¸ÀδÙ. PATH Á¤º¸´Â ÀϹÝÀûÀ¸·Î ·Î±×ÀÎ ¼Ð ¼³Á¤¿¡ ¼ÓÇÏ´Ï .bash_profile¿¡ ³Ö¾îµÎ¸é µÈ´Ù. Âü°í·Î ¸®´ª½º ½Ã½ºÅÛ ¼³Á¤À» ÇÒ ¶§´Â º°´Ù¸¥ Çʿ䰡 ¾øÀ¸¸é Ȩ µð·ºÅ丮 ¾Æ·¡ÀÇ .·Î ½ÃÀÛÇÏ´Â ¼³Á¤ÆÄÀÏ¿¡ ¼³Á¤ÇØ ÁÖ´Â °ÍÀÌ ÁÁ´Ù. ¹°·Ð, ¼öÆÛÀ¯Àú·Î º¯½ÅÇØ¼ Á÷Á¢ /etc ¾Æ·¡ÀÇ ¼³Á¤ÆÄÀÏÀ» ¹Ù²Ù¾î ÁÙ ¼öµµ ÀÖÁö¸¸ Ç×»ó ³»°¡ ¼öÆÛÀ¯Àú ±ÇÇÑÀ» °®°í ÀÖÀ» ¼öµµ ¾ø´Â °ÍÀ̰í, ½ÇÁ¦ ÀÏ¹Ý À¯ÀúÀÇ ±ÇÇÑÀ¸·Îµµ ³» ÀÔ¸À¿¡ ¸Â°Ô ½Ã½ºÅÛ È¯°æÀ» »ó´çÇÑ ºÎºÐ ¸ÂÃß¾î º¼ ¼ö ÀÖ´Ù.
PATH ȯ°æ º¯¼ö¿Í °ü·ÃÇØ¼ Âü°í·Î Çϳª ¾Ë¾Æ µÑ °ÍÀº ÇöÀç µð·ºÅ丮¿¡ µé¾î ÀÖ´Â ¸í·ÉÀ» ½ÇÇà½ÃŰ´Â ¹æ¹ýÀÌ´Ù. ´ëºÎºÐÀÇ ¸®´ª½º ¹èÆ÷ÆÇ¿¡¼ hello.c°°Àº ¼Ò½º¸¦ ÄÄÆÄÀÏÇÏ°í ´ÙÀ½°ú °°Àº ¸í·ÉÀ» ½ÇÇàÇØº¸¸é ¿¡·¯°¡ ³´Ù.
$ gcc -o hello hello.c
$ ls -F
hello* hello.c
$ hello
bash: hello: command not found
$ ./hello
hello, world
À̰ÍÀº PATH ȯ°æ º¯¼ö¿¡¼ ÇöÀç µð·ºÅ丮ÀÎ Á¡(.)ÀÌ ºüÁ® Àֱ⠶§¹®ÀÌ´Ù. ¿Ö ÀÌ·± º¹ÀâÇØ º¸ÀÌ´Â ¹æ½ÄÀÌ µðÆúÆ®·Î ¼³Á¤µÇ¾î ÀÖÀ»±î? ±×°ÍÀº º¸¾È»óÀÇ ¹®Á¦ ¶§¹®ÀÌ´Ù. ¿¹¸¦ µé¾î, ¼öÆÛÀ¯Àú°¡ /tmp³ª /var/tmp µð·ºÅ丮¿¡¼ ¹«½ÉÄÚ ls ¸í·ÉÀ» ½ÇÇà½ÃÄ״µ¥ À̰ÍÀÌ /bin/ls°¡ ¾Æ´Ñ ´©±º°¡°¡ ½É¾î³õÀº ¾Ç¼º /tmp/ls¸¦ ½ÇÇà½ÃŰ°Ô µÈ´Ù¸é ¹®Á¦°¡ »ý±æ ¼ö ÀÖ´Ù. À̰ÍÀ» ¾Æ¿¹ ¿øÃµÀûÀ¸·Î ¹æÁöÇϱâ À§ÇØ ÇöÀç µð·ºÅ丮ÀÇ ¸í·É¾î¸¦ ½ÇÇàÇÏ·Á¸é º¸Åë ¾Õ¿¡ ¸í½ÃÀûÀ¸·Î ./¸¦ ºÙ¿©ÁÖ´Â °ÍÀÌ´Ù.
µð·ºÅ丮
¸®´ª½ºÀÇ ÆÄÀÏ ½Ã½ºÅÛ µð·ºÅ丮 ±¸Á¶´Â ÀüÅëÀûÀÎ ¹æ½ÄÀ» Áö±Ýµµ µû¸£°í ÀÖ´Ù. ·çÆ® µð·ºÅ丮 ¾Æ·¡¿¡ ½ÇÇà ÆÄÀÏÀº /bin, ¶óÀ̺귯¸®´Â /lib, ¼³Á¤ÆÄÀÏÀº /etc, ¼öÆÛÀ¯Àú¿ë ¸í·É¾î´Â /sbin°ú °°Àº µð·ºÅ丮¿¡ µé¾î°¡°Ô µÇ¾î ÀÖ´Ù. ¿©±â¼ À¯½ÉÈ÷ º¸¾Æ¾ß ÇÒ °ÍÀº ÀÌ·± bin, lib, etc¿Í °°Àº µð·ºÅ丮 ¸í¸í¹ýÀº ´Ù¸¥ µð·ºÅ丮 ¾È¿¡¼µµ ¹Ýº¹ÀÌ µÈ´Ù´Â »ç½ÇÀÌ´Ù. Çѹø, ¼ÒÇÁÆ®¿þ¾î ÆÐŰÁöµéÀÌ À§Ä¡Çϰí ÀÖ´Â /usr µð·ºÅ丮¸¦ »ìÆìº¸ÀÚ.
$ cd /usr
$ ls -F
X11R6/ dict/ etc/ kerberos/ libexec/ lost+found/ root/ share/ tmp@
bin/ doc/ include/ lib/ local/ man/ sbin/ src/
¿©±â¼µµ Ä£¼÷ÇÑ bin, etc, lib, sbin°ú °°Àº µð·ºÅ丮°¡ º¸ÀÓÀ» ¾Ë ¼ö ÀÖ´Ù. ½ÇÁ¦, ÇÊÀÚ°¡ ¾²´Â ¸®´ª½º ½Ã½ºÅÛ¿¡¼ /usr/etc µð·ºÅ丮¿¡´Â ¾Æ¹«·± ÆÄÀϵµ µé¾î°¡ ÀÖÁö ¾Ê°í ±×³É µð·ºÅ丮 À̸§¸¸ Çϳª ¸¸µé¾îÁ® ÀÖÁö¸¸ /usr µð·ºÅ丮¿¡¼µµ / µð·ºÅ丮¿Í µ¿ÀÏÇÑ µð·ºÅ丮 ¸í¸í¹ýÀÌ ¹Ýº¹µÇ°í ÀÖÀ½À» º¼ ¼ö ÀÖ´Ù. À̰ÍÀº /usr/local °ú /home/mewmew Ȩµð·ºÅ丮¿¡¼µµ ±×´ë·Î ¹Ýº¹µÈ´Ù.
$ cd /usr/local
$ ls -F
Zend/ games/ lib/ mysql-old/ src/
apache/ gd/ libexec/ netpbm/ var1/
bin/ giflib/ libpng/ python-2.2.1/ zend/
doc/ include/ man/ qmailscan/ zend-old/
etc/ jakarta-tomcat-4.0.3/ mrtg/ sbin/ zend-old-2/
freetype/ jpeg/ mysql/ share/ zlib/
$ cd
$ ls -F
Mail/ doc/ public_html@ swarm_for_fedora_core_1/
backup/ fish.txt share/ tel.txt
bin/ hangul_fonts/ src/ temp/
dkdk man/ storage/ www/
Á÷Á¢ ¼ÕÀ¸·Î ¼ÒÇÁÆ®¿þ¾î ÆÐŰÁö ¼Ò½ºÄڵ带 ÄÄÆÄÀÏ ÇØ º¸¸é ÀÌ·¯ÇÑ ¸í¸í¹ýÀÌ »ó´çÈ÷ ¾µ¸ð°¡ ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. ÀϹÝÀûÀ¸·Î ./configure; make; make install·Î ¼³Ä¡°¡ µÇ´Â ¼Ò½º ÆÐŰÁöÀÇ °æ¿ì ./configure ½ºÅ©¸³Æ®¿¡¼ µðÆúÆ®·Î ¼Ò½º ÆÐŰÁö°¡ ¼³Ä¡µÇ´Â µð·ºÅ丮 (PREFIX)°¡ /usr/localÀÌ´Ù. À̰ÍÀ» Çʿ信 µû¶ó /usrÀ̶óµçÁö ȤÀº »ç¿ëÀÚ È¨ µð·ºÅ丮¸¦ °¡¸®Å°´Â $HOME ȯ°æ º¯¼ö·Î ¼³Á¤ÇØ ÁÙ ¼öµµ ÀÖ´Â °ÍÀÌ´Ù.
$ ./configure --prefix=/usr
$ ./configure --prefix=${HOME}
´ÙÀ½ÀÇ °æ¿ì ³ªÁß¿¡ ÄÄÆÄÀÏÀÌ ³¡³ª°í make installÀ» ¼öÇàÇÏ¸é º¸Åë ${HOME}/bin, ${HOME}/etc, Çʿ信 µû¶ó¼ ${HOME}/lib³ª ¸Å´º¾ó ÆäÀÌÁö°¡ µé¾î°¡´Â ${HOME}/man ±îÁö ¼³Ä¡µÇ´Â °æ¿ìµµ ÀÖ´Ù. ƯÈ÷, °ü¸®ÀÚ ±ÇÇÑÀ» ¾ò±â Èûµç ÀÏ¹Ý À¥ È£½ºÆÃ ¼ºñ½º¸¦ ÀÌ¿ëÇÒ ¶§ ÀÌ·¸°Ô ³» Ȩ µð·ºÅ丮 ¾È¿¡ ¼Õ¼ö ÇÊ¿äÇÑ ÆÐŰÁö¸¦ ÄÄÆÄÀÏÇØ ¾²´Â °æ¿ì°¡ ÈçÇѵ¥ ÀÌ·² °æ¿ì¿¡´Â ¾ÕÀÇ PATH ȯ°æ º¯¼ö¿¡ ${HOME}/bin ¿£Æ®¸®µµ Çϳª ³Ö¾î ÁÖ¸é ´õ¿í Æí¸®ÇÒ °ÍÀÌ´Ù.
±×¸®°í ¸®´ª½º ¹èÆ÷ÆÇ¿¡¼ rpmÀ̳ª deb °°Àº ÆÐŰÁö °ü¸® ½Ã½ºÅÛÀÌ ¹ßÀüÇÔ¿¡ µû¶ó /usr ¾Æ·¡ÀÇ /usr/bin, /usr/lib¿Í °°Àº µð·ºÅ丮´Â Á÷Á¢ ½Ã½ºÅÛ °ü¸®ÀÚ°¡ ÇÊ¿äÇÑ ¼ÒÇÁÆ®¿þ¾î¸¦ ÄÄÆÄÀÏÇØ¼ Áý¾î³Ö´Â °ø°£À̶ó±âº¸´Ù´Â ÆÐŰÁö °ü¸®ÀÚ·Î °ü¸®ÇÏ´Â °ø°£ÀÌ µÇ¾î¹ö·È´Ù. ½ÇÁ¦, ¼ÕÀ¸·Î ÄÄÆÄÀÏÇÏ´Â ¼ÒÇÁÆ®¿þ¾îµéÀº /usr/local ¾Æ·¡ÂÊ¿¡ ³Ö´Â °ÍÀÌ ³ªÁß¿¡ ½Ã½ºÅÛ À¯Áö/º¸¼ö Ãø¸é¿¡¼µµ Æí¸®ÇÏ´Ù. ¹Ýµå½Ã /usr ¾ÈÂÊÀ¸·Î ³Ö¾î¾ß ÇÏ´Â ÆÐŰÁöµéÀº ¼Ò½ºÄڵ带 ¿ì¼± ÄÄÆÄÀÏÇØ¼ rpmÀ̳ª deb ÆÐŰÁö¸¦ ¸¸µé°í ±×°ÍÀ» ´Ù½Ã ¼³Ä¡ÇÏ´Â ÆíÀÌ ÀÇÁ¸¼º À¯ÁöÀÇ Ãø¸é¿¡¼ À¯¸®ÇÏ´Ù. ÀÌÁ¦ ¸®´ª½ºÀÇ ÀüüÀûÀÎ µð·ºÅ丮 ±¸Á¶¸¦ ½±°Ô ³Ñ±â±â ÁÁÀº ºÎºÐ¸¸ °£´ÜÈ÷ ¤¾îº¸°í ³Ñ¾î°¡ÀÚ.
/etc
¼³Á¤ÆÄÀÏÀÌ µé¾î°¡´Â °÷ÀÌ´Ù. »ç¿ëÀÚÀÇ ÀÔÀå¿¡¼´Â ¿©±â¼ /etc/profile.d µð·ºÅ丮¸¦ Àá±ñ ÁöÄѺ¼ Çʿ䰡 ÀÖ´Ù. /etc ¾Æ·¡¿¡¼ .d·Î ³¡³ª´Â µð·ºÅ丮µéÀº ¸¶Ä¡ ±× µð·ºÅ丮 ¾È¿¡ µé¾î°¡ ÀÖ´Â ÆÄÀϵéÀÌ ÇϳªÀÇ ¼³Á¤ÆÄÀÏÀ» ÀÌ·ç°í ÀִµíÇÑ ¿ªÇÒÀ» ÇÏ´Â °æ¿ì°¡ ¸¹´Ù. bash´Â ½ÇÇàµÇ¸é¼ ¸ÕÀú /etc/profileÀ» ÂüÁ¶Çϴµ¥ /etc/profile.d°¡ ÀÖ´Â °æ¿ì /etc/profile.d ¾ÈÀÇ ¸ðµç ½ºÅ©¸³Æ®µéÀ» ½ÇÇàÇÑ´Ù. Âü°í·Î ÇÊÀÚ°¡ ¾²´Â ½Ã½ºÅÛÀÇ /etc/profile.d¿¡´Â ´ÙÀ½°ú °°Àº ½ºÅ©¸³Æ®µéÀÌ µé¾îÀÖ´Ù.
$ ls -F /etc/profile.d/
colorls.csh* lang.csh* less.csh* mc.csh* which.sh*
colorls.sh* lang.sh* less.sh* mc.sh*
¿©±â¼ sh·Î ³¡³ª´Â ÆÄÀϵéÀº bash¿ë, csh·Î ³¡³ª´Â ÆÄÀϵéÀº csh¿ë ½ºÅ©¸³Æ®µéÀε¥ /etc/profile¿¡ Çϳª·Î ³ÖÀ» ¼öµµ ÀÖÀ¸³ª ÆíÀÇ»ó ³ª´©¾î ³õÀº °ÍµéÀÌ´Ù. ºñ½ÁÇÑ ¿¹·Î /etc/xinet.d¸¦ µé ¼ö ÀÖ´Ù. inetd´Â ¿ø·¡ ´ë¸ó(daemon)ÀÇ ´ë¸óÀ¸·Î ºÒ¸®´Â ¿ªÇÒÀ» Çϴµ¥ inetd¿¡ ´ë¸ó ¼ºñ½º¸¦ µî·ÏÇØ ³õÀ¸¸é ¿ÜºÎ¿¡¼ ¼ºñ½º ¿äûÀÌ µé¾î¿Ã ¶§¸¶´Ù ÇÊ¿äÇÑ ´ë¸ó ÇÁ·Î¼¼½º¸¦ ½ÇÇà½ÃŰ°í ¼ºñ½º°¡ ³¡³ª¸é Á¾·á½ÃŰ´Â ¿ªÇÒÀ» ÇÏ¸é¼ Á» ´õ ½Ã½ºÅÛ ÀÚ¿øÀ» È¿À²ÀûÀ¸·Î ¾µ ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù. À̰ÍÀÇ È®ÀåÆÇÀÌ xinetdÀε¥ xinetd´Â ¼ºñ½º ÇϳªÇϳª¸¶´Ù ¼³Á¤ÆÄÀÏÀ» µû·Î µÎ°í À̰͵éÀ» ¸ð¾Æ¼ /etc/xinetd.d¿¡ ³Ö¾î³õµµ·Ï Çϰí ÀÖ´Ù.
$ ls -F /etc/xinetd.d
chargen daytime echo finger rexec rsh talk time
chargen-udp daytime-udp echo-udp ntalk rlogin rsync telnet time-udp
Âü°í·Î ±¸Çü inetdÀÇ ¼³Á¤ÆÄÀÏÀÎ /etc/inetd.conf¸¦ Àá±ñ »ìÆìº¸ÀÚ. ¾î´À ÇüŸ¦ ¼±È£ÇÏ´ÂÁö´Â »ç¿ëÀÚÀÇ ¼±ÅÃÀ̰ÚÁö¸¸ .d ·Î ³¡³ª´Â µð·ºÅ丮 ¾È¿¡ ¼³Á¤ ÆÄÀÏÀ» °¢°¢ ºÐ¸®ÇØ ³õ´Â ¾ÆÀ̵ð¾î°¡ ÀÖ´Ù´Â Á¡Àº ±â¾ïÇØ ³õµµ·Ï ÇÏÀÚ.
$ more /etc/inetd.conf
# /etc/inetd.conf: see inetd(8) for further informations.
#
# Internet server configuration database
#
#
#
#:INTERNAL: Internal services
#echo stream tcp nowait root internal
#echo dgram udp wait root internal
#chargen stream tcp nowait root internal
#chargen dgram udp wait root internal
#discard stream tcp nowait root internal
#discard dgram udp wait root internal
#daytime stream tcp nowait root internal
#daytime dgram udp wait root internal
#time stream tcp nowait root internal
#time dgram udp wait root internal
/etc/skel µð·ºÅ丮¿¡´Â ¾óÇÍ º¸¸é ¾Æ¹« ÆÄÀϵµ ¾ø´Â °Íó·³ º¸ÀδÙ. ÇÏÁö¸¸ ÀÌ µð·ºÅ丮¿¡´Â »õ·Î À¯Àú °èÁ¤À» ¸¸µé¾úÀ» ¶§ ±× À¯ÀúÀÇ È¨ µð·ºÅ丮¿¡ µðÆúÆ®·Î ¼³Ä¡µÉ ¼û°ÜÁø ¼³Á¤ÆÄÀϵéÀÌ µé¾î°¡ ÀÖ´Ù.
$ ls -al /etc/skel
ÇÕ°è 28
drwxr-xr-x 2 root root 4096 2004-05-13 13:53 .
drwxr-xr-x 121 root root 8192 2004-06-10 11:53 ..
-rw-r--r-- 1 root root 266 2002-07-09 23:20 .alias
-rw-r--r-- 1 root root 704 2004-05-09 01:43 .bash_profile
-rw-r--r-- 1 root root 1290 2004-05-09 01:43 .bashrc
-rw-r--r-- 1 root root 375 2002-07-09 23:20 .cshrc
¸®´ª½º¿¡¼ »õ·Î À¯Àú °èÁ¤À» Ãß°¡ÇÏ´Â ¹æ¹ýÀº ¿©·¯ °¡Áö°¡ ÀÖ´Ù. ÀüÅëÀûÀ¸·Î ¸¹ÀÌ ¾²´Â ¹æ¹ýÀÌ adduser, ȤÀº useradd ½ºÅ©¸³Æ® ¸í·ÉÀ» ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÌ°í ¿äÁòÀº KDE³ª GNOME¿¡¼´Â ±×·¡ÇÈ À¯Àú ÀÎÅÍÆäÀ̽º ȯ°æ¿¡¼ »õ·Î¿î »ç¿ëÀÚ¸¦ Ãß°¡ÇÒ ¼öµµ ÀÖ´Ù. ÇÏÁö¸¸ ¿ø·¡ ¸®´ª½º ½Ã½ºÅÛ¿¡¼´Â Á÷Á¢ ¼ÕÀ¸·Î »ç¿ëÀÚ¸¦ Ãß°¡ÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù. °£´ÜÇÏ°Ô »õ·Î »ç¿ëÀÚ °èÁ¤À» ¸¸µé¾îº¸ÀÚ. ¿ì¼±, ¸®´ª½ºÀÇ »ç¿ëÀÚ´Â ¼ýÀÚ·Î µÈ »ç¿ëÀÚ ID¿Í ±×·ì ID°¡ ÇÊ¿äÇÏ´Ù. À̰ÍÀÌ uid¿Í gidÀε¥ su ¸í·É µîÀ» ÀÌ¿ëÇØ¼ ¼öÆÛÀ¯Àú°¡ µÈ ´ÙÀ½ Çѹø /etc/passwd ÆÄÀÏÀ» º¸ÀÚ.
root:x:0:0:sysadmin,,,:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
.
...»ý·«...
.
foobar:x:1000:1000:Foobar the great one,,,:/home/foobar:/bin/bash
doobar:x:1001:1001:Doobar the beautiful one,,,:/home/doobar:/bin/bash
langel:x:1002:1002:,,,:/home/langel:/bin/bash
¿©±â¿¡ »õ·Î hoover¶ó´Â »ç¿ëÀÚ¸¦ Ãß°¡ÇÏ·Á¸é /etc/passwd ÆÄÀÏÀ» Àû´çÈ÷ ºñ½ÁÇÏ°Ô °íÃÄÁÖ¸é µÈ´Ù. »õ·Î uid 1003°ú gid 1003¸¦ langel¿¡ Ãß°¡ÇØÁÖÀÚ. ÆÐ½º¿öµå Çʵ忡´Â *¸¦ ³Ö¾î ¾ÆÁ÷ ·Î±×ÀÎÀ» ¸øÇÏ´Â °èÁ¤ÀÓÀ» ¸í½ÃÇØ ÁÖÀÚ.
hoover:*:1003:1003:,,,:/home/hoover:/bin/bash
¸¶Âù°¡Áö·Î /etc/group ÆÄÀϵµ hoover ±×·ìÀ» Ãß°¡ÇØ ÁÖÀÚ. ¾î¶² ½Ã½ºÅÛÀº »ç¿ëÀÚÀÇ ±×·ìÀ» »õ·Î ¸¸µéÁö ¾Ê°í ±×³É user ±×·ì¿¡ Ãß°¡ÇÏ´Â °æ¿ìµµ ÀÖ´Ù.
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
.
... »ý·« ...
.
foobar:x:1000
doobar:x:1001
langel:x:1002
hoover:x:1003
ÀÌ·¸°Ô ÇÑ ´ÙÀ½ mkdir ¸í·ÉÀ¸·Î /home/hoover µð·ºÅ丮¸¦ ¸¸µé°í /etc/skel µð·ºÅ丮¿¡¼ ±âº» ¼³Á¤ÆÄÀÏÀ» cp ¸í·ÉÀ¸·Î º¹»çÇØÁØ´Ù. ±×¸®°í chown -R hoover /home/hoover ¸í·É°ú chgrp -R hoover /home/hoover ¸í·ÉÀ¸·Î Ȩ µð·ºÅ丮¿Í ±× ¾Æ·¡ ÆÄÀϵéÀÇ ¼ÒÀ¯±ÇÀ» ¸íÈ®ÇÏ°Ô ÇØ ÁØ ´ÙÀ½ ¸¶Áö¸·À¸·Î passwd hoover ¸í·ÉÀ¸·Î »õ·Î¿î hoover »ç¿ëÀÚÀÇ ºñ¹Ð¹øÈ£¸¦ ¼³Á¤ÇØÁÖ¸é Á÷Á¢ ¼ÕÀ¸·Î »õ »ç¿ëÀÚ µî·ÏÀÌ ³¡³ª°Ô µÈ´Ù. useradd¿Í °°Àº ¸í·ÉÀº ÀÌ °úÁ¤À» °£´ÜÇÏ°Ô ÀÚµ¿È ½ÃÄѳõÀº ¼ÀÀÎ °ÍÀÌ´Ù.
¿©±â¼µµ ¸®´ª½ºÀÇ ½ÉÇÃÇÔÀÇ ¸Å·ÂÀÌ ¹¯¾î³ª´Âµ¥ ¿À·¡Àü¿¡ ÇÊÀÚ´Â ¼Ö¶ó¸®½º ¿öÅ©½ºÅ×À̼ÇÀ» óÀ½ ¾²¸é¼ ¼Ö¶ó¸®½º¿¡´Â ¾Æ¿¹ ¸®´ª½º¿¡¼ º¼ ¼ö ÀÖ¾ú´ø ´ëÈ½Ä useradd ¸í·É¾îÁ¶Â÷ ¾ø´ø °ÍÀ» º¸°í ³î·¨´ø ±â¾ïÀÌ ÀÖ´Ù. ±×·¡µµ ¼Ö¶ó¸®½º¿¡µµ ÀÌ·± useradd¿Í °°Àº »ç¿ëÀÚ »ý¼º ½ºÅ©¸³Æ®°¡ Çϳª ±âº»À¸·Î Á¦°øµÇ¾î ÀÖÀ¸¸é ÁÁÁö ¾ÊÀ»±î ÇßÁö¸¸ ¿ÀÈ÷·Á ÀÌ·± ½ºÅ©¸³Æ®°¡ ¾ø´Â °ÍÀÌ ´õ ³ªÀ» ¼öµµ ÀÖ´Ù´Â »ý°¢À» °ð ÇÏ°Ô µÇ¾ú´Ù. »ç¿ëÀÚ°¡ ¾Æ´Ñ ½Ã½ºÅÛ °ü¸®ÀÚÀÇ ÀÔÀå¿¡¼´Â »ç¿ëÀÚ °èÁ¤ ¹ß±Þ°ú ¸»¼Ò´Â ÁÖ¿äÇÑ ¾÷¹« ÁßÀÇ ÇϳªÀÏ ÅÙµ¥ »ç¿ëÀÚ °èÁ¤ »ý¼º°ú »èÁ¦¸¦ ƯÁ¤ ¸í·É¾î¿¡ ¹¾î ³õÀ¸¸é Á» ´õ À¯¿¬ÇÑ ½Ã½ºÅÛÀ» ¸¸µé±â°¡ Èûµé´Ù.
ÇÑ ¿¹·Î, °©ÀÚ±â Àü»ê ½Ç½ÀÀ» À§ÇØ 1000¸íÀÇ ID¸¦ »õ·Î ¹ß±ÞÇØ¾ß ÇѴٵ簡, ȤÀº ÇÏ·ç¿¡µµ ¼ö¹é ¸í¾¿ ID°¡ »ý¼ºµÇ°í ¾ø¾îÁö´Â ½Ã½ºÅÛÀ» À¯ÁöÇÏ·Á¸é ¿ÀÈ÷·Á ÀÌ·± ½ÉÇÃÇÔÀÌ ½Ã½ºÅÛ °ü¸®ÀÚÀÇ ÀÔÀå¿¡¼ Á» ´õ Æí¸®Çϰí È¿À²ÀûÀÎ »ç¿ëÀÚ °èÁ¤ °ü¸® ½Ã½ºÅÛÀ» ¸¸µå´Âµ¥ µµ¿òÀÌ µÈ´Ù. ¹Ýº¹ ÀÛ¾÷À» ½ºÅ©¸³Æ®·Î ó¸®ÇÒ ¼öµµ ÀÖ°í À¥ ÀÎÅÍÆäÀ̽º¿Í ¿¬µ¿À» ÇÒ ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. ¾î·µç, ¿ì¸®°¡ °ü½ÉÀÌ ÀÖ´Â ½Ã½ºÅÛÀº ÀÌ·± ´ë±Ô¸ð ½Ã½ºÅÛÀº ¾Æ´Ï´Ï ½ÉÇÃÇÔÀÌ ½Ã½ºÅÛÀ̳ª ·¹ÀÌ¾î °£¿¡ ÀÎÅÍÆäÀ̽º¸¦ ±¸¼ºÇϴµ¥ µµ¿òÀÌ µÉ ¼ö ÀÖ´Ù´Â Á¡¸¸ üũÇÏ°í ³Ñ¾î°¡µµ·Ï ÇÏÀÚ.
/dev, /proc
À¯´Ð½ºÀÇ Æ¯Â¡ ÁßÀÇ Çϳª´Â ¸ðµç °ÍÀ» ÆÄÀϷΠó¸®ÇÑ´Ù´Â Á¡ÀÌ´Ù. À̰ÍÀÌ À¯´Ð½º »óÀÇ ÇÁ¸°ÆÃ°ú °°ÀÌ ¾î¶³ ¶§´Â ÀÚÀ¯µµ°¡ Áö³ªÄ£ ±î´ß¿¡ ¿ÀÈ÷·Á º¹ÀâÇÑ »óȲÀ» ÃÊ·¡Çϱ⵵ ÇÏÁö¸¸ /dev ó·³ µð¹ÙÀ̽ºµµ ÆÄÀÏ·Î, /proc ó·³ ÇÁ·Î¼¼½º¿Í ½Ã½ºÅÛ Á¤º¸µµ ÆÄÀϷΠó¸®ÇÏ´Â ¾ÆÀ̵ð¾î´Â ÇѹøÂë ¤°í ³Ñ¾î°¥ Çʿ䰡 ÀÖ´Ù. ¿©±â¼´Â /proc ÆÄÀϽýºÅÛÀ» À§ÁÖ·Î »ìÆìº¸ÀÚ.
/proc ÆÄÀϽýºÅÛ¿¡ µé¾î°¡ º¸¸é ¸Ç óÀ½ º¸ÀÌ´Â °ÍÀÌ ¼ö¹éMB Á¤µµÀÇ Å©±â¸¦ °®´Â kcore ÆÄÀÏÀÌ´Ù. À¯½ÉÈ÷ º¸¸é, kcore ÆÄÀÏÀÇ »çÀÌÁî°¡ ÀÚ½ÅÀÇ ½Ã½ºÅÛ ¸Þ¸ð¸® Å©±â¿Í ÀÏÄ¡ÇÑ´Ù´Â »ç½ÇÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌ·¸°Ô, /proc ÆÄÀϽýºÅÛÀº °¡»óÀÇ ÆÄÀϽýºÅÛÀ¸·Î¼ ÇöÀçÀÇ ½Ã½ºÅÛ Á¤º¸¸¦ ÆÄÀÏÀÇ Çü½ÄÀ» ºô¾î ÀúÀåÇØ ³õ°í Àִµ¥ ¿©±â¼ ¸î °¡Áö Áß¿äÇÑ ÆÄÀϵéÀº ´ÙÀ½°ú °°´Ù. ´ëºÎºÐÀº more ¸í·ÉÀ̳ª vi¿Í °°Àº ¿¡µðÅÍ·Î Á÷Á¢ ¿¾îº¼ ¼ö ÀÖ´Â ÅØ½ºÆ® Çü½ÄÀÇ ÆÄÀϵéÀÌ´Ù.
Çϵå¿þ¾î Á¤º¸
/proc/cpuinfo - ½Ã½ºÅÛ CPU¿¡ °üÇÑ Á¤º¸°¡ µé¾î°¡ ÀÖ´Ù.
/proc/interrupts - ½Ã½ºÅÛ Çϵå¿þ¾î ÀÎÅÍ·´Æ® »ç¿ë Á¤º¸
/proc/dma - dma Á¤º¸
/proc/devices - Ä¿³Î¿¡ ¼³Á¤µÇ¾î ÀÖ´Â µð¹ÙÀ̽º Á¤º¸
ÇöÀç ½Ã½ºÅÛ ±¸µ¿ Á¤º¸
/proc/net - ³×Æ®¿öÅ© Á¤º¸
/proc/uptime - ½Ã½ºÅÛÀÌ ºÎÆÃ ÈÄ Áö±Ý±îÁö °è¼ÓÇØ¼ ÄÑÁ® ÀÖ´Â ½Ã°£
/proc/stat - ¿©·¯ °¡Áö ½Ã½ºÅÛ Á¤º¸
/proc/loadavg - ½Ã½ºÅÛ¿¡ ºÎÇϰ¡ °É¸° Á¤µµ
/proc/meminfo - ½Ã½ºÅÛ ¸Þ¸ð¸® »ç¿ë Á¤º¸
/proc/modules - ÇöÀç ·ÎµùµÇ¾î ÀÖ´Â ¸ðµâ Á¤º¸
/proc µð·ºÅ丮 ¾Æ·¡¿¡ ¼ýÀÚ·Î ¸¸µé¾îÁø µð·ºÅ丮´Â ¸ðµÎ ½ÇÇàÁßÀÎ ÇÁ·Î¼¼½ºÀÌ´Ù. ÀÌ µð·ºÅ丮 ¾È¿¡ µé¾î°¡¸é ±× ÇÁ·Î¼¼½º¿¡ °üÇÑ ¿©·¯°¡Áö Á¤º¸¸¦ ¾Ë ¼ö ÀÖ´Ù. Âü°í·Î À©µµ¿ìÀÇ µð¹ÙÀ̽º µå¶óÀ̹ö¿Í ¸®´ª½ºÀÇ ¸ðµâÀ» È¥µ¿ÇÏ´Â °æ¿ì°¡ °£È¤ ÀÖ´Â °Í °°¾Æ ¼³¸íÀ» ¸î ÀÚ µ¡ºÙÀ̸é, ¸®´ª½ºÀÇ ¸ðµâÀº À©µµ¿ìÀÇ µð¹ÙÀ̽º µå¶óÀ̹ö¿Í °°´Ù°í »ý°¢Çصµ µÇÁö¸¸ ¸®´ª½º ¸ðµâÀº ´Ü¾î ±×´ë·Î modularÇÏ´Ù´Â ÀåÁ¡ÀÌ ÀÖ´Ù. ¸®´ª½º ¸ðµâÀ» ÀÌ¿ëÇÏ¸é ½Ã½ºÅÛÀ» ÀçºÎÆÃÇÏÁö ¾Ê°íµµ µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ ·Îµù(loading)/¾ð·Îµù(unloading) ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ÀÌ·± ÀÌÀ¯·Î ¸®´ª½º¿¡¼´Â ÀÚÁÖ ¾²ÀÌÁö ¾Ê´Â Çϵå¿þ¾î´Â ÇÊ¿äÇÒ ¶§¸¸ ¸ðµâÀ» ·ÎµùÇÏ°í ±× Çϵå¿þ¾î¸¦ »ç¿ëÇÑ ´ÙÀ½ ´Ù½Ã ¸ðµâÀ» ¾ð·ÎµåÇØ¼ ½Ã½ºÅÛ ÀÚ¿øÀ» ¾Æ²¸ ¾µ ¼ö ÀÖ´Ù.
$ cd /proc/862
$ ls
cmdline cwd environ exe fd maps mem mounts root stat statm status
$ ls -al
ÇÕ°è 0
dr-xr-xr-x 3 mp3 mp3 0 2004-06-17 16:55 .
dr-xr-xr-x 112 root root 0 2004-06-10 20:52 ..
-r--r--r-- 1 mp3 mp3 0 2004-06-17 16:56 cmdline
lrwxrwxrwx 1 mp3 mp3 0 2004-06-17 16:56 cwd -> /proc/862
-r-------- 1 mp3 mp3 0 2004-06-17 16:56 environ
lrwxrwxrwx 1 mp3 mp3 0 2004-06-17 16:56 exe -> /bin/bash
dr-x------ 2 mp3 mp3 0 2004-06-17 16:56 fd
-r--r--r-- 1 mp3 mp3 0 2004-06-17 16:56 maps
-rw------- 1 mp3 mp3 0 2004-06-17 16:56 mem
-r--r--r-- 1 mp3 mp3 0 2004-06-17 16:56 mounts
lrwxrwxrwx 1 mp3 mp3 0 2004-06-17 16:56 root -> /
-r--r--r-- 1 mp3 mp3 0 2004-06-17 16:56 stat
-r--r--r-- 1 mp3 mp3 0 2004-06-17 16:56 statm
-r--r--r-- 1 mp3 mp3 0 2004-06-17 16:56 status
$ more cmdline
-bash
$ more environ
USER=foobar=foobarHOME=/home/foobar/resources/CD-RipPATH=/usr/local/bin:/bin:/u
sr/bin:/usr/X11R6/binMAIL=/var/mail/mp3SHELL=/bin/bashSSH_CLIENT=
220.73.160.119
39288 22SSH_CONNECTION=220.73.160.119 39288 147.66.166.66 22SSH_TTY=/dev/pts/4TE
RM=xtermLANG=ko_KR.EUC-KR
$ more stat
862 (bash) S 861 862 862 34820 937 0 1253 1913 387 8166 7 1 15 37 15 0 0 0 62030
688 4096000 440 4294967295 134512640 135116540 3221224976 3221224296 1074886392
0 65536 3686404 1266761467 3222391889 0 0 17 0
ÀÌ·¯ÇÑ /proc ÆÄÀÏ ½Ã½ºÅÛÀÇ Á¤º¸¸¦ Á» ´õ »ç¿ëÀÚ°¡ ÆíÇÏ°Ô º¼ ¼ö ÀÖµµ·Ï ÇØ ÁÖ´Â °ÍµéÀÌ ps, top, uname, uptime°ú °°Àº ¸í·É¾îµéÀÌ´Ù.
/usr
/usr µð·ºÅ丮 ¾Æ·§ÂÊ¿¡´Â ´Ù¾çÇÑ ¼ºêµð·ºÅ丮°¡ Á¸ÀçÇÑ´Ù. XÀ©µµ¿ì°¡ /usr/X11R6 µð·ºÅ丮 ¾Æ·¡ÂÊÀ¸·Î À§Ä¡Çϰí ÀÖÀ¸¸ç /usr/share, /usr/doc°ú °°Àº µð·ºÅ丮µéµµ Á¸ÀçÇÑ´Ù. ¿©±â¼ ´«¿©°Ü º¼ °ÍÀº /usr/lib µð·ºÅ丮 ¾Æ·§ÂÊÀÇ ¶óÀ̺귯¸®µé°ú /usr/include ¾Æ·¡ÂÊÀÇ Çì´õ ÆÄÀϵéÀÌ´Ù. À̰÷¿¡ µé¾î°¡ ÀÖ´Â ¶óÀ̺귯¸®¿Í Çì´õÆÄÀϵéÀº ÄÄÆÄÀÏ·¯°¡ ¸í½ÃÀûÀ¸·Î µð·ºÅ丮¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Æµµ ¾Ë¾Æ¼ ã¾Æ ÁØ´Ù.
´ÙÀ½ È£¿¡¼´Â °³¹ßÀÚ¿¡°Ô ÇÊ¿äÇÑ µµ±¸¸¦
À̹ø È£¿¡¼´Â À¯´Ð½ºÀÇ º¸¾È ¸ðµ¨ÀÇ ±âÃʰ¡ µÇ´Â ÆÄÀÏ ÆÛ¹Ì¼Ç°ú ¼ÒÀ¯±Ç¿¡ °ü·ÃÇÑ ³»¿ë, ±×¸®°í ¸®´ª½º ½Ã½ºÅÛÀ» Á¢ÇßÀ» ¶§ ½±°Ô Ä£¼÷ÇØÁöÁö ¾Ê´Â °³³ä°ú ¸í½ÃÀûÀ¸·Î Àß ±â¼úµÇ¾î ÀÖÁö ¾Ê´Â ÀüÅëÀûÀÎ °ü½ÀÀ» ¸í·É¾î¿Í ÇÔ²² ¾Ë¾Æº¸¾Ò´Ù. ´ÙÀ½ È£¿¡¼´Â À̹ø È£ ±â»ç¿¡¼ Á¶±Ý ´õ º¸ÃæÇÒ Çʿ䰡 ÀÖ´Â À¯´Ð½º ¸í·É¾î¸¦ Àá±ñ Ãß°¡ÇÏ°í °³¹ßÀڵ鿡°Ô ÇʼöÀûÀÎ ¿¡µðÅÍ¿Í ´Ù¸¥ º¸Á¶ µµ±¸µéÀÇ »ç¿ë¹ýÀ» ´Ù·ç¾î º¸µµ·Ï ÇϰڴÙ. @
| |
| À¯´Ð½º¿¡ ÀûÀÀÇÏ¸é¼ °Þ°Ô µÇ´Â ³¸¼³À½ ÁßÀÇ Çϳª°¡ man ¸í·É¾îÀÇ »ý¼ÒÇÔÀÌ´Ù. À©µµ¿ìÀÇ µµ¿ò¸»°ú´Â ´Þ¸® man ¸í·É¾î´Â »ó´çÈ÷ ³»¿ëÀÌ ¾î·Æ°í Çü½ÄÀÌ Áö³ªÄ¡°Ô µüµüÇÑ ¸éÀÌ ¾øÁö ¾Ê°í, À¥°ú °°Àº ÇÏÀÌÆÛÅØ½ºÆ®°¡ ÀÌ¹Ì ÀϹÝÈµÈ Áö±Ý¿¡´Â ±×´ÙÁö ¸Å·ÂÀûÀ¸·Î º¸ÀÌÁö ¾ÊÀ» ¼öµµ ÀÖÁö¸¸ À¯´Ð½º ¸Å´º¾ó ÆäÀÌÁöÀÇ °Á¡Àº ±× °£°áÇÔ°ú ÅëÀÏµÈ Çü½ÄÀÌ´Ù. Àͼ÷ÇØÁú¼ö·Ï Æí¸®ÇØÁö´Â À¯´Ð½º¿Í ¸¶Âù°¡Áö·Î ¸Å´º¾ó ÆäÀÌÁöµµ Àͼ÷ÇØÁö´Â ³ë·ÂÀ» µéÀϸ¸ÇÑ °¡Ä¡°¡ ÀÖ´Ù.
man ¸í·ÉÀÇ Çü½ÄÀº man ¸í·É¾î ´ÙÀ½¿¡ ±Ã±ÝÇÑ »çÇ×À» Àû¾îÁÖ¸é µÇ´Â °£´ÜÇÑ ±¸Á¶¸¦ °®°í ÀÖ´Ù. ÇÏÁö¸¸ ¸Å´º¾ó ÆäÀÌÁö´Â ¿ø·¡ ¼°¡¿¡ ÀÖ´Â ¿©·¯ ±ÇÀÇ ¸Å´º¾óÀÇ ±¸Á¶¸¦ °®°í ÀÖ´Ù. ¸Å´º¾ó ÆäÀÌÁö´Â ´ÙÀ½ÀÇ 8°¡Áö ÆÄÆ®·Î ±¸¼ºµÇ¾î ÀÖ´Ù.
Commands available to users
Unix and C system calls
C library routines for C programs
Special file names
File formats and conventions for files used in Unix
Games
Word processing packages
System administration commands and procedures
¿©±â¼ ´«¿©°Ü º¼ ºÎºÐÀº ¼½¼Ç 3ÀÌ´Ù. ¿¹¸¦ µé¾î, À¢¸¸ÇÑ C ÇÔ¼öµéÀº À̰÷¿¡ ¸ðµÎ Á¤¸®°¡ µÇ¾î ÀÖ´Ù. man ¸í·É¾î´Â ´Ü¼øÈ÷ À¯´Ð½º ¸í·É¾î¿¡ °üÇÑ ¼³¸í¸¸ ´Ù·ç´Â °ÍÀÌ ¾Æ´Ï°í ¸Å´º¾óÈ ÇÒ Çʿ䰡 ÀÖ´Â Ç׸ñµéÀ» ¸ðµÎ ´ã°í ÀÖ´Â °ÍÀÌ´Ù. ±×·±µ¥ ¿©±â¼ Çϳª Á¶½ÉÇØ¾ß ÇÒ °ÍÀÌ, man ´ÙÀ½ÀÇ Ç׸ñÀÌ ¿©·¯ ¼½¼Ç¿¡ °ÉÃÄ ÀÖ´Â °æ¿ìÀÌ´Ù. ¿¹¸¦ µé¾î printf ÇÔ¼ö¿¡ ´ëÇÑ ¸Å´º¾ó ÆäÀÌÁö¸¦ º¸°í ½Í¾î¼ man printf¸¦ ÇÏ¸é ´ÙÀ½°ú °°ÀÌ ¼½¼Ç 1ÀÇ À¯´Ð½º ¸í·É¾î¿¡ °üÇÑ ¸Å´º¾ó ÆäÀÌÁö°¡ µðÆúÆ®·Î Ãâ·ÂµÈ´Ù.
PRINTF(1) FSF PRINTF(1)
NAME
printf - format and print data
SYNOPSIS
printf FORMAT [ARGUMENT]...
printf OPTION
DESCRIPTION
Print ARGUMENT(s) according to FORMAT.
--help display this help and exit
--version
output version information and exit
(ÀÌÇÏ »ý·«)
±×·¯³ª ¿ì¸®°¡ ã°í ½ÍÀº printf ÇÔ¼öÀÇ ¸Å´º¾ó ÆäÀÌÁö´Â ÇÁ·Î±×·¡¹Ö¿¡ °ü·ÃµÈ ¼½¼Ç 3¿¡ ÀúÀåµÇ¾î ÀÖ´Ù. ¼½¼Ç 3À» ¸í½ÃÀûÀ¸·Î ÁöÁ¤ÇØ ÁÖ·Á¸é ´ÙÀ½°ú °°ÀÌ ¼½¼Ç ³Ñ¹ö¸¦ Àû¾îÁÖ¸é µÈ´Ù.
$ man 3 printf
±×·¯¸é ¿ì¸®°¡ ¿øÇÏ´Â printf ÇÔ¼ö¿¡ ´ëÇÑ ¸Å´º¾ó ÆäÀÌÁö°¡ Ãâ·ÂµÈ´Ù.
PRINTF(3) Linux Programmer's Manual PRINTF(3)
NAME
printf, fprintf, sprintf, snprintf, vprintf, vfprintf,
vsprintf, vsnprintf - formatted output conversion
SYNOPSIS
#include
int printf(const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const char *format,
...);
ÀÌ·¸°Ô ¿©·¯ ¼½¼Ç¿¡ À̸§ÀÌ °°Àº Ç׸ñÀÌ Á¸ÀçÇÏ´Â °æ¿ì¸¦ ½±°Ô ã±â À§Çؼ´Â man -k ¸í·ÉÀ» »ç¿ëÇϸé ÁÁ´Ù. (man -k ´ë½Å¿¡ apropos¸í·É¾î¸¦ ½áµµ µÈ´Ù) printfÀÇ °æ¿ì man -k ¸í·ÉÀ» ¾²¸é ´ÙÀ½°ú °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù.
$ man -k printf
printf (1) - format and print data
printf (3) - formatted output conversion
½Ã½ºÅÛ ¼³Á¤ ÆÄÀÏÀÇ ¹®¹ýµµ ¸Å´º¾ó ÆäÀÌÁö¿¡¼ ´Ù·ç´Â Ç׸ñ ÁßÀÇ ÇϳªÀÌ´Ù. ¿¹¸¦ µé¾î /etc/passwdÀÇ ¹®¹ýÀ» ÂüÁ¶ÇÏ°í ½ÍÀ» ¶§´Â ´ÙÀ½°ú °°ÀÌ ¿øÇÏ´Â ¸Å´º¾ó ÆäÀÌÁö¸¦ ãÀ» ¼ö ÀÖ´Ù. Âü°í·Î ¼½¼Ç 5´Â ½Ã½ºÅÛ ¼³Á¤ÆÄÀÏÀ» ´Ù·é´Ù.
$ man -k passwd
passwd (1) - update a user's authentication tokens(s)
passwd (5) - password file
$ man 5 passwd
PASSWD(5) File formats PASSWD(5)
NAME
passwd - password file
DESCRIPTION
Passwd is a text file, that contains a list of the sys-
tem's accounts, giving for each account some useful infor-
mation like user ID, group ID, home directory, shell, etc.
Often it also contains the encrypted passwords for each
account. It should have general read permission (many
utilities, like ls(1) use it to map user IDs to user
names), but write access only for the superuser.
¸Å´º¾ó ÆäÀÌÁö¸¦ °è¼Ó »ìÆìº¸¸é ¾Ë°ÚÁö¸¸, ¸®´ª½º ½Ã½ºÅÛÀÇ ¸Å´º¾ó ÆäÀÌÁö´Â ´Ü¼øÈ÷ ¸®´ª½º ¿î¿µÃ¼Á¦¿Í ÇÁ·Î±×·¡¹Ö¿¡ °ü·ÃµÈ ºÎºÐ À̿ܿ¡ Perl ·¹ÆÛ·±½º °¡À̵å(perl reference guide)¿Í °°Àº ¾óÇÍ »ý°¢Çϱ⿡´Â µû·Î ´Ù¿î¹Þ¾Æ¾ß ÇÒ °Í °°Àº Á¤º¸µµ ¹æ´ëÇÑ ¾çÀÌ ÀÌ¹Ì µé¾î°¡ ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù.
Âü°í·Î GNU ½Ã½ºÅÛ¿¡¼´Â manº¸´Ù´Â infoÀÇ »ç¿ëÀ» ±ÇÀåÇϰí ÀÖ´Ù. info´Â man°ú ºñ½ÁÇÑ ±¸Á¶¸¦ °®°í ÀÖÁö¸¸ ÇÏÀÌÆÛÅØ½ºÆ® ±â´ÉÀÌ µé¾î°¡ ÀÖ¾î ºê¶ó¿ì¡ÀÌ Á» ´õ Æí¸®ÇÏ´Ù. ¿©±â¼´Â info´Â ´Ù·çÁö ¾Ê±â·Î ÇÑ´Ù.
Áö±ÝÀº ¸¹ÀÌ ÀØÇôÁ®°¡´Â Å×Å©´ÐÀÌÁö¸¸ °íÀüÀûÀÎ À¯´Ð½º ¹æ½ÄÀ¸·Î Ãâ·Â¿ë ±ò²ûÇÑ ¸Þ´º¾ó ÆäÀÌÁö¸¦ ¸¸µé¾î º¸ÀÚ. man ¸í·É¾î¿¡´Â -t ¿É¼ÇÀ» ÁÖ¸é ¸Å´º¾ó ÆäÀÌÁö¸¦ Æ÷½ºÆ®½ºÅ©¸³Æ® Çü½ÄÀ¸·Î Ãâ·ÂÀ» ÇØ ÁØ´Ù. Çѹø °í½ºÆ®½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇØ¼ ¾î¶² ¸ð½ÀÀ¸·Î Ãâ·ÂÀÌ µÉ °ÍÀÎÁö ÇÁ¸®ºä¸¦ ÇØ º¸ÀÚ. gvÀÇ - ¿É¼ÇÀº Æ÷½ºÆ®½ºÅ©¸³Æ® ÆÄÀÏ ÀÔ·ÂÀ» Ç¥ÁØ Ãâ·Â¿¡¼ ¹Þ°Ú´Ù´Â ¿É¼ÇÀÌ´Ù.
$ man -t 5 passwd | gv -
À̰ÍÀ» pdf ÆÄÀÏ·Î ¸¸µé·Á¸é ´ÙÀ½°ú °°Àº °£´ÜÇÑ ¸í·É¾î·Î ÇØ°áÀÌ µÉ °ÍÀÌ´Ù. ½ÉÇÃÇÑ ¸í·É¾î ÇѵΠ°¡Áö·Î º¹ÀâÇÑ ±â´É±îÁö ó¸®ÇØ ³»´Â À¯´Ð½ºÀÇ ¹ÌÇÐÀÌ µå·¯³ª´Â ºÎºÐÀÌ´Ù.
$ man -t 5 passwd | ps2pdf > passwd_manual.pdf
| | | | | |
| |
* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ ÀÚ¸ÅÁöÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.