Ãâó : http://security.kaist.ac.kr/docs/lsof.html, ±Û ±Ç¿ëö
ÀúÀÚÀÇ µ¿ÀÇÇÏ¿¡ Ä¿ÇǴнº¿¡ ¿Ã·È½À´Ï´Ù. (2003.9.4)
´Ù¸¥ °÷À¸·Î ¿Å±â½Ã±â À§Çؼ­´Â ¿ø¹®¿¡¼­ ¹àÈù´ë·Î ÀúÀÚ¿Í ÇùÀÇÇϽñ⠹ٶø´Ï´Ù.
¾Æ·¡ºÎÅÍ ±ÛÀÇ ½ÃÀÛÀ̸ç ÀÏüÀÇ ¼öÁ¤¾øÀÌ ±×´ë·ÎÀÔ´Ï´Ù.

LSOF ¼³Ä¡ & È°¿ë °¡À̵å

written by godslord@sparcs.kaist.ac.kr


-. ÀÌ ¹®¼­ÀÇ ÀúÀÛ±ÇÀº ÀúÀÚ¿¡°Ô ÀÖ½À´Ï´Ù. º»¹®ÀÇ ¹«´Ü Àοë, º¹»ç´Â ÀúÀÚ¿ÍÀÇ ÇùÀÇ ¾øÀÌ Àý´ë ºÒ°¡´ÉÇÕ´Ï´Ù.


Table of Contents

  • lsof¶õ?
  • lsof ÆÐÅ°Áö ±¸Çϱâ
  • lsof ¼³Ä¡
  • lsof SourceÀÇ °£·«ÇÑ ¼³¸í
  • lsofÀÇ Command Line Optionµé
  • lsof »ç¿ëÇϱâ


    * lsof¶õ?

    LiSt Open FilesÀÇ ¾àÀڷμ­, À̸§ÀÌ ¸»ÇÏ´Â °ÍµéÀ» ±×´ë·Î ¼öÇàÇÏ´Â ÇÁ·Î±× ·¥ÀÌ´Ù. Á» ´õ ±¸Ã¼ÀûÀ¸·Î, ÇöÀç System¿¡¼­ µ¹¾Æ°¡´Â ¸ðµç Process¿¡ ÀÇÇؼ­ OpenµÈ ÆÄÀϵ鿡 ´ëÇÑ Á¤º¸¸¦ º¸¿©ÁØ´Ù.


    * lsof ÆÐÅ°Áö ±¸Çϱâ

    lsofÀÇ ÃֽŠ¹öÁ¯Àº ftp://vic.cc.purdue.edu/pub/tools/unix/lsof¿¡¼­ ½±°Ô ±¸ÇÒ ¼ö ÀÖ´Ù.


    * lsof ¼³Ä¡

    lsofÀÇ ¼³Ä¡´Â ºñ±³Àû °£´ÜÇÏ´Ù. ÆÐÅ°Áö¸¦ Ç®¸é, lsof_???(release number)ÀÇ µð·ºÅ丮°¡ »ý¼ºµÇ¸ç, ÀÌ µð·ºÅ丮 ³»ÀÇ Configure¶ó´Â Script·Î ȯ°æ ¼³Á¤À» ÇØ ÁØ ´ÙÀ½ ÄÄÆÄÀÏ ÇØ ÁÖ¸é µÈ´Ù. Configure¿¡¼­´Â ÀÎÀÚ·Î ¼³Ä¡ ´ë»ó OS¸¦ Àû ¾îÁÖ¸é µÈ´Ù. Áö¿øµÇ´Â OS¸ñ·ÏÀº -h ¿É¼ÇÀ¸·Î È®ÀÎÇÒ ¼ö ÀÖ´Ù.

    ´ÙÀ½ ¿¹Á¦´Â LinuxÀÏ ¶§ ÀÌ´Ù.

    	$ ./Configure -h
    	$ ./Configure linux
    	$ make
    
    Configure¿¡¼­´Â Inventory Mode¸¦ ½ÇÇàÇÒ °ÍÀΰ¡¿Í, CustomizationÀ» ÇÒ °Í ÀÎ °¡¸¦ °¢°¢ ¹°¾î¿Â´Ù. ÀüÀÚ´Â ÇöÀç lsof ÆÐÅ°Áö°¡ Á¦´ë·Î µÇ¾î Àִ°¡¸¦ °Ë »çÇÏ´Â °ÍÀ¸·Î¼­, ¶Ù¾î ³ÑÀ¸·Á¸é -n ¿É¼ÇÀ» ÁÖ¸é µÈ´Ù. ÈÄÀÚ´Â lsof¸¦ »ç¿ëÀÚ °¡ ¿øÇÏ´Â ±â´ÉÀ» Æ÷ÇÔ½ÃÄÑ ÄÄÆÄÀÏ ÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁÖ´Â °ÍÀÌ´Ù. CustomizationÀº machine.h¸¦ Á÷Á¢ ¼öÁ¤Çϰųª, Customize Script¸¦ ½ÇÇàÇصµ ¶È°°Àº È¿°ú¸¦ º¼ ¼ö ÀÖ´Ù.

    Customization Script¿¡¼­ ¹°¾î¿À´Â ¿É¼ÇµéÀ» ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ.

    Options
    Ç׸ñ±âº» ¼³Á¤ °ª¼³¸í
    HASSECURITY disabled ÀÌ ¿É¼ÇÀº root¸¸ÀÌ Àüü ½Ã½ºÅÛÀÇ openfile µé¿¡ ´ëÇÏ¿© ½ÇÇàÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù.
    WARNINGSTATE enabled ÀÌ ¿É¼ÇÀº lsof°¡ ÇÊ¿äÇÒ ¶§ ¸¶´Ù Warnning ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°Ô ÇÑ´Ù. disableµÇ¾î ÀÖÀ¸¸é Ãâ·ÂÇÏÁö ¾Ê´Â´Ù. +/-w ¿É¼ÇÀ¸·Î ÄÑ°í ²ø ¼ö ÀÖ´Ù.
    WARNDEVACCESS enabled ÀÌ ¿É¼ÇÀº /dev(/devices) ¾Æ·¡ÀÇ ÆÄÀϵ鿡 ´ëÇØ AccessÇÒ ¼ö ¾øÀ» ¶§, ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ´À³Ä¸¦ ¼³Á¤ÇÑ´Ù. À§ WARNINGSTATE¿É¼ÇÀÌ enableµÇ¾î Àְųª +w¿É¼ÇÀ¸·Î ½ÇÇàÇßÀ» ¶§ ÇØ´çÇÑ´Ù.
    HASDCACHE enabled ÀÌ ¿É¼ÇÀº lsof°¡ /dev(/devices) ¾Æ·¡ÀÇ ÆÄÀϵ鿡 ´ëÇÑ ¿©·¯°¡Áö Á¤º¸¸¦ °¡Áö°í ÀÖ´Â Cache ÆÄÀÏÀ» »ý¼ºÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇÑ´Ù. HASENVDC, HASPERSDC, HASPERSDCPATH, HASSYSDC´Â, ÀÌ CacheÆÄÀϵéÀÇ Path¸¦ ÁöÁ¤ÇÏ´Â ¿É¼ÇÀÌ´Ù.
    HASENVDC, HASPERSDC, HASPERSDCPATH   HASDCACHE ¿É¼Ç ÂüÁ¶
    HASKERNIDCK enabled ÀÌ ¿É¼ÇÀº Ä¿³ÎÀÇ ¹öÀüµîÀ» üũÇÏ¿©, lsof°¡ ÄÄÆÄÀÏ µÆÀ» ´ç½ÃÀÇ Ä¿³Î¿¡¼­¸¸ µ¹¾Æ°¡µµ·Ï ÇÏ´Â ¿É¼ÇÀÌ´Ù. AIXµî¿¡¼­´Â ÀÌ ¿É¼ÇÀ» ÄÓ °æ¿ì, ½ÇÇà½Ã ¸¶´Ù ²Ï ½Ã°£ÀÌ ¸¹ÀÌ °É¸± ¼öµµ ÀÖ´Ù.

    Makefile¿¡¼­´Â install ruleÀÌ ºüÁ®ÀÖ´Ù. µû¶ó¼­ ÀÌ ºÎºÐÀº °¢ÀÚ°¡ ¾Ë¾Æ¼­ Àû´çÇÏ°Ô ½á ³Ö¾î Áà¾ß ÇÑ´Ù. ¹°·Ð ´ëºÎºÐÀÇ °æ¿ì¿¡´Â @echo ºí·° ³»ÀÇ ºÎºÐÀ» Áö½ÃÇÏ´Â ´ë·Î Á¶±Ý¸¸ °íÃÄ ÁÖ¸é µÈ´Ù.

    °íÃÄ¾ß ÇÒ ºÎºÐÀº Makefile ù Çì´õ ºÎºÐÀÇ BIN(½ÇÇàÆÄÀÏÀÌ ¼³Ä¡ µÉ µð·ºÅ丮), DOC(Manual Page°¡ ¼³Ä¡ µÉ µð·ºÅ丮), GRP(/dev(/devices)/kmemÀÇ group)ÀÌ´Ù. ÀÌ °ÍµéÀ» ¾Ë¸Â°Ô ¼öÁ¤ÇØ ÁØ ´ÙÀ½¿¡, install ruleÀ» ´ÙÀ½°ú °°ÀÌ ¸¸µç´Ù.

    	--- Makefile in /lsof_x.xx
    	install: all FRC
    		install -m 2755 -g ${GRP} ${PROG} ${BIN}/${PROG}
    		install -m 444 ${MAN} ${DOC}/${MAN}
    
    	$ su
    	# make install
    
    ÀÌÁ¦ ÀνºÅç±îÁö ¸ðµÎ ¸¶Ä£ °ÍÀÌ´Ù.


    * lsof SourceÀÇ °£·«ÇÑ ¼³¸í

    arg.c : °øÅëÀûÀ¸·Î »ç¿ëµÇ´Â ¾Æ±Ô¸ÕÆ® ó¸® ÇÔ¼öµé
    lsof.h : °øÅëÀûÀ¸·Î »ç¿ëµÇ´Â Çì´õ·Î¼­, Platform¿¡ µû¸¥ Çì´õµéÀ» Æ÷ ÇÔÇÏ°í ÀÖ´Ù.
    main.c : lsofÀÇ ÁÖ¿ä ½ÇÇà ºÎºÐ
    misc.c : ¹ü¿ëÀÇ ¿©·¯°¡Áö Àâ´ÙÇÑ ÇÔ¼öµé
    node.c : ¹ü¿ë node Àбâ ÇÔ¼öµé - inode, vnodeÀбâ
    print.c : ¹ü¿ë print Áö¿ø(È­¸é Ãâ·Â) ÇÔ¼öµé
    proc.c : ¹ü¿ë proc file systemÀ» Áö¿øÇÏ´Â ÇÔ¼öµé
    proto.h : lsof¿¡¼­ »ç¿ëÇÏ´Â ¸ðµç ÇÔ¼öµéÀÇ prototypeµé
    store.c : lsof¿¡¼­ Á÷Á¢ ´Ù·ç´Â file structure¸¦ Áö¿øÇÏ´Â ÇÔ¼öµé
    usage.c : lsofÀÇ »ç¿ë¹ýÀ» Ç¥½ÃÇØ ÁÖÀº ÇÔ¼öµé
    version.h : lsofÀÇ ¹öÁ¯ Á¤º¸¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù.


    * lsofÀÇ Command Line Optionµé

    1) Select Options
    lsof·Î °Ë»çÇÒ ´ë»ó ÆÄÀϵéÀ» ÁöÁ¤ÇÒ ¶§ »ç¿ëÇÏ´Â ¿É¼ÇµéÀÌ´Ù.

    -a : °¢°¢ÀÇ ÆÄÀÏ ¼±Åà ¿É¼ÇµéÀ» AND ¿¬»êÇÏ¿© ´ë»ó ÆÄÀϵéÀ» ¼±Åà -a ¿É¼ÇÀÌ ¾ø´Ù¸é ¸ðµÎ OR ¿¬»ê µÇ°Ô µÈ´Ù.
    -c : -c ¿É¼ÇÀ¸·Î ÁöÁ¤µÈ ÇÁ·Î±×·¥ÀÇ ÇÁ·Î¼¼½º°¡ »ç¿ëÇÏ°í ÀÖ´Â ÆÄÀÏ µéÀ» ´ë»óÀ¸·Î ÇÑ´Ù.
    -d : ÁöÁ¤ÇÑ descriptorµéÀÌ ³ªÅ¸³»´Â ÆÄÀϵéÀ» ¿­°ÅÇÑ´Ù. ¿©·¯°³ÀÇ descriptor´Â ","·Î ±¸ºÐÇϸç, "3-10" ¹üÀ§¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù.
    -g : ÁöÁ¤ÇÑ ÇÁ·Î¼¼½º ±×·ì ¾ÆÀ̵𸦠°¡Áø ¸ðµç ÇÁ·Î¼¼½ºµéÀÌ »ç¿ëÇÏ°í ÀÖ´Â ÆÄÀϵéÀ» ¼±ÅÃ(comma separate)
    -i : ÀÎÅÍ³Ý Socketµé¿¡ ´ëÇؼ­ ¼öÇàÇÑ´Ù. ÇÁ·ÎÅäÄÝ À̸§, È£½ºÆ®¿Í ¼­ºñ½º À̸§À» ÁöÁ¤Çؼ­µµ ¼öÇàÇÒ ¼ö ÀÖ´Ù.
    -N : NFS·Î ¿¬°áµÇ¾î ÀÖ´Â ÆÄÀϵ鿡 ´ëÇؼ­ ¼öÇàÇÑ´Ù.
    -U : ÇØ´ç UNIX domain ³»¿¡ ÀÖ´Â ¸ðµç Socketµé¿¡ ´ëÇؼ­ ¼öÇàÇÑ´Ù.

    2) Output Options
    lsofÀÇ ¼öÇà °á°ú¸¦ ¿©·¯°¡Áö Æ÷¸ËÀ¸·Î ³ªÅ¸³»¾î ÁÖ´Â ¿É¼ÇµéÀÌ´Ù.

    -F : ÀÎÀÚ·Î ÁÖ¾îÁø Charactor·Î, °¢ Çʵ带 ºÐ¸®Çؼ­ Ãâ·ÂÇÑ´Ù. ´Ù¸¥ Awk, Perlµî¿¡¼­ Á÷Á¢ ÀÔ·ÂÀ¸·Î ¹Þ¾Æ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
    -g : ÇÁ·Î¼¼½º ±×·ì ¾ÆÀ̵ðµéÀ» Ãâ·ÂÇÑ´Ù.
    -l : ·Î±ä ³×ÀÓ ´ë½Å¿¡ UID¸¦ Ãâ·ÂÇÑ´Ù.
    -n : È£½ºÆ® À̸§ ´ë½Å¿¡ IP address¸¦ Ãâ·ÂÇÑ´Ù.
    -o : ÆÄÀϵéÀÇ offsetÀ» Ç×»ó Ãâ·ÂÇÑ´Ù.
    -P : Æ÷Æ® Service À̸§ ´ë½Å¿¡ Æ÷Æ® ³Ñ¹ö¸¦ ±×´ë·Î Ãâ·ÂÇÑ´Ù.
    -s : ÆÄÀÏÀÇ Å©±â¸¦ Ç×»ó Ãâ·ÂÇÑ´Ù.

    3) Precautionary Options
    lsof´Â System DependentÇÑ ¿©·¯°¡Áö ±â´ÉÀ» »ç¿ëÇÏ°í, ÀÌ°Íµé ¶§¹®¿¡ ¼öÇà¿¡ ¿À·£ ½Ã°£ÀÌ °É¸®°Å³ª, ´Ù¸¥ ÀÛ¾÷À» BlockÇÏ´Â °æ¿ìµµ ÀÖ´Ù. À̸¦ ¸·±âÀ§ÇÑ ¿É¼ÇµéÀÌ´Ù.

    -b : Kernel ³»ºÎ¿¡¼­ BlockµÉ ¼ö ÀÖ´Â System CallµéÀÇ »ç¿ëÀ» ÇÇÇÑ´Ù.
    -D : ±âÁ¸¿¡ Á¸ÀçÇÏ´Â device ij½¬ ÆÄÀÏÀ» ¹«½ÃÇÏ°í »õ·Î¿î ij½¬ ÆÄÀÏ À» »ý¼ºÇÑ´Ù.
    -O : lsof°¡ kernel¿¡¼­ Block µÉ ¼ö ÀÖ´Â °¡´É¼ºÀ» °¡Áø ÀÏÀ» ¼öÇàÇÒ ¶§, fork(2)¸¦ »ç¿ëÇÏ´Â °ÍÀ» ÇÇÇÑ´Ù.
    -S : lstat/readlink/stat System Call½Ã, Time OutÀ» ¼³Á¤ÇÑ´Ù.
    -w : ÄÄÆÄÀÏ ½Ã¿¡ ÁöÁ¤ÇÑ Warning Message ó¸® ¹æ¹ýÀ» Åä±ÛÇÏ¿© ¼öÇà ÇÑ´Ù(enable -> disable, disable -> enable).

    4) Miscellaneous Lsof Options
    ±âŸ ¿©·¯°¡Áö Àâ´ÙÇÑ ¿É¼ÇµéÀÌ´Ù.

    -?,h : µµ¿ò¸» Ãâ·Â
    -k : Ä¿³Î ½Éº¼ ÆÄÀÏÀ» ÁöÁ¤ÇÑ´Ù.
    -r : ÀÎÀÚ·Î ÁÖ¾îÁø ÃÊÀÇ ±â°£À» ÁÖ±â·Î ¹Ýº¹Çؼ­ ½ÇÇàÇÑ´Ù. ±âº» °ª Àº 15ÃÊÀÌ´Ù.
    -v : lsof¿¡ ´ëÇÑ ¿©·¯°¡Áö Á¤º¸(ÄÄÆÄÀÏ »óȲ µîµî)µéÀ» Ç¥½ÃÇÑ´Ù.


    * lsof »ç¿ëÇϱâ

    Tip 1) ¾î¶² ƯÁ¤ÇÑ ÆÄÀÏÀ» »ç¿ëÇÏ°í ÀÖ´Â ÇÁ·Î¼¼½ºµé¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë°í ½ÍÀ» ¶§,

    $ lsof <expected file name with path>

    À» ½ÇÇàÇÏ¸é µÈ´Ù.

    $ lsof /etc/passwd

    ¸¦ ½ÇÇàÇϸé, /etc/passwd¸¦ ¾ï¼¼½ºÇÏ°í ÀÖ´Â ÇÁ·Î¼¼½ºµéÀ» Á¡°ËÇÒ ¼ö ÀÖÀ¸¸ç, ÀÌ ÆÄÀÏÀ» °¡Áö°í Àå³­Ä¡´Â ÇÁ·Î¼¼½ºµéµµ ¹ß°ßÇÒ ¼ö ÀÖ´Ù.

    Tip 2) ¾î¶² ÆÄÀÏ ½Ã½ºÅÛ ³»¿¡, ±×·¸°Ô Å« Å©±âÀÇ ÆÄÀϵéÀ» ãÀ» ¼ö ¾ø´Âµ¥µµ ºÒ±¸ÇÏ°í, Available Space°¡ 0À» ÇâÇؼ­ Ä¡´Ý°í ÀÖÀ» ¼öµµ ÀÖ´Ù. ¾Æ¸¶µµ, unlinkµÈ ÆÄÀÏ¿¡ ´ë°í °è¼ÓÇؼ­ ½á ´ë°í ÀÖÀ» °¡´É¼ºÀÌ Å©´Ù. lsof´Â

    $ lsof <expected directory - root of mounted partition>

    ÀÇ Çü½ÄÀ¸·Î ÇØ´ç µð·ºÅ丮 ³», ȤÀº partition ³»¿¡ ÀÖ´Â ¸ðµç ÆÄÀϵ鿡 ´ëÇØ ¾ï¼¼½ºÇÏ°í ÀÖ´Â ÇÁ·Î¼¼½ºµéÀ» ¿­°ÅÇØ ÁÙ ¼ö ÀÖ´Ù. ¿ª½Ã Àå³­ Ä¡´Â ÇÁ·Î¼¼½º¸¦ ¹ß°ßÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

    Tip 3) ±ä±ÞÈ÷ ¾î¶² ÆÄÀÏ ½Ã½ºÅÛÀ» unmountÇØ¾ß ÇÒ ¶§, ¿©·¯ºÐÀº ÇØ´ç ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÖ´Â ÆÄÀϵéÀ» »ç¿ëÇÏ´Â ÇÁ·Î¼¼½ºµé ´öºÐ¿¡ unmount¸¦ ÇÏÁö ¸øÇÏ°í ¸¶³É ±â´Ù¸®±â¸¸ Çß´ø ÀÏÀ» °Þ¾î ºÃÀ» °ÍÀÌ´Ù. lsof´Â ÆÄÀÏ ½Ã½ºÅÛ ³»¿¡ ÀÖ´Â ÆÄÀϵ鿡 ´ëÇؼ­ ¾ï¼¼½ºÇÏ°í ÀÖ´Â ÇÁ·Î¼¼½ºµéÀ» ´Ù ã¾ÆÁÙ ¼ö ÀÖ´Ù.

    $ lsof <expected file system name>

    ÀÌ°ÍÀ» ÀÌ¿ëÇؼ­ Áï½Ã unmount¸¦ ÇÏ´Â ½ºÅ©¸³Æ®µµ °£´ÜÈ÷ ¸¸µé ¼ö ÀÖÀ» °ÍÀÌ´Ù.

    Tip 4) lsof´Â ¸ðµç ³×Æ®¿öÅ© SocketµéÀ» ã¾Æ³¾ ¼ö ÀÖ´Ù.

    $ lsof -i

    ¸¦ ½ÇÇàÇϸé, ÇöÀç »ç¿ëµÇ°í ÀÖ´Â ¸ðµç SocketµéÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

    Tip 5) Tip 4)¸¦ Àß ÀÌ¿ëÇϸé, ¾î¶² ³×Æ®¿öÅ© Connection¿¡ ´ëÇؼ­ ±× ¸ñÀûÁö ³ª ¾îµð¼­ ºÎÅÍ ¸Î¾îÁø ¿¬°áÀÎÁö¸¦ ½±°Ô ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù. ¸¸¾à, ¿©·¯ºÐÀÇ ¼­¹ö ¿¡¼­ µ¹¾Æ°¡°í ÀÖ´Â ÇÁ·Î¼¼½ºµé Áß¿¡¼­, security.kaist.ac.kr·Î ¿¬°áÀ» ÇÏ°í ÀÖ´Â ÇÁ·Î¼¼½º¸¦ Àâ¾Æ³¾ ¼ö ÀÖÀ¸¸ç, ±¸Ã¼ÀûÀ¸·Î ¾î¶² ¼­ºñ½º(ȤÀº Æ÷Æ®)¿¡ ¿¬ °áÇÏ°í Àִ°¡µµ ÁöÁ¤ÇÏ¿© ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù.

    $ lsof -i@security.kaist.ac.kr $ lsof -iTCP(|UDP)@security.kaist.ac.kr:smtp

    ¹°·Ð ¿©·¯°³ÀÇ -i¿É¼ÇÀ» ÀÌ¿ëÇؼ­ ´Ù¾çÇÑ È£½ºÆ®·ÎÀÇ ¿¬°áÀ» Àâ¾Æ³¾ ¼ö ÀÖ´Ù.

    Tip 6) Tip 5)¸¦ ÀÀ¿ëÇؼ­ netstat°ú ¹°·Á¼­ ÀÌ¿ëÇÏ´Â ¿¹µµ ÀÖ´Ù.

    	$ netstat -t
    	Active Internet connections (w/o servers)
    	Proto Recv-Q Send-Q Local Address           Foreign Address         State 
    	tcp        0      0 security.kaist.ac:1019 fool.bbaga.co.kr:login ESTABLISHED
    
    ÀÚ, ´©±º°¡°¡ fool.bbaga.co.krÀÇ login ¼­ºñ½º·Î Ä¿³ØÆ®ÇÏ°í ÀÖ´Â °ÍÀÌ ¹ß°ß µÆ´Ù. ÀÌ ÇÁ·Î¼¼½º¸¦ Tip 5)¸¦ ÀÌ¿ëÇؼ­ ã¾Æº¸µµ·Ï ÇÏÀÚ.

    	$ lsof -iTCP@fool.bbaga.co.kr:login
    	COMMAND     PID     USER   FD   TYPE     DEVICE   SIZE/OFF  INODE NAME
    	rlogin    25023 godslord    3u  inet 0x10144168      0t184    TCP security.kaist.ac.kr:1019->fool.bbaga.co.kr:login
    	...
    
    Tip 7) lsof·Î, ¾î¶² ƯÁ¤ÇÑ ÇÁ·Î±×·¥ÀÇ ÇÁ·Î¼¼½ºµéÀÌ ¾ï¼¼½ºÇÏ°í ÀÖ´Â ¸ðµç ÆÄÀϵéÀ» º¼ ¼ö ÀÖ´Ù. -c ¿É¼ÇÀ¸·Î ÀÌ°ÍÀ» °£´ÜÇÏ°Ô ÇØ°áÇÒ ¼ö ÀÖ´Ù.

    $ lsof -c httpd

    httpd µ¥¸óÀ» ÅëÇؼ­ ¾ï¼¼½º µÇ°í ÀÖ´Â ¸ðµç ÆÄÀϵéÀ» ¿­¶÷ÇÒ ¼ö ÀÖ´Ù.

    Tip 8) lsof¸¦ ÀÌ¿ëÇÏ¿©, rcp³ª ftp¸¦ ÀÌ¿ëÇÑ ÆÄÀÏ Àü¼Û °úÁ¤À» ¸ð´ÏÅ͸µ ÇÒ ¼öµµ ÀÖ´Ù. ¸ÕÀú ´ë»óÀÌ µÇ´Â ÇÁ·Î¼¼½º¸¦ ps µîÀ» ÀÌ¿ëÇؼ­ ã¾Æ³½´Ù. ±×·± ´ÙÀ½,

    $ lsof -p <PID>

    ¸¦ ÇÏ¸é ´ç¿¬È÷ ÇØ´ç ÇÁ·Î¼¼½º°¡ ¿­°í ÀÖ´Â ÆÄÀϵéÀ» ¿­¶÷ÇÒ ¼ö ÀÖ°Ô µÈ´Ù. Á¶±Ý ´õ ÀÚ¼¼È÷ÇÏ°í ½Í´Ù¸é, ftp´Â ÀϹÝÀûÀ¸·Î 9,10À̳ª 10,11¹øÀ» °¢°¢ Socket°ú Local Data File¿¡ ÇÒ´çÇÏ°í, rcp´Â 3,4¹øÀ» ÇÒ´çÇÑ´Ù. À̸¦ ÀÌ¿ë Çϸé,

    $ lsof -p <PID> -ad9,10 -r

    ÀÌ·± ½ÄÀ¸·Î µÇ¸ç, ¾î¶² ¶æÀÎÁö´Â À§ÀÇ ¿É¼Ç ¼³¸íÀ» º¸°í Çؼ®ÇØ º¸±â ¹Ù¶õ´Ù.

    Tip 9) lsof·Î´Â ¾î¶² À¯Àú°¡ ¿­°í ÀÖ´Â ¸ðµç ÆÄÀϵéÀ» ¿­°ÅÇØ º¼ ¼öµµ ÀÖ´Ù.

    $ lsof -u<loginname> ȤÀº $ lsof -u<UID>

    -u ¿É¼Ç¿¡´Â ÀÎÀÚ¸¦ ","·Î ±¸ºÐÇÏ¿© ¿©·¯ ÀÎÀÚ¸¦ ÇÑ ²¨¹ø¿¡ ³Ñ±æ ¼ö ÀÖ´Ù.

    $ lsof -ugodslord,sakai,astroby

    Áï, godslord, sakai, astrobyÀÇ À¯ÀúµéÀÌ ¿­°í ÀÖ´Â ¸ðµç ÆÄÀϵéÀ» ¿­°ÅÇÑ´Ù. -u ¿É¼ÇÀ» »ç¿ëÇϸ鼭, ƯÁ¤ÇÑ À¯Àú¿¡ ´ëÇÑ Á¤º¸´Â º¸°í ½ÍÁö ¾ÊÀ» ¶§´Â, Login NameÀ̳ª UIDÀÇ ¾Õ¿¡ "^"¸¦ ºÙ¿© ÁÖ¸é µÈ´Ù.

    $ lsof -u ^root ȤÀº $ lsof -u ^0

    ÀÌ·¸°Ô µÇ¸é, root¿¡ ´ëÇؼ­´Â üũ¸¦ ÇÏÁö ¾Ê´Â´Ù.

    Tip 10) lsof¸¦ ÀÌ¿ëÇؼ­, ·Î±×ÀÎ ÃßÀûµµ °¡´ÉÇÏ´Ù. ´ÙÀ½ÀÇ ¿¹Á¦´Â Solaris 2.x ¿¡¼­ÀÇ °æ¿ìÀÌ´Ù.

    	$ lsof -i@security.kaist.ac.kr
    	COMMAND    PID USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
    	in.rlogin 8112 root    0u  inet 0x60d7c7e8      0t2  TCP fool.bbaga.co.kr:login->security.kaist.ac.kr:1018 (ESTABLISHED)
    	in.rlogin 8112 root    1u  inet 0x60d7c7e8      0t2  TCP fool.bbaga.co.kr:login->security.kaist.ac.kr:1018 (ESTABLISHED)
    	in.rlogin 8112 root    2u  inet 0x60d7c7e8      0t2  TCP fool.bbaga.co.kr:login->security.kaist.ac.kr:1018 (ESTABLISHED)
    
    security.kaist.ac.kr¿¡¼­ºÎÅÍ fool.bbaga.co.kr·Î ·Î±äÇÑ ÇÁ·Î¼¼½º°¡ ÀÖ´Ù. ÀÌ ÇÁ·Î¼¼½ºÀÇ ID´Â 8112¹øÀÌ´Ù.

    	$ lsof -p 8112
    	COMMAND    PID USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
    	....
    	in.rlogin 8112 root    4u  VCHR       23,0      0t0 136785 /devices/pseudo/clone@0:ptmx->logindmux->ptm
    	in.rlogin 8112 root    5u  VCHR        4,0      0t0 136939 /devices/pseudo/clone@0:logindmux->logindmux
    	in.rlogin 8112 root    6u  VCHR        4,1      0t0 136939 /devices/pseudo/clone@0:logindmux->logindmux
    	...
    
    ¹°·Ð ´Ù¸¥ ³»¿ëµµ ¸¹°ÚÁö¸¸ À§ÀÇ ³»¿ë, ƯÈ÷ ¸Ç ù ¶óÀο¡ ÁÖ¸ñÇØ º¸ÀÚ. ÀÌ ÇÁ·Î¼¼½º´Â DEVICE Ç׸ñ¿¡¼­ º¸µíÀÌ, 23, 0ÀÇ Device¸¦ »ç¿ëÇÏ°í ÀÖÀ¸¸ç, ÀÌ´Â °ð, /dev/pts/0À» ÀǹÌÇÑ´Ù.

    	$ lsof /dev/pts/0
    	COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
    	tcsh    8114  godslord   15u  VCHR   24,0  0t35381 136786 /dev/pts/../../devices/pseudo/pts@0:0
    	...
    
    Áï, ÀÌ À¯Àú´Â /dev/ptr/0¿¡¼­ tcsh ÇÁ·Î¼¼½º¸¦ °¡Áö°í ·Î±äÇÑ »ç½ÇÀ» ¾Ë ¼ö ÀÖ´Ù.

    Platform¸¶´Ù ´Ù¸£Áö¸¸ ºñ½ÁÇÑ ¹æ¹ýÀ¸·Î ·Î±äÀ» ÃßÀûÇØ ³¾ ¼ö ÀÖ´Ù.