File?
FileÀ̶õ ¹ÙÀÌÆ®(byte)µéÀÇ ÁýÇÕÀÌ´Ù. Unix¿¡¼´Â ¸ðµç fileÀ» ¿¬¼ÓµÈ byteÀÇ ÁýÇÕÀ¸·Î Ãë±ÞÇϸç, file¿¡ ´ëÇØ¼ ¾î¶² ƯÀÌÇÑ ±¸Á¶³ª Àǹ̸¦ ºÎ¿©ÇÏÁö ¾Ê´Â´Ù. Áï, ÀÓÀÇÀÇ fileÀ» Àаí À̸¦ ÀûÀýÇÏ°Ô ÇØ¼®ÇÏ´Â °ÍÀº ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¸ò ÀÌ´Ù. ´õ ³î¶ó¿î »ç½ÇÀº Unix´Â ´ë´Ù¼öÀÇ ÁÖº¯ ÀåÄ¡¸¦ ÆÄÀÏ·Î Ãë±ÞÇÏ°í »ç¿ëÇÑ´Ù´Â °ÍÀÌ´Ù. À¯´Ð½º¿¡¼´Â ÇÁ¸°ÅÍ·Î ±ÛÀÚ¸¦ Âï°Å³ª, µð½ºÅ©·ÎºÎÅÍ ÀڷḦ Àоî¿À°Å³ª, ÆÄÀÌÇÁ(pipe)¸¦ »ç¿ëÇØ¼ ÇÁ·Î¼¼½º°£ Åë½ÅÀ» Çϰųª, ½ÉÁö¾î Ä¿³ÎÀÇ ¸Þ¸ð¸®¸¦ Àоî¿À´Â °æ¿ì¿¡µµ ¸ðµÎ fileÀ» »ç¿ëÇÏ°Ô µÈ´Ù. ´Ù½Ã ¸»ÇØ, ¡®UNIX = files + utilities¡¯¶ó´Â ¸»¿¡¼µµ ¾Ë ¼ö ÀÖµíÀÌ Unix ½Ã½ºÅÛ¿¡¼
file systemÀº ¸Å¿ì Å« ºñÁßÀ» Â÷ÁöÇÑ´Ù.
UnixÀÇ file systemÀº file°ú directory·Î ±¸¼ºµÇ¸ç, directory¸¦ »ç¿ëÇÏ¿© fileµéÀ» °èÃþÀûÀ¸·Î
°ü¸®ÇÑ´Ù. Directory´Â ½±°Ô ¸»ÇØ ´Ù¸¥ fileÀ» ´ã°í ÀÖ´Â fileÀ̶ó ÇÒ ¼ö ÀÖ´Ù.
fileÀÇ ³»¿ëÀ» º¸¿©ÁÖ´Â ¸í·ÉÀÎ od(1)¸¦ »ç¿ëÇϸé, directory°¡ fileÀÓÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
$ od –t a .
´ÙÀ½Àº Áö³ ½Ã°£¿¡ ¹è¿î file°ú directoryµéÀ» ´Ù·ç´Â ¸í·É¾îµéÀÌ´Ù.
pwd, ls, cp, rm, mv, cat, od, chdir, mkdir, rmdir, file
File System
Unix ´Â systemÀ» ¿î¿µÇϱâ À§ÇÑ Á¤º¸¿Í ÇÁ·Î±×·¥µé ¿ª½Ã file·Î °ü¸®Çϰí ÀÖ´Ù. ´ÙÀ½Àº HP-UX¿Í SunOS¿¡¼ °®´Â ÀϹÝÀûÀÎ directory±¸Á¶ÀÇ ÀϺÎÀÌ´Ù.
SunOS 4.x ÆÄÀÏ ½Ã½ºÅÛÀÇ °èÃþ(BSD °è¿) /: ÆÄÀÏ ½Ã½ºÅÛÀÇ root µð·ºÅ丮 /dev/: °¢Á¾ µð¹ÙÀ̽º ÆÄÀÏÀÌ ÀÖ´Â µð·ºÅ丮 /etc/: ½Ã½ºÅÛ¿¡ ¹ÐÁ¢ÇÑ °ü·ÃÀÌ ÀÖ´Â ÀÚ·á ÆÄÀϵé /export/: Ŭ¶óÀÌ¾ðÆ®µéÀ» À§Çؼ ¿ÜºÎ·Î °ø°³µÉ(export) ÆÄÀϰú ÆÄÀϽýºÅÛÀ» À§ÇÑ Á¡¼ÓÁ¡ /home/: ¿ø°Å¸®¿¡¼ ºÙ¿©Áø »ç¿ëÀÚµéÀÇ µð·ºÅ丮 /lost+found/:
fsck(8)µî¿¡ ÀÇÇØ¼ ¹ß°ßµÈ °áÇÔÀÖ´Â ÆÄÀÏ¿¡ ´ëÇÑ Á¤º¸°¡ º¸°üµÇ´Â µð·ºÅ丮 /mnt/: ÀϽÃÀûÀ¸·Î ºÙ¿©Áö´Â ÆÄÀϽýºÅÛÀ» À§ÇÑ Á¢¼ÓÁ¡ /sbin/: /usr/À» ºÙÀ̱â À§Çؼ ÇÊ¿äÇÑ ½ÇÇàÆÄÀϵéÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /tmp/: Àӽà ÆÄÀϵéÀ» ÀúÀåÇÏ´Â µð·ºÅ丮 /var/: Å©±â°¡ Áõ°¡ÇÒ ¿ì·Á°¡ ÀÖ´Â ÆÄÀϵéÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /var/adm/: °ü¸®ÀÚ¸¦ À§ÇÑ ±â·Ï ÆÄÀϵéÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /var/preserve/:
vi(1)µîÀÌ Àç³À» ´çÇßÀ»¶§ º¹±¸¸¦ À§ÇÑ ÆÄÀϵéÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /var/spool/: Áö¿¬ °¡´É¼ºÀ» Áö´Ñ ÀÛ¾÷µéÀ» À§ÇÑ µð·ºÅ丮 /var/spool/mail/:
mail(1)À» À§ÇÑ ÆíÁö»óÀÚµéÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /var/spool/lpd/:
lpr(1)À» À§ÇÑ ÇÁ¸°ÅÍ /var/tmp/: Àӽà ÆÄÀϵéÀ» ÀúÀåÇÏ´Â µð·ºÅ丮 /var/yp/:
NIS(Network Information System) °ü·Ã Á¤º¸¸¦ ÀúÀåÇÏ´Â µð·ºÅ丮 /usr/: ÀϹÝÀû ¸ñÀûÀ» À§ÇÑ µð·ºÅ丮 /usr/bin/: À¯Æ¿¸®Æ¼ ÇÁ·Î±×·¥µéÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /usr/dict/: ´Ü¾î ¸ñ·Ï /usr/etc/: ½Ã½ºÅÛ °ü¸® ¸ñÀûÀÇ ÇÁ·Î±×·¥ÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /usr/games/: À¯´Ð½ºÀÇ Ç¥ÁØ °ÔÀÓÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /usr/include/: Ç¥ÁØ ÀÎÅ©·çµå ÆÄÀϵéÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /usr/lib/: ¶óÀ̺귯¸®, ÄÄÆÄÀÏ·¯ ÇÁ·Î±×·¥, ±âŸ ¸ñÀû ÆÄÀϵéÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /usr/local/: Áö¿ªÀûÀ¸·Î À¯Áöº¸¼öµÇ¾î¾ß ÇÒ ¼ÒÇÁÆ®¿þ¾îµéÀÌ µé¾îÀÖ´Â /usr/share/: ¾ÆÅ°ÅØÃÄ¿¡ ¹«°üÇÑ ÆÄÀϵéÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /usr/share/lib/:
¾ÆÅ°ÅØÃÄ¿¡ ¹«°üÇÑ ÀÚ·á ÆÄÀϵéÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /usr/share/man/:
¸Þ´º¾ó ÆäÀÌÁö°¡ µé¾îÀÖ´Â µð·ºÅ丮 /usr/share/sys/:
SunOS Ä¿³ÎÀÇ ¼Ò½º¿Í ±âŸ ¸ñÀû ¸ðµâÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /usr/ucb/: ͏®Æ÷´Ï¾Æ, ¹ö¾îŬ¸®¿¡¼ °³¹ßµÈ ÇÁ·Î±×·¥ÀÇ ½ÇÇàÆÄÀÏÀÌ µé¾îÀÖ´Â µð·ºÅ丮 HP-UX 9.x ÆÄÀÏ ½Ã½ºÅÛÀÇ °èÃþ(SYSTEM V °è¿) /: ÆÄÀÏ ½Ã½ºÅÛÀÇ »Ñ¸® µð·ºÅ丮 /bin/: ÀÚÁÖ »ç¿ëµÇ´Â »ç¿ëÀÚ ¸í·É¾î¿Í ½Ã½ºÅÛÀÇ ±âº»ÀûÀÎ ¸í·É¾î¸¦ ¸ð¾ÆµÐ µð·ºÅ丮 /dev/: °¢Á¾ µð¹ÙÀ̽º ÆÄÀÏÀÌ ÀÖ´Â µð·ºÅ丮 /etc/: ½Ã½ºÅÛ¿¡ ¹ÐÁ¢ÇÑ °ü·ÃÀÌ ÀÖ´Â ÀÚ·á ÆÄÀϵéÀÌ ÀÖ´Â µð·ºÅ丮 /etc/newconfig/:
»õ·ÎÀÌ °³¼±µÈ Á¶Àý ÆÄÀϵéÀÌ ÀÖ´Â µð·ºÅ丮 /lib/: ÀÚÁÖ »ç¿ëµÇ´Â ¸ñÀûÄÚµå ¶óÀ̺귯¸®¿Í ¿¬°üµÈ À¯Æ¿¸®Æ¼°¡ ÀÖ´Â µð·ºÅ丮 /lost+found/:
fsck(8)µî¿¡ ÀÇÇØ¼ ¹ß°ßµÈ °áÇÔÀÖ´Â ÆÄÀÏ¿¡ ´ëÇÑ Á¤º¸°¡ º¸°üµÇ´Â µð·ºÅ丮 /rbin/: rsh(1)¿¡ ÀÇÇØ¼ Á¢¼ÓµÉ °æ¿ì »ç¿ëµÇ´Â Á¦ÇÑµÈ È¯°æÀÇ µð·ºÅ丮 /tmp/: Àӽ÷Π»ç¿ëµÉ ÆÄÀϵéÀÌ ÀúÀåµÇ´Â µð·ºÅ丮 /users/: »ç¿ëÀÚ È¨ µð·ºÅ丮 /usr/: º¸´Ù ÀûÀº ºóµµ·Î »ç¿ëµÇ´Â ¸í·É¾î¿Í ±âŸ ¸í·É¾î°¡ ÀÖ´Â µð·ºÅ丮 /usr/bin/:
/bin/ ¿¡ µé¾îÀÖ´Â ±âº»ÀûÀÎ ½ÇÇàÆÄÀÏ ÀÌ¿Ü ÇÊ¿äÇÑ °ÍµéÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /usr/contrib/: »ç¿ëÀÚ¿¡ ÀÇÇØ¼ ºÐ¹èµÇ´Â ¸í·É¾î, ÆÄÀϵéÀÌ µé¾îÀÖ´Â µð·ºÅ丮 /usr/contrib/bin/:
»ç¿ëÀÚ¿¡ ÀÇÇØ¼ ºÐ¹èµÇ´Â ¸í·É¾î°¡ ÀÖ´Â µð·ºÅ丮 /usr/contrib/games/:
»ç¿ëÀÚ¿¡ ÀÇÇØ¼ ºÐ¹èµÇ´Â °ÔÀÓÀÌ ÀÖ´Â µð·ºÅ丮 /usr/contrib/include/:
»ç¿ëÀÚ¿¡ ÀÇÇØ¼ ºÐ¹èµÇ´Â ÀÎÅ©·çµå ÆÄÀÏÀÌ ÀÖ´Â µð·ºÅ丮 /usr/contrib/lib/:
»ç¿ëÀÚ¿¡ ÀÇÇØ¼ ºÐ¹èµÇ´Â ¶óÀ̺귯¸®°¡ ÀÖ´Â µð·ºÅ丮 /usr/contrib/man/:
»ç¿ëÀÚ¿¡ ÀÇÇØ¼ ºÐ¹èµÇ´Â ¸Å´º¾ó ÆäÀÌÁö°¡ ÀÖ´Â µð·ºÅ丮 /usr/include/: °í¼öÁØÀÇ C ¾ð¾î¿¡¼ »ç¿ëµÇ´Â Çì´õÆÄÀÏ /usr/lib/: º¸´Ù ÀûÀº ºóµµ·Î »ç¿ëµÇ´Â ¶óÀ̺긮¸®°¡ ÀÖ´Â µð·ºÅ丮 /usr/lib/acct/:
½Ã½ºÅÛ °ü¸®ÀÚ¿¡ ÀÇÇØ¼ »ç¿ëµÇ´Â ¸í·É¾î°¡ ÀÖ´Â µð·ºÅ丮 /usr/lib/spell/:
spell(1)¿¡ ÀÇÇØ¼ »ç¿ëµÇ´Â ÀÚ·á°¡ ´ã±ä µð·ºÅ丮 /usr/local/: »çÀÌÆ®¿¡ °ü·ÃµÇ¾î¼ Áö¿ªÀûÀ¸·Î À¯ÁöµÉ ¸í·É¾î¿Í ÆÄÀÏÀ» ´ãÀº µð·ºÅ丮 /usr/local/bin/:
»çÀÌÆ®¿¡ °ü·ÃµÇ¾î Áö¿ªÀûÀ¸·Î À¯ÁöµÉ ¸í·É¾î°¡ ÀÖ´Â µð·ºÅ丮 /usr/local/games/:
»çÀÌÆ®¿¡ °ü·ÃµÇ¾î Áö¿ªÀûÀ¸·Î À¯ÁöµÉ °ÔÀÓÀÌ ÀÖ´Â µð·ºÅ丮 /usr/local/include/:
»çÀÌÆ®¿¡ °ü·ÃµÇ¾î Áö¿ªÀûÀ¸·Î À¯ÁöµÉ include ÆÄÀÏÀÌ ÀÖ´Â µð·ºÅ丮 /usr/local/lib/:
»çÀÌÆ®¿¡ °ü·ÃµÇ¾î Áö¿ªÀûÀ¸·Î À¯ÁöµÉ ¶óÀ̺귯¸®°¡ ÀÖ´Â µð·ºÅ丮 /usr/local/man/:
»çÀÌÆ®¿¡ °ü·ÃµÇ¾î Áö¿ªÀûÀ¸·Î À¯ÁöµÉ ¸Å´º¾ó ÆäÀÌÁö°¡ ÀÖ´Â µð·ºÅ丮 /usr/mail/: »ç¿ëÀÚ ÆíÁö»óÀÚ°¡ ÀÖ´Â µð·ºÅ丮 /usr/man/:
man(1)¿¡ ÀÇÇØ¼ »ç¿ëµÇ´Â ¸Å´º¾ó ÆäÀÌÁö°¡ ÀÖ´Â µð·ºÅ丮 /usr/news/: Áö¿ª ´º½º°¡ ÀÖ´Â µð·ºÅ丮 /usr/preserve/:
vi(1)¿¡ ÀÇÇØ¼ ÀúÀåµÈ º¹±¸ ÆÄÀÏÀÌ ÀÖ´Â µð·ºÅ丮 /usr/rbin/: Á¦ÇÑµÈ »ç¿ëÀÚ¸¦ À§ÇÑ È¯°æ /usr/spool/: ´Ù¾çÇÑ ÇÁ·Î±×·¥¿¡ ÀÇÇØ¼ »ç¿ëµÇ´Â ½ºÇ® ¿µ¿ª /usr/tmp/: Àӽ÷ΠÀúÀåµÉ ÆÄÀÏÀÌ ¸Å¿ì Ŭ °æ¿ì /tmp¸¦ ´ë½ÅÇØ¼ »ç¿ëµÇ´Â µð·ºÅ丮 |
»ç¿ëÀÚ °èÁ¤°ú º¸¾È
UnixÀÇ file systemÀÇ Æ¯Â¡ Áß Çϳª·Î º¸¾È ±â´ÉÀ» µé ¼ö ÀÖ´Ù. ÀÌ´Â ´ÙÁß »ç¿ëÀÚ¸¦ Áö¿øÇÏ´Â UnixÀÇ Æ¯¼º»ó ¾ø¾î¼´Â ¾ÈµÉ ±â´ÉÀ̶ó ÇϰڴÙ. ¸ÕÀú »ç¿ëÀÚ °èÁ¤¿¡ °üÇÑ Á¤º¸¸¦ °®°í ÀÖ´Â /etc/passwd ÆÄÀÏ¿¡ ´ëÇØ ¾Ë¾Æº¸±â·Î ÇÏÀÚ.
vi ÆíÁý±â·Î /etc/passwd ÆÄÀÏÀ» ã¾Æ¼ ÀÚ½ÅÀÇ °èÁ¤ÀÌ ÀÖ´Â ÁÙÀ» °Ë»öÇÏÀÚ.
endovert:X:7472:309:Gun A. Lee:/afs/postech/home/std/endovert:/bin/csh
°¢°¢ÀÇ »ç¿ëÀÚ¿¡ °üÇÑ ±â·Ï(record)Àº ¡®:¡¯À¸·Î ±¸º°µÈ 7°³ÀÇ Ç׸ñ(field)À¸·Î ±¸¼ºµÈ´Ù. À̵éÀº °¢°¢ °èÁ¤¸í, ¾ÏÈ£, »ç¿ëÀÚ ¾ÆÀ̵ð(uid), ±×·ì ¾ÆÀ̵ð(gid), »ç¿ëÀÚÀÇ ½ÇÁ¦ À̸§ ¹× °ü·Ã±â·Ï(ÁÖ¼Ò, ÀüȹøÈ£ µî), home directory, ±âº» shell ÀÌ´Ù.
¾ÏÈ£ ÆÄÀÏÀº Æò¹üÇÑ ±ÛÀÚ ÆÄÀÏ·Î µÇ¾îÀÖÀ¸¸ç °èÁ¤À» °¡Áø ¸ðµç »ç¶÷ÀÌ ÀÐÀ» ¼ö ÀÖµµ·Ï µÇ¾îÀÖ´Ù. ½ÉÁö¾î µÎ ¹øÂ° ÇʵåÀÎ ¾ÏÈ£±îÁöµµ ´©±¸³ª ÀÐÀ» ¼ö ÀÖÀ¸³ª, ÀÌ´Â ¾ÏÈ£ÈµÈ ÇüÅÂ(ex: tFLKiPzkWavm)À̹ǷΠÀоîºÁ¾ß ¾Æ¹«·± ¼Ò¿ëÀÌ ¾ø´Ù. À§ÀÇ °æ¿ì ¾ÏÈ£°¡ ¡®X¡¯·Î Ç¥½ÃµÇ¾î Àִµ¥, ÀÌ´Â ¾ÏÈ£ÈµÈ ¾ÏÈ£¸¦ °ø°³ÇÏ´Â °Í Á¶Â÷ ¸·±â À§ÇØ ¾ÏÈ£¸¦ super-user(root)¸¸ÀÌ ÀÐÀ» ¼ö ÀÖ´Âshadow
ÆÄÀÏ¿¡ ÀúÀåÇϵµ·Ï Çϱ⠶§¹®ÀÌ´Ù.
Unix
kernelÀº ¾ÏÈ£ÆÄÀÏ¿¡ ÀÖ´Â uid¿Í gid¸¦ »ç¿ëÇÏ¿© ƯÁ¤ ÆÄÀÏ¿¡ÀÇ Á¢±Ù ±ÇÇÑÀ» °áÁ¤ÇÑ´Ù.
$ ls
–al
total 8
2 drwxr-xr-x 2 endovert
309 2048 Sep 15 16:00
./
4 drwxr-xr-x 19 endovert
309 4096 Sep 29 13:11
../
1 -rw-r--r-- 1 endovert
309 69 Sep
25 16:03 test.c
1 lrwxr-xr-x 1 endovert
309 23
Sep 6 10:47 cs103@ -> /afs/p...
¿©±â¼ endovert¿Í 309´Â °¢°¢ ÆÄÀÏÀÇ ¼ÒÀ¯ÀÚ¿Í ¼ÓÇÑ gid¸¦ ³ªÅ¸³½´Ù. ¿©±â¼ ÁÖÀÇ ±í°Ô º¼ Ç׸ñÀº µÎ ¹øÂ° ÀÖ´Â Ç׸ñÀ¸·Î
drwxr-xr-x ÀÇ ÇüŸ¦ ¶ì°í ÀÖ´Ù. ¿©±â¼ ù¹øÂ°d´Â directory¸¦ ³ªÅ¸³»°í, ¿©±â¿¡ lÀÌ ¿Ã °æ¿ì link¸¦ ³ªÅ¸³½´Ù. ´ÙÀ½À¸·Î ¿À´Â ¼¼ ¹úÀÇ rwx´Â °¢°¢ ÆÄÀÏ ¼ÒÀ¯ÀÚ(user),
¼Ò¼Ó ±×·ì(group), ±× ¿ÜÀÇ »ç¶÷µé(others)ÀÇ Àбâ(read), ¾²±â(write),
½ÇÇà(execute) ±ÇÇÑÀ» ³ªÅ¸³½´Ù. DirectoryÀÇ °æ¿ì Àб⠿øÇÑÀº ls¸¦ ÇØ º¼ ¼ö ÀÖ´Â ±ÇÇÑÀ» ¸»Çϰí, ½ÇÇà ±ÇÇÑÀº ±× directory·ÎchdirÇÒ ¼ö ÀÖ´Â ±ÇÇÑÀ» ¸»ÇÑ´Ù.
$ ls
-l /etc/passwd /bin/passwd
256
-rws--x--x 2 root bin 253952
Aug 26 1999 /bin/passwd*
376
-rw-r--r-- 1 root system 374109 Sep 29 12:20 /etc/passwd
À§ÀÇ ¿¹¿¡¼¿Í °°ÀÌ ¾ÏÈ£ Á¤º¸¸¦ ÀúÀåÇÑ /etc/passwd ÆÄÀÏÀº ¼ÒÀ¯ÀÚÀÎ root¸¸ÀÌ ÀÐ°í ¾µ ¼ö ÀÖÀ¸¸ç, ´Ù¸¥ À̵éÀº Àб⠱ÇÇѸ¸ ÀÖ´Ù. ½ÇÇàÆÄÀÏÀÇ °æ¿ì ¼ÒÀ¯ÀÚÀÇ ½ÇÇà±ÇÇÑ¿¡ x°¡ ¾Æ´Ñ s°¡ ¿À´Â °æ¿ì°¡ Àִµ¥, À§ÀÇ /bin/passwd °¡ ±× ¿¹ÀÌ´Ù. À̰ÍÀº ÇØ´ç fileÀÌ ½ÇÇà½Ã ±× ÆÄÀÏÀÇ ¼ÒÀ¯ÀÚÀÇ ±ÇÇÑÀ» °®µµ·Ï ÇÏ´Â set-uid bitÀÌ settingµÇ¾úÀ½À» ³ªÅ¸³½´Ù. ¹Ù·Î ÀÌ set-uid´öºÐ¿¡ ÀÏ¹Ý »ç¿ëÀڵ鵵 passwd(1)¸¦ ½á¼ root¸¸ÀÌ ¾²±â ±ÇÇÑÀ» °¡Áø /etc/passwd ÆÄÀÏ¿¡ ÀÖ´Â ÀÚ½ÅÀÇ Á¤º¸¸¦ ¹Ù²Ü ¼ö ÀÖ´Ù.
ÆÄÀÏÀÇ ±ÇÇÑÀ» ¹Ù²Ü ¶§´Â chmod(1) ¸í·ÉÀ» »ç¿ëÇÑ´Ù.
$ chmod [-fR] mode filename
-f: °Á¦(force) -R: recursive
¿©±â¼ modeÇ׸ñÀÌ Á¢±Ù±ÇÇÑÀ» ³ªÅ¸³»¸ç ¹®ÀÚ¸¦ »ç¿ëÇÏ´Â symbolic mode¿Í 8Áø¼ö¸¦ »ç¿ëÇÏ´Â octal mode°¡ ÀÖ´Ù. Octal modeÀÇ °æ¿ì read, write, executeÀº °¢°¢ 4, 2, 1ÀÇ °ªÀ» °¡Áø´Ù. À̵é Áß ÇÊ¿äÇÑ ±ÇÇѵéÀ» ´õÇϸé ÇÑ ¹úÀÇ rwx¸¦ ³ªÅ¸³»°Ô µÈ´Ù. À̶§, 8Áø¼ö´Â ¾Õ¿¡ ¡®0¡¯À» ºÙ¿© 8Áø¼öÀÓÀ» ³ªÅ¸³»¹Ç·Î rwxr-xr— ÀÇ ±ÇÇÑÀÇ °æ¿ì 8Áø¼ö·Î 0754°¡ µÈ´Ù.
´ÙÀ½Àº symbolic modeÀÇ Çü½ÄÀÌ´Ù.
[ who ] op permission
[ op permission]
who(´ë»ó): u(¼ÒÀ¯ÀÚ), g(±×·ì), o(±× ¿Ü), a(¸ðµÎ)
op(¿¬»ê): +(Ãß°¡), -
(»èÁ¦), =(Á¤ÀÇ)
permission(±ÇÇÑ): r(Àбâ), (¾²±â), x(½ÇÇà)
$ chmod go+r-w
À§ÀÇ ¸í·ÉÀº group°ú others¿¡ read±ÇÇÑÀ» ÁÖ°í, write±ÇÇÑÀ» ¾ø¾Ø´Ù.
i-node
ÆÄÀÏ¿¡´Â ±× ÀÚüÀÇ ÀÚ·á(data) À̿ܿ¡µµ ¿©·¯ °¡Áö ºÎ°¡ Á¤º¸°¡ ¸¹´Ù. ¿¹¸¦ µé¾î¼ »ý¼º½Ã°£, Á¢±ÙÇã°¡, À̸§ µîÀÌ ¹Ù·Î ±×·¯ÇÑ ´ëÇ¥ÀûÀÎ ¿¹ÀÌ´Ù. ±×·¯¸é °ú¿¬ ÆÄÀÏ¿¡ °ü°èµÈ Á¤º¸°¡ ¾îµð¿¡ µé¾î ÀÖÀ»±î? ¾Õ¼ À̸§ÀÌ µé¾îÀÖ´Â À§Ä¡´Â od¸¦ »ç¿ëÇÏ¿©,
directory ÀÓÀ» È®ÀÎÇß´Ù. µû¶ó¼ À̸§À» Á¦¿ÜÇÑ »ý¼º½Ã°£°ú Á¢±ÙÇã°¡¿¡ ´ëÇÑ Á¤º¸°¡ µé¾î°¥ °÷ÀÌ ÇÊ¿äÇѵ¥, i-node°¡ ¹Ù·Î ±× ÀúÀå¼ÒÀÌ´Ù. ´ÙÀ½Àº ±¸Ã¼ÀûÀ¸·Î i-node°¡ °¡Áö°í ÀÖ´Â Á¤º¸·Î´Â »ý¼º½Ã°£, ¸¶Áö¸· º¯°æ ½Ã°£, ¸¶Áö¸· »ç¿ë ½Ã°£, Á¢±Ù ±ÇÇÑ ÀÌ´Ù. ls(1)µî¿¡ ÀÇÇØ¼ ¾ò¾îÁö´Â À̸§Àº ´ÜÁö »ç¿ëÀÚÀÇ ÆíÀ̸¦ À§Çؼ Á¦°øµÉ »ÓÀ̸ç, ½ÇÁ¦ À¯´Ð½º ÆÄÀÏ ½Ã½ºÅÛ¿¡¼´Â ³»ºÎÀûÀ¸·Î À̸§ ´ë½Å i-node¸¸À» ÂüÁ¶Çϸç, Unix file system¿¡¼ »ç¿ëµÇ´Â ÆÄÀÏÀÇ À̸§À» i-number¶ó°í ºÎ¸¥´Ù. ls(1)ÀÇ –i ¿É¼ÇÀº ÆÄÀÏÀÇ i-number¸¦ º¸¿©ÁØ´Ù.
ÀÌ·¸°Ô
i-node¸¦ »ç¿ëÇÔÀ¸·Î½á, linkÀÇ °³³äÀ» ½±°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Ù. Áï, ÇϳªÀÇ i-node¸¦ °®´Â ÆÄÀÏ¿¡ º¹¼öÀÇ À̸§À» ÁÖ´Â °ÍÀε¥, À̸¦ hard
link¶ó ÇÑ´Ù. –l ¿É¼ÇÀ¸·Î ls¸¦ ÇßÀ» ¶§, ¼ÒÀ¯ÀÚ Á¤º¸ ¹Ù·Î ¾Õ¿¡ ³ª¿À´Â ¼ýÀÚ°¡ ÀÌ ÆÄÀÏÀÇ hard linkÀÇ °³¼ö¸¦ ³ªÅ¸³½´Ù. ¿©±â¼ ¾Ë ¼ö ÀÖ´Â »ç½Ç Áß Çϳª´Â rmÀÌ ÇÏ´Â ¿ªÇÒÀÌ ÆÄÀÏÀ» Áö¿ì´Â °ÍÀ̶ó±â º¸´Ù´Â linkÀÇ °³¼ö¸¦ °¨¼Ò½ÃŲ´Ù´Â °ÍÀÌ´Ù. ¸¶Âù°¡Áö·Î mv(1) ¸í·ÉÀ¸·Î ÆÄÀÏÀ» À̵¿½Ãų ¶§, ÆÄÀÏÀÇ data¿Í i-node´Â ±×´ë·Î ÀÖ°í, directory¿¡ ´ã±ä Á¤º¸¸¸ ¹Ù²î°Ô µÇ¹Ç·Î, ÆÄÀÏÀÇ data¸¦ º¹»çÇϴµ¥ °É¸®´Â ½Ã°£ÀÌ ÇÊ¿ä ¾ø´Ù. link(1) ¸í·ÉÀ» »ç¿ëÇÏ¿© hard link¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù.
$ ln
target linkname
ÇÏÁö¸¸,
hard linkÀÇ °æ¿ì, hard diskÀÇ volumeÀÌ ´Ù¸£°Å³ª, file systemÀÌ ´Ù¸¦ °æ¿ì »ç¿ëÇÒ ¼ö ¾ø´Â ´ÜÁ¡ÀÌ Àִµ¥, À̸¦ ÇØ°áÇϱâ À§ÇÑ ¹æ¾ÈÀ¸·Î symbolic link¸¦ »ç¿ëÇÑ´Ù. Symbolic link(soft link)´Â Å©±â°¡ ÀÛÀº ÆÄÀÏ·Î ±×°ÍÀÌ °¡¸®Å°´Â ÆÄÀÏÀÇ À̸§°ú °æ·Î Á¤º¸¸¦ °®°í Àִ´Ù. ÀÌ´Â
link(1)¸í·É¿¡ –s ¿É¼ÇÀ» ÁÖ¾î¼ ¸¸µé ¼ö ÀÖÀ¸¸ç, -l ¿É¼ÇÀÇ
ls(1)¿¡¼ ±ÇÇÑÁ¤º¸¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¿ÀÇ Á¦ÀÏ Ã¹ ±ÛÀÚ¿¡ ¡®l¡¯À̶ó´Â ±ÛÀÚ°¡ Ç¥½ÃµÈ´Ù. Symbolic linkÀÇ °æ¿ì °¡¸®Å°°í ÀÖ´Â ÆÄÀÏÀÇ À̸§¸¸À» °¡Áö°í ÀÖÀ¸¹Ç·Î, °¡¸®Å°´Â ´ë»ó ÆÄÀÏÀÌ Áö¿öÁö°Å³ª ´Ù¸¥ °÷À¸·Î, ´Ù¸¥ À̸§À¸·Î ¿Å°ÜÁú °æ¿ì ¹®Á¦°¡ ¹ß»ýÇÑ´Ù.
³¡À¸·Î,
unix°¡ ÆÄÀÏÀ» ÅëÇØ deviceµéÀ» ´Ù·ç´Â °Í¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ. ¾Õ¿¡¼µµ ³ª¿ÔÁö¸¸, unix¿¡¼ ÀåÄ¡µéÀ» ³ªÅ¸³»°í ÀÖ´Â ÆÄÀϵéÀº
/dev µð·ºÅ丮¿¡ ÀÖ´Ù. ÀåÄ¡µéÀº Å©°Ô Űº¸µå¿Í °°ÀÌ ÇÑ ¹ø¿¡ ÇÑ char¾¿ ÀÔÃâ·ÂÀ» ÇÏ´Â character device¿Í block´ÜÀ§ÀÇ ÀÔÃâ·ÂÀ» ÇÏ´Â µð½ºÅ©¿Í °°Àº block device·Î ³ª´¶´Ù. ls(1) ¸í·É¿¡ –l ¿É¼ÇÀ» ÁÖ¾úÀ» ¶§ ±ÇÇÑ Á¤º¸ÀÇ Ã¹ ±ÛÀÚ¿¡ µé¾î°¡´Â ¡®b¡¯¿Í ¡®c¡¯¹®ÀÚ·Î À̵éÀ» ±¸º°ÇÒ ¼ö ÀÖ´Ù. À̵é device file µéÀ» ÀÐ°í ¾¸À¸·Î½á device¿¡ µ¥ÀÌÅ͸¦ ¾²°í ÀÐÀ» ¼ö°¡ ÀÖ´Ù. °¡Àå °£´ÜÇÑ ÀåÄ¡·Î ¾Æ¹«°Íµµ ÀÐÀ» ¼ö ¾ø°í, ¾²´Â µ¥ÀÌÅÍ´Â ¸ðµÎ ¾ø¾Ö¹ö¸®´Â /dev/null ÀÌ ÀÖ´Ù. ºÒÇÊ¿äÇÑ Á¤º¸¸¦ ¾îµò°¡¿¡ ±â·ÏÇÒ ÇÊ¿ä(?)°¡ ÀÖÀ» ¶§, ¹Ù·Î ÀÌ ÀåÄ¡¿¡ ±â·ÏÇÏ¸é µÈ´Ù. Deviceµéµµ Á¢±Ù¿¡ °üÇÑ ±ÇÇÑÀ» ÁöÁ¤ÇÒ ¼ö Àִµ¥, write(1)¸¦ ÅëÇØ ´Ù¸¥ »ç¶÷¿¡°Ô¼ ¸Þ½ÃÁö¸¦ ¹Þ´Â °ÍÀ» ¸·±âÀ§ÇÑ
mesg(1) ¸í·É¾î´Â ¹Ù·Î ÇØ´ç
terminal device fileÀÇ ´Ù¸¥ »ç¶÷ÀÇ ¾²±â ±ÇÇÑÀ» ¾ø¾Ö´Â ¹æ¹ýÀ¸·Î ÀÛµ¿ÇÑ´Ù.
vision/endovert ~ {217} tty vision/endovert ~ {218} ls -l /dev/ttyp3 vision/endovert ~ {219} mesg n vision/endovert ~ {220} ls -l /dev/ttyp3 vision/endovert ~ {220} |
AFS´Â client/server ¸ðµ¨À» ÀÌ¿ëÇÑ ºÐ»ê ÆÄÀÏ ½Ã½ºÅÛÀÌ´Ù. Áï, AFS ´Â ³×Æ®¿÷À» ÅëÇØ Ŭ¶óÀÌ¾ðÆ®¿¡¼ ¿©·¯ ¼¹ö¿¡ ºÐ»êµÇ¾î ÀÖ´Â µð½ºÅ©¸¦ ÀÐ°í ¾µ ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á ¼¹öÀÇ ºÎÇϸ¦ ºÐ»ê½ÃÄÑ È¿À²¼ºÀ» ³ôÀ̰í, ÇÑ ¼¹ö°¡ ´Ù¿îµÇ¾îµµ ´Ù¸¥ ¼¹ö¸¦ ÅëÇØ ¼ºñ½º¸¦ ¹ÞÀ» ¼ö ÀÖ´Â µîÀÇ ÀåÁ¡À» ¾òÀ» ¼ö ÀÖ´Ù. AFSÀÇ root´Â /afs À̸ç ÀÌ ¾Æ·¡¿¡´Â AFS¸¦ »ç¿ëÇÏ´Â Á¶Á÷µéÀÇ site directoryµéÀÌ ÀÖÀ¸¸ç, °¢ site´Â ±×·ìµéÀÇ cellµéÀÌ ¸ð¿© ÀÌ·ç¾î Áø´Ù.
AFS½Ã½ºÅÛ ¿ª½Ã ¿©·¯ »ç¿ëÀÚµéÀÌ »ç¿ëÇϱ⿡ º¸¾ÈÀ» À¯ÁöÇÒ Çʿ䰡 ÀÖ´Ù. °¢ »ç¿ëÀÚ´Â AFS¿¡ login Çϸé ÀÎÁõµÈ »ç¿ëÀÚ(authenticated user)ÀÓÀ» ³ªÅ¸³»´Â tokenÀ» ¹ÞÀ¸¸ç, tokenÀº ÀÏÁ¤ ½Ã°£(¿ì¸® Çб³ÀÇ °æ¿ì 25½Ã°£)ÀÌ Áö³ª¸é ÆÄ±âµÈ´Ù. »õ·Î¿î tokenÀ» ¾ò±â À§Çؼ´Â klog(1) ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ´Ù½Ã AFS ½Ã½ºÅÛ¿¡ loginÇØ¾ß ÇÑ´Ù. token(1) ¸í·ÉÀ» »ç¿ëÇϸé Àڽſ¡°Ô ÁÖ¾îÁø tokenÀÇ ¸ñ·ÏÀ» º¼ ¼ö ÀÖÀ¸¸é, unlog(1) ¸í·ÉÀ¸·Î AFS¸¦ log-out ÇÒ ¼ö ÀÖ´Ù.
AFSÀÇ ¾ÏÈ£¸¦ ¹Ù²Ü °æ¿ì¿¡´Â kpasswd(1) ¸¦ »ç¿ëÇÏ¿©¾ß Çϸç À̰ÍÀº local ¾ÏÈ£(passwd(1) ¸í·É¾î·Î º¯°æ)¿Í ´Ù¸¦ ¼ö ÀÖ´Ù.
AFS commandÀÇ °æ¿ì ±× ¾çÀÌ ¸¹À¸¹Ç·Î command suiteÀ» »ç¿ëÇÏ¿© ¸í·É¾îµéÀ» ¹¾î ³õ¾Ò´Ù. fs(file server) suite¿Í pts(protection server) suiteÀÌ ÀÖ°í, À̵éÀº fs(1)¿Í pts(1) ¸¦ »ç¿ëÇÏ¿© command¸¦ ³»¸°´Ù. fs µÚ¿¡ AFS command¸¦ ÁÖ°Ô µÇ´Âµ¥, ÇØ´ç ¸í·É¾î¿¡ °üÇÑ µµ¿ò¸»À» º¸±â À§Çؼ´Â fs µÚ¿¡ help ¸í·É¾î¸¦ ¸ÕÀú ÁÖ°í AFS command¸¦ Áְųª, fs ¸í·É¾î µÚ¿¡ AFS command¸¦ Ä¡°í –help optionÀ» ÁÖ¸é µÈ´Ù. µÈ´Ù.
$ fs help listacl
$ fs listacl –help
AFS commandµéÀº ªÀº º°¸íµéÀ» °®°í ÀÖÀ¸¸ç, help command·Î À̵éÀ» ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù. help ¸í·É¾î ´ë½Å apropos¸¦ »ç¿ëÇϸé keyword¿¡ ÇØ´çÇÏ´Â ¸í·É¾îµéÀ» º¼ ¼öµµ ÀÖ´Ù.
AFS¿¡ ÀÖ´Â home directoryÀÇ °æ¿ì fs quota ¸í·ÉÀ¸·Î »ç¿ëÇÑ quota¸¦ %·Î º¼ ¼ö ÀÖ´Ù. ´õ ÀÚ¼¼ÇÑ quotaÁ¤º¸¸¦ ¾ò±â À§Çؼ´Â fs listquota ³ª fs examine ¸í·ÉÀ» »ç¿ëÇÑ´Ù. fs whereis ¸í·É¾î´Â ÁÖ¾îÁø directoryÀÇ Àý´ë °æ·Î¸¦ º¸¿©ÁÖ¸ç, fs checkservers ¸í·É¾î´Â file serverÀÇ ÀÛµ¿ ¿©ºÎ¸¦ °Ë»çÇØ ÁØ´Ù.
/afs ¾Æ·¡ÀÇ ÆÄÀϵéÀº ACL(access control list)À» »ç¿ëÇÏ¿© Á¢±Ù±ÇÇÑÀ» ÁöÁ¤ÇÑ´Ù. °¢ directory¸¶´Ù ACLÀÌ ÀÖ°í, °¢ ACL¿¡´Â 20°³ÀÇ »ç¿ëÀÚ/±×·ì entry°¡ ÀÖÀ» ¼ö ÀÖÀ¸¸ç, ÇÏÀ§ directory¿Í fileµéÀº ±âº»ÀûÀ¸·Î »óÀ§ directoryÀÇ ACLÀ» ÀÌ¾î ¹Þ°Ô µÇ¹Ç·Î ´Ù¸¥ directory·Î ¿Å±â¸é ±ÇÇÑÀÌ º¯°æµÉ ¼ö ÀÖ´Ù.
AFS´Â Unix¿¡¼ ±âº»ÀûÀ¸·Î Á¦°øÇÏ´Â rwxÀÇ Á¢±Ù ±ÇÇÑÀÌ ¾Æ´Ñ 7°¡Áö ±ÇÇÑÀ» Á¦°øÇÑ´Ù.
LOOKUP(l): ls ÇÒ ±ÇÇÑ, directoryÀÇ ACLÀ» º¼ ±ÇÇÑ
INSERT(i): »õ fileÀ̳ª directory¸¦ ¸¸µé°Å³ª º¹»çÇØ ¿Ã ¼ö ÀÖ´Â ±ÇÇÑ
DELETE(d): fileÀ̳ª directory¸¦ Áö¿ì°Å³ª ´Ù¸¥ °÷À¸·Î ¿Å±æ ±ÇÇÑ
ADMINISTER(a): ACLÀ» ¹Ù²Ü ±ÇÇÑ. DirectoryÀÇ ÁÖÀο¡°Ô ±âº»ÀûÀ¸·Î Á¦°ø
READ(r): ÆÄÀÏÀÇ ³»¿ëÀ» ÀÐÀ» ±ÇÇÑ
WRITE(w): ÆÄÀÏÀÇ ³»¿ëÀ» ¹Ù²Ü ±ÇÇÑ. Unix mode bitÀ» ¹Ù²Ü ±ÇÇÑ.
LOCK(k): advisory lockÇÒ ¼ö ÀÖ´Â ±ÇÇÑ.
ÀÌ»ó 7°³ÀÇ ±ÇÇÑÀ» Á¶ÇÕ ÇÒ ¼ö ÀÖÀ¸¸ç, ÀÚÁÖ »ç¿ëÇÏ´Â Á¶ÇÕ¿¡´Â À̸§ÀÌ ºÙ¿©Á® ÀÖ´Ù.
write – a¸¦ Á¦¿ÜÇÑ ¸ðµç ±ÇÇÑ(rlidwk)
read – rl
all – ¸ðµç ±ÇÇÑ(rlidwka)
none – ACL¿¡¼ ÇØ´ç »ç¿ëÀÚ entry »èÁ¦
ACLÀÇ entry¿¡´Â °³°³ÀÇ »ç¿ëÀÚ ¿Ü¿¡ groupÀÌ µé¾î°¥ ¼öµµ ÀÖÀ¸¸ç, ±âº»ÀûÀ¸·Î 3°³ÀÇ system groupÀÌ ÀÖ´Ù.
system:anyuser – AFS¿¡ ÀÇÇØ ÀÎÁõ ¹ÞÁö ¾ÊÀº ÀÌ¿ëÀÚ¸¦ Æ÷ÇÔÇÑ ¸ðµç »ç¿ëÀÚ
system:authuser – AFS¿¡ ÀÇÇØ ÀÎÁõ ¹ÞÀº ¸ðµç »ç¿ëÀÚ
system:administrators – ÇØ´ç cellÀÇ AFS °ü¸®ÀÚ
$ fs listacl // ACL º¸±â, º°¸íÀº la
$ fs setacl dir username rights // ACL¿¡ Ç׸ñ Ãß°¡, º°¸íÀº sa
(fs setacl¿¡¼ -neg ¿É¼ÇÀº ÁöÁ¤ ±ÇÇÑÀ» »©¾Ñ°í, -clear ¿É¼ÇÀº ÁöÁ¤ ±ÇÇѸ¸ ³²±â°í ´Ù¸¥ ±ÇÇѵéÀº ¸ðµÎ ACL¿¡¼ Á¦°ÅÇÑ´Ù.)
$ fs copyacl fromdir todir // fromdirÀÇ ACLÀ» todir¿¡ Ãß°¡ (-clear À» ¾²¸é ±âÁ¸ ACL»èÁ¦)