The X Display Manager

    ¹ø¿ª : ±Ç¼ø¼± / cessi@kldp.linux-kr.org
    ¸®´ª½ºÇѱ۹®¼­ ÇÁ·ÎÁ§Æ® °ü¸®ÀÚ
    http://kldp.linux-kr.org
    by joel McCarty

     

 

Introduction

    ÀÌ ±â»çÀÇ ¸ñÀûÀº X Display Manager(xdm)ÀÇ ¼³Á¤°ú »ç¿ë¹ý¿¡ ÃÊÁ¡À» ¸ÂÃß´Â °ÍÀÔ´Ï´Ù.
    X Display Manager ´Â È£½ºÆ® ¸Ó½Å¿¡¼­ µ¥¸ó ÇÁ·Î¼¼½º·Î µ¿ÀÛÇÏ¸ç ¿ø°ÝÁö¿¡ Àְųª ȤÀº ·ÎÄÿ¡ ÀÖ´Â ´Ù¼öÀÇ X µð½ºÇ÷¹ÀÌ °ü·Ã »çÇ×À» °ü¸®ÇØ ÁÙ ¼ö ÀÖÀ¸¸ç init À̳ª getty, login µî°ú °ü·ÃµÈ ij¸¯ÅÍ ±â¹ÝÀÇ Å͹̳ο¡¼­¿Í ºñ½ÁÇÑ »ç¿ëÀÚ ¼¼¼Ç °ü¸® ±â´ÉÀ» Á¦°øÇØ ÁÝ´Ï´Ù.

    ¶ÇÇÑ xdmÀº X ¼­¹ö°¡ ´õ ÀÌ»ó µ¿ÀÛÇÏÁö ¾Ê´Â ÂÊ¿¡¼­ÀÇ ÇÁ·Î¼¼½º¸¦ ¾ø¾ÖÁÙ ¼öµµ ÀÖÀ¸¸ç xdmÀÇ Æ¯Â¡ Áß °¡Àå À¯¿ëÇÑ ±â´É Áß Çϳª´Â È£½ºÆ®¿Í ¾îÄ«¿îÆ® Á¤º¸¿¡ ±â¹ÝÇÑ ¾×¼¼½º °úÁ¤À» Á¦¾îÇϱâ À§ÇØ µð½ºÇ÷¹ÀÌ ¼­¹ö Ãø¿¡¼­ »ç¿ëµÉ ¼ö ÀÖ´Â ÀÎÁõ Á¤º¸¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. Ç¥ÁØ ÀÎÁõ ±â¼úÀ» ÀÌ¿ëÇÏ¿© X ¼¼¼Ç ·Î±ä ±â´ÉÀ» Á¦°øÇØ ÁÙ ¼ö Àֱ⠴빮¿¡ xdm Àº ÇÑ ´ëÀÇ ¸Ó½ÅÀÌ ¼­·Î ´Ù¸¥ ¼³Á¤ »óÅ·ΠX ¼¼¼ÇÀ» »ç¿ëÇÏ´Â ´Ù¼öÀÇ »ç¿ëÀڵ鿡°Ô °øÀ¯µÇ´Â ȯ°æ¿¡¼­ ÀÌ»óÀûÀ¸·Î ÀÌ¿ëµË´Ï´Ù.

     

    Scope

    ÀÌ ±â»ç´Â xdm ÇÏ¿¡¼­ÀÇ ÀÎÁõ¿¡ ´ëÇؼ­ °£·«È÷ ´Ù·ç°í Àִµ¥, X À©µµ¿ìÀÇ º¸¾È°ú °ü·ÃµÇ´Â À̽´¿¡ ´ëÇؼ­´Â ´ÙÀ½ ´Þ¿¡ ´õ ÀÚ¼¼È÷ ´Ù·ç°Ô µÉ °ÍÀÔ´Ï´Ù. xdmÀ» ÇÑ ´ëÀÇ µ¶¸³ÀûÀÎ ¼­¹ö¿¡¼­ »ç¿ëÇÏ°íÀÚ ÇÑ´Ù¸é XDMCP ¿¡ °üÇÑ ¼½¼ÇÀº ÀÐÁö ¾Ê°í Áö³ª°¡µµ ±¦ÂúÀ» °Ì´Ï´Ù. °Ô´Ù°¡ ¼³Á¤ °úÁ¤µµ ±×´ÙÁö º¹ÀâÇÏÁö ¾ÊÁÒ. ¸¸¾à ¿©·¯ºÐÀÌ ÀÌ·± ȯ°æ(ÇÑ ´ëÀÇ µ¶¸³ÀûÀÎ ¼­¹ö¿¡¼­ xdmÀ» »ç¿ëÇϴ ȯ°æ)À̶ó¸é ¾à°£ÀÇ ¼³Á¤ »óŸ¸À» üũÇÏ°í Running xdm ¼½¼ÇÀ» Àо½Ã¸é ¿øÇÏ´Â °ÍÀ» ¾òÀ¸½Ç ¼ö ÀÖÀ» °Ì´Ï´Ù. ¿Ö³Ä¸é ´Ù¸¥ ¼¼¼ÇµéÀº ÁÖ·Î ³×Æ®¿öÅ©¿¡ ¿¬°áµÈ ȯ°æ¿¡¼­ X Å͹̳ΰú »óÈ£ÀÛ¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ­ ´Ù·ç°í Àֱ⠶§¹®ÀÌÁÒ. ¶ÇÇÑ X Å͹̳Π¼³Á¤À» ÇÒ ¼ö ÀÖµµ·Ï ¿ä¸®Ã¥Ã³·³ ¼ø¼­´ë·Î Â÷±ÙÂ÷±Ù ¾È³»ÇØ ÁÖ´Â ±×·± Á¤º¸¸¦ ¿øÇÏ½Å´Ù¸é ¿À·¼¸® »ç¿¡¼­ ³ª¿Â "The X Window System Administrators Guide"¸¦ Àо½Ã±â ¹Ù¶ø´Ï´Ù. ÀÌ ±â»çÀÇ ¹üÀ§¸¦ ¹þ¾î³ª´Â X Å͹̳Π¼³Á¤¿¡ °üÇؼ­ ÀÚ¼¼È÷ ¾Ë ¼ö ÀÖ½À´Ï´Ù.

     

    Session management under X

    ÀüÅëÀûÀÎ tty ·Î±ä ȯ°æ¿¡¼­ ¼¼¼ÇÀ̶õ °ÍÀº À¯ÀúÀÇ ·Î±ä ½©À» ÀǹÌÇÏÁö¸¸ xdm ȯ°æ ÇÏÀÇ ¼¼¼ÇÀº ¼¼¼Ç ¸Å´ÏÀú¿¡ ÀÇÇØ °ü¸®µË´Ï´Ù. ¿Ö³Ä¸é À©µµ¿ì ȯ°æ¿¡¼­´Â À¯ÀúÀÇ ·Î±ä ½©ÀÇ ÇÁ·Î¼¼½º°¡ ²À "Å͹̳Î"ÀÇ ÀÎÅÍÆäÀ̽º¸¦ °¡Á®¾ß ÇÒ ÇÊ¿ä°¡ ¾ø±â ¶§¹®ÀÔ´Ï´Ù. X À©µµ¿ì ȯ°æÇÏ¿¡¼­ÀÇ ¼¼¼Ç°ü¸®¸¦ À§Çؼ­ ¿ì¸®´Â À©µµ¿ì ¸Å´ÏÀú¸¦ ¼¼¼Ç ¸Å´ÏÀú·Î »ç¿ëÇÏ°í À©µµ¿ì ¸Å´ÏÀú ÇÁ·Î¼¼½º°¡ ³¡³ª¸é »ç¿ëÀÚÀÇ ¼¼¼Çµµ ÇÔ²² ³¡³ª°Ô µÇ´Â °ÅÁÒ.

     

    xdm basic concepts

    xdm Àº X Ŭ¶óÀ̾ðÆ®·Î¼­ »ç¿ëÀÚ ¼¼¼ÇÀ¸·ÎÀÇ Á¢¼Ó, Á¦¾î, »óÈ£ ÀÛ¿ëÀ» °ü¸®ÇÕ´Ï´Ù. xdm Àº X ¼­¹ö¿¡ °ü·ÃµÈ ÆÄÀÏÀ» ÀоîµéÀÓÀ¸·Î¼­ ¾î´À X ¼­¹ö°¡ Á¢¼ÓÀÌ °¡´ÉÇÑÁö¿¡ ´ëÇÑ Á¤º¸¸¦ ÃßÀûÇÏ°í XDMCP Æ÷Æ®¸¦ ÅëÇؼ­ ´Ù¸¥ X ¼­¹ö·ÎºÎÅÍÀÇ ¿äûÀ» °ü¸®ÇÕ´Ï´Ù. xdm ÀÌ X ¼­¹ö¸¦ °ü¸®ÇÏ°Ô µÇ¸é xdm Àº ¼­¹ö ÃøÀÇ µð½ºÇ÷¹ÀÌ¿¡ ·Î±ä ¹Ú½º¸¦ »Ñ·ÁÁÖ°í »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ±â´Ù¸³´Ï´Ù. »ç¿ëÀÚ°¡ À̸§°ú Æнº¿öµå¸¦ ÀÔ·ÂÇϸé tty ·Î±ä °úÁ¤°ú ²À °°Àº °úÁ¤À» °ÅÃÄ »ç¿ëÀÚ ÀÎÁõÀ» ¹Þ°Ô µË´Ï´Ù. ±× ÈÄ xdm Àº »ç¿ëÀÚ°¡ ¿øÇÏ´Â X Ŭ¶óÀ̾ðÆ®µéÀ» ÀÛµ¿½ÃÄÑÁÖ±â À§Çؼ­ ÀÏ·ÃÀÇ ½©½ºÅ©¸³Æ®¸¦ ÀÛµ¿½Ãŵ´Ï´Ù. ±×·¯¸é ÀÌÁ¦ º¸ÅëÀÇ X ¼¼¼ÇÀÌ µ¿ÀÛÇÏ°Ô µÇ´Â °ÍÀÌ°í »ç¿ëÀÚ°¡ ÀÌ ¼¼¼Ç¿¡¼­ ·Î±× ¾Æ¿ôÇϸé xdm Àº ¸ðµç Á¢¼ÓÀ» ²÷°í ´Ù¸¥ ¼¼¼ÇÀ» Á¦°øÇØÁÖ±â À§Çؼ­ ·Î±äÀ» ±â´Ù¸®´Â »óÅ·ΠµÇµ¹¾Æ°©´Ï´Ù.

     

Why use xdm ?

    º¸¾È °ü·Ã »çÇ×À̳ª ±â´É, Æí¸®¼º µî¿¡ ¹®Á¦°¡ ÀÖ¾î xinit Àº X Äܼҽþö(Áö±ÝÀº Open Group)À¸·ÎºÎÅÍ ¹èÁ¦µÇ°í Áö±ÝÀº ¸ðµç ±â´ÉµéÀÌ xdm ¿¡ Ãß°¡µÇ°í ÀÖ´Â »óÅÂÀÔ´Ï´Ù. xdm Àº °ü¸®ÀÚµéÀÌ ½Ã½ºÅÛ Â÷¿ø¿¡¼­ ȯ°æÀ» ¼³Á¤ÇØÁÙ ¼ö ÀÖ°Ô ÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù. ¶ÇÇÑ xdm Àº Á¦°¡ ¾Ë°í ÀÖ±â·Î´Â »õ·Î¿î »ç¿ëÀÚ¸¦ À§Çؼ­ X ¼­¹ö ÇÁ·Î¼¼½º¸¦ Àç ½ÇÇàÇÏÁö ¾Ê°íµµ ¿©·¯ ¸íÀÇ »ç¿ëÀÚ°¡ ÇÑ ´ëÀÇ ¸Ó½ÅÀÇ °øÀ¯ÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â À¯ÀÏÇÑ ¹æ¹ýÀÔ´Ï´Ù.

     

Configuration

    xdm Àº º¸ÅëÀÇ ¾Æ½ºÅ° ÅؽºÆ® ÆÄÀϷμ­ °ü¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. /usr/lib/X11/xdm À̳ª /etc/xdm µð·ºÅ丮¿¡ ±Û·Î¹ú ¼³Á¤ ÆÄÀÏÀÌ À§Ä¡ÇÏ°í °³º° »ç¿ëÀÚÀÇ È¨ µð·ºÅ丮¿¡ °³º° »ç¿ëÀÚ ¼³Á¤ ÆÄÀÏÀÌ À§Ä¡ÇÏ°Ô µË´Ï´Ù. °³º° »ç¿ëÀÚ ¼³Á¤ ÆÄÀÏÀº Ȩ µð·ºÅ丮¸»°í ´Ù¸¥ °÷Àº °¥ µ¥°¡ ¾øÁÒ. ¸Å¿ì Èï¹Ì·Î¿î »ç½ÇÀº xdmÀ» ½ÇÇàÇÒ ¶§ -config ÆĶó¹ÌÅ͸¦ ÀÌ¿ëÇÏ°í ¾Æ·¡¿¡¼­ »ìÆ캸½Ç xdm-config ¼³Á¤ ÆÄÀÏ¿¡¼­ ¼³Á¤ ÆÄÀϵéÀÇ À§Ä¡¸¦ ´Ù¸¥ °÷À¸·Î ÁöÁ¤ÇÏ¿© ÁÙ ¼öµµ ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. µû¶ó¼­ Á»´õ ½±°Ô °ü¸®ÇÒ ¼ö ÀÖ´Â ¿©Áö°¡ »ý±â´Â °ÅÁÒ. ¾Æ·¡¿¡ º¸½Ã´Â °ÍÀº °¢°¢ÀÇ ¼³Á¤ ÆÄÀϵéÀÇ ¿¹ÀÔ´Ï´Ù.

     

    Global File

    xdm-config

    ÀÌ ÆÄÀÏÀº ´Ù¸¥ ¸ðµç ¼³Á¤ ÆÄÀÏÀÇ À§Ä¡¸¦ ÁöÁ¤Çϸç(µðÆúÆ® À§Ä¡°¡ ¾Æ´Ñ ´Ù¸¥ °÷¿¡¼­ ¼³Á¤ ÆÄÀÏÀ» º¸°üÇÒ ¶§) xdm ÀÇ ¼Â¾÷, ½ÃÀÛ, ¸®¼Â, ±âº» ½ºÅ©¸³Æ® µî°ú °ü·ÃµÈ ¸í·É¾îµéÀ» ¼³Á¤ÇØ ÁÝ´Ï´Ù. ¾Æ·¡ º¸½Ã°Ô µÉ ¿¹Á¦¿¡¼­´Â ¸ðµç ´Ù¸¥ ¼³Á¤ ÆÄÀϵéÀÌ /etc/X11/xdm ¾Æ·¡¿¡ À§Ä¡ÇÏ°Ô ÇÏ¿© /usr/lib/X11/xdm ¾Æ·¡¿¡ ÀÖ´Â µðÆúÆ® ¼³Á¤ ÆÄÀϵ鿡 ¼ÕÀ» ´ëÁö ¾Ê°í ±×´ë·Î µÑ ¼ö ÀÖ°Ô ÇÏ¿´½À´Ï´Ù.

      DisplayManager.errorLogFile : /var/log/xdm-error.log
      DisplayManager.pidFile : /var/run/xdm.pid
      DisplayManager.keyFile : /etc/X11/xdm/xdm-keys
      DisplayManager.servers : /etc/X11/xdm/Xservers
      DisplayManager.accessFile : /etc/X11/xdm/Xaccess
      DisplayManager._0.authorize : true
      DisplayManager._1.authorize : true
      DisplayManager._0.setup : /etc/X11/xdm/Xsetup_0
      DisplayManager._0.startup : /etc/X11/xdm/GiveConsole
      DisplayManager._0.reset : /etc/X11/xdm/TakeConsole
      DisplayManager*resources : /etc/X11/xdm/Xresources
      DisplayManager*session : /etc/X11/xdm/Xsession
      DisplayManager*authComplain : false

     

    Xservers

    xdm¿¡ ÀÇÇØ °ü¸®µÉ X ¼­¹öÀÇ ¸®½ºÆ®¸¦ ¸í½ÃÇÕ´Ï´Ù. ÃÖ¼ÒÇÑ ÀÌ ÆÄÀÏÀº ·ÎÄà µð½ºÇ÷¹ÀÌ ¼­¹ö´Â ¸í½ÃÇØ¾ß ÇÕ´Ï´Ù. ÁÖÀÇÇÒ °ÍÀº ÀÌ ÆÄÀÏÀº ¼¼¼ÇÀÌ ³¡³ª°Å³ª ȤÀº xdm ÀÌ SIGHUP ½Ã±×³ÎÀ» ¹Þ¾ÒÀ» ¶§¸¸ ´Ù½Ã Àоîµé¿©Áø´Ù´Â °Ì´Ï´Ù. xdm¿¡ SIGHUP ½Ã±×³ÎÀ» º¸³»±â À§Çؼ­´Â xdmÀÇ pid¸¦ ã¾Æ³»¼­ ±× ÇÁ·Î¼¼½º¸¦ Á׿©¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é,

      # ps -a | grep xdm
      2639 ? R 0 : 09 ?usr/bin/X11/xdm
      # kill -9 2639

    ¾Æ·¡¿¡ º¸½Ã°Ô µÉ °ÍÀº Xservers ÆÄÀϷμ­ ½ºÅĵå¾ó·Ð ¸Ó½Å¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â ¼³Á¤ÀÔ´Ï´Ù.

      # ferst line should be the local display

      : 0 local /usr/X11R6/bin/X
      # : 0 specifies console
      # local denotes the X server is running on the locally
      # /usr/X11R6/bin/X executable run at startup

      # the syntax for X terminals is slightly different
      # since they run their X server from another machine
      # ONLY enter X terminals if they DO NOT support XDMCP

      eng1 : 0 foreign NCD xterminal
      # eng1 is the name of the terminal
      # :0 is the display to use on the terminal
      # foreign signifies the X server is running on a different machine
      # NCD xterminal are display class resources specific to this term inal
      # and aren't absolutely neccesary

      eng2 : 0 foreign NCD xterminal
      eng3 : 0 foreign Visual xterminal 

     

    Xsession

    °¢°¢ÀÇ X ¼¼¼Ç¿¡¼­ »ç¿ëµÇ´Â ½ÃÀÛ ½ºÅ©¸³Æ®

      #!/bin/sh

      # following section enables failsafe logon when neccesary
      # using <CTRL><RETURN> after password activates failsafe mode

      case $# in
      1)
      case $1 in
      failsafe)
      exec xterm -geometry 80x24-0-0
      ;;
      esac
      esac

      # redirect errors to a file in user's home directory
      for errfile in "$HOME/.xsession-errors" "${TMPDIR-/tmp} /xses-$USER" ¡¬
      "/tmp/xses-$USER"
      do
      if ( cp /dev/null "$errfile" 2> /dev/null )
      then
      chmod 600 "$errfile"
      exec > "$errfile" 2>&1
      break
      fi
      done

      # use users local .xsession and .Xresources files if they exist
      startup=$HOME/.xsession
      resources=$HOME/.Xresources

      if [ -x "$startup" ]; then
      exec "$startup"
      elif [ -x "$HOME/.Xclients" ]; then
      exec "$HOME/.Xclients"
      elif [ -x /etc/X11/xinit/Xclients ]; then
      exec /etc/X11/xinit/Xclients
      else
      if [-f "$resources"]; then
      xrdb -load "$resources"
      fi
      exec xsm
      fi 

     

    Xresources

    xdm ¿¡ ÀÇÇØ °ü¸®µÉ ¸ðµç ¼­¹öµéÀÌ »ç¿ëÇÒ ¸®¼Ò½ºµéÀ» Á¤ÀÇÇÏ°í xrdb ¿¡ ÀÇÇØ ÀÐÇôÁý´Ï´Ù.

      # key settings to be used by Xlogin widget

      xlogin*login.translations : #override ¡¬
      # Ctrl R stops xdm from managing display
      Ctrl<key>R : abort-display()¡¬n¡¬
      # F1 or Ctrl Return run a failsafe session
      # consisting of a single xterm window
      <key>F1: set-session-argument(failsafe) finish-field()¡¬n¡¬
      Ctr<key>Return : set-session-argument(failsafe) finish-field()¡¬n¡¬
      <key>Return: set-session-argument() finish-field()

      # display setings for Xlogin widget to be displayed by xdm

      Xlogin*borderWidth : 3
      Xlogin*greeting : CLIENTHOST
      Xlogin*namePrompt : login : ¡¬040
      Xlogin*fail : Sorry Try Again
      # ifdef COLOR
      Xlogin*greetColor : CadeBlue
      Xlogin*failColor : red
      *Foreground : blak
      *Background : #fffff0
      # else
      Xlogin*Foreground : blak
      Xlogin**Background : white 
      # endif

      # settings for xconsole client which is used when xdm connection on
      # local server is initialized. This keeps console messages sent between
      # logins from going everywhere across the screen

      XConsole.text.geometry : 480x130 
      XConsole.verbose : true 
      XConsole*iconic :true 
      XConsole*font : fixed

      Chooser*geometry : 700x500+300+200
      Chooser*allowShellResize : false 
      Chooser*viewport.forceBars : true 
      Chooser*label.font : *-new century schoolbook-bold-i-normal-*-240-* 
      Chooser*label.label : XDMCP Host Menu from CLIENTHOST 
      Chooser*list.font : -*-*-medium-r-normal-*-*-230-*-*-c-*-iso8859-1 
      Chooser*Command.font : *-new century schoolbook-bold-r-normal-*-180-* 

     

    xdm-pid

    xdm ÀÇ ÇÁ·Î¼¼½º ¾ÆÀ̵𸦠°¡Áö°í ÀÖ´Â ÆÄÀϷμ­ ÆíÁýÇÏ¸é ¾ÈµË´Ï´Ù.

     

    xdm-errors

    xdm ÀÇ ¿¡·¯ ·Î±× ÆÄÀÏ

     

    Xaccess

    XDMCP ÀÇ ¾×¼¼½º Á¦¾î »óŸ¦ ¼³Á¤(X11R5 ¶Ç´Â ±× ÀÌÈÄ ¹öÀü)ÇÕ´Ï´Ù. ÀÌ ÆÄÀÏÀº XDMCP Äõ¸®¿¡ ´ëÇÑ ¾×¼¼½º ±ÇÇѸ¸À» Á¤ÀÇÇÏ°í Àִµ¥ °ü·ÃµÈ ´Ù¸¥ ÀÏ·ÃÀÇ È£½ºÆ®µéÀ» ¸ð¾Æ¼­ ±×·ìÈ­ ÇÏ´Â ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Â ±â´Éµµ Á¦°øÇÕ´Ï´Ù. ¼­¹ö·ÎÀÇ ¾×¼¼½º Á¦¾î´Â xdm-config ÆÄÀÏÀÇ Display manager*uthorize ¸®¼Ò½º¿¡  ÀÇÇØ ¼³Á¤µÇ°í XDMCP ¼³Á¤°ú ¿¹Á¦´Â ¾Æ·¡¿¡ ÀÖ´Â CHOOSER ¼½¼Ç¿¡¼­ ´õ ã¾Æº¼ ¼ö ÀÖ½À´Ï´Ù.

     

    GiveConsole

    ÄܼÖÀÇ »ç¿ë ±ÇÇÑÀ» À¯Àú¿¡°Ô ³Ñ°ÜÁÖ´Â ½© ½ºÅ©¸³Æ®. º°´Ù¸¥ ÀÌÀ¯°¡ ¾ø´Ù¸é ¾Æ·¡¿¡ º¸ÀÌ´Â µðÆúÆ® ¼³Á¤À» ±×´ë·Î ÀÌ¿ëÇϱ⠹ٶø´Ï´Ù.

      #!/bin/sh
      # Assign ownership of the console to the invoking user
      # $XConsortium : GiveConsole, v 1.2 93/09/28 14:29:20 gildea Exp $
      #
      # By convention, both xconsole and xterm -c check that the
      # console is owned by the invoking user and is readable before attaching
      # the console output. This way a random user can invoke xterm -c without
      # causing serious grief.
      #
      chown $USER /dev/console

     

    Take Console

    ÄܼÖÀÇ »ç¿ë±ÇÇÑÀ» ´Ù½Ã ·çÆ®¿¡°Ô·Î µÇµ¹¸®´Â ½© ½ºÅ©¸³Æ®ÀÔ´Ï´Ù. ÀÌ ÆÄÀϵµ ±×³É ±×´ë·Î »ç¿ëÇϱ⸦ ±ÇÇÕ´Ï´Ù.

      #!/bin/sh
      # Reassign ownership of the console to root, this should disallow
      # assignment of console output to any random user's xterm
      # $XConsortium : TakeConsole, v 1.2 93/09/28 14:30:29
      #
      chmod 622 /dev/console 
      choen root /dev/console

     

    Xsetup_0

    ·ÎÄà ÄÜ¼Ö ¼­¹öÀÇ ¼Â¾÷ »óŸ¦ µð½ºÇ÷¹ÀÌÇϱâ À§ÇÑ ½© ½ºÅ©¸³Æ®. ½Ã½ºÅÛÀ¸·ÎºÎÅÍ Å͹̳ηΠÀü¼ÛµÇ´Â ¸Þ½ÃÁöµéÀ» ³ªÅ¸³» ÁÖ´Â xconsole À» ¼³Á¤ÇÕ´Ï´Ù.

      #!/bin/sh
      # $XConsortium : Xsetup_0, v 1.3 93/09/28 14:30:31
      /usr/X11R6/bin/xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail

     

    Local File

    ~/.xsession

    Xsession ½ºÅ©¸³Æ®·ÎºÎÅÍ È£ÃâµÇ´Â °³º° »ç¿ëÀÚÀÇ ¼³Á¤À» ´ã°í ÀÖ´Â ½ÃÀÛ ½ºÅ©¸³Æ®. ~/.xinit °ú´Â ´Þ¸® ÀÌ°ÍÀº ¾î¶² ½© ½ºÅ©¸³Æ®·Îµµ ¸¸µé ¼ö ÀÖ½À´Ï´Ù. (~/.xinit Àº º»¼¿ °è¿­ÀÇ ½©½ºÅ©¸³Æ®¸¸À» »ç¿ëÇÕ´Ï´Ù.)

     

    ~/.Xresources

    Xsession ½ºÅ©¸³Æ®·ÎºÎÅÍ È£ÃâµÇ´Â °³º° »ç¿ëÀÚÀÇ ¸®¼Ò½º ¼³Á¤ Á¤º¸¸¦ ´ã°í ÀÖ´Â ÆÄÀÏ.

     

    ~/.xsession-errors

    °³º° »ç¿ëÀÚÀÇ X ¼¼¼Ç ¿¡·¯ ·Î±× ÆÄÀÏ

     

    ~/.Xauthority

    °³º° »ç¿ëÀÚÀÇ ¼­¹ö ÀÎÁõ Á¤º¸¸¦ ´ã°í ÀÖ½À´Ï´Ù.

     

    XDMCP

    X Display Manager Control Protocol Àº X11 ¸±¸®Áî 4¿¡¼­ xdm °ú X Å͹̳Π°£ÀÇ ¿©·¯ ¹®Á¦Á¡µéÀ» ÇØ°áÇϱâ À§ÇØ Ã³À½ ¼Ò°³µÇ¾ú½À´Ï´Ù. XDMCP °¡ ÀÖ±â Àü¿¡´Â xdm ÀÌ °ü¸® °¡´ÉÇÑ ¼­¹ö¸¦ ã¾Æ³»±â À§Çؼ­´Â ¿ÀÁ÷ Xservers ÆÄÀÏÀ» ÀоîµéÀÌ´Â °Í¹Û¿¡´Â ´Ù¸¥ ¹æ¹ýÀÌ ¾ø¾ú½À´Ï´Ù. Xservers  ÆÄÀÏÀº xdmÀÌ Ã³À½ ½ÃÀÛÇÒ ¶§¿¡¸¸ Àоîµé¿©Áö±â ¶§¹®¿¡ X Å͹̳ÎÀÇ Àü¿øÀÌ ³ª°¬´Ù°¡ ´Ù½Ã µé¾î¿ÔÀ» °æ¿ì¿¡´Â ¹®Á¦°¡ »ý±é´Ï´Ù. ±âº»ÀûÀ¸·Î´Â ¾ðÁ¦µçÁö X ¼­¹öÀÇ Àü¿øÀÌ ³ª°¬´Ù°¡ ´Ù½Ã µé¾î¿ÔÀ» °æ¿ì¿¡ °ü¸®ÀÚ°¡ xdm ¿¡ SIGHUP ½Ã±×³ÎÀ» º¸³»¼­ Xservers ÆÄÀÏÀ» ´Ù½Ã ÀоîµéÀ̵µ·Ï ÇÏ¿©¾ß ÇÕ´Ï´Ù.

    ±×·±µ¥ XDMCP ´Â ¼­¹öµéÀÌ xdm °ú Åë½ÅÇϴµ¥ ¼­¹öÀÇ ÀÌÀü »óÅ¿ʹ »ó°ü¾øÀÌ Åë½ÅÀ» ÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁÝ´Ï´Ù. XDMCP ȯ°æÇÏ¿¡¼­´Â È£½ºÆ®´Â XDMCP Æ÷Æ®·ÎºÎÅÍ ¿äûÀ» ±â´Ù¸®°í °ü¸® ¿äûÀÌ µé¾î¿À¸é ÀÚ±â ÀÚ½ÅÀÇ º¹»çº»À» Çϳª »ý¼ºÇÏ¿© Å͹̳ÎÀÇ ·Î±×ÀÎ ½ºÅ©¸°À¸·Î º¸³»ÁÖ°Ô µÇ´Â °ÍÀÌÁÒ.

     

    Communication Modes

    XDMCP ´Â ¼¼°¡Áö ¹æ¹ýÀ» ÀÌ¿ëÇÏ¿© Xservers ÆÄÀÏ¿¡ ¸í½ÃÀûÀ¸·Î ÁöÁ¤µÇÁö ¾ÊÀº ¹æ¹ýÀ¸·Îµµ °ü¸® ¿äûÀ» ¼­¹ö·Î º¸³¾ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ýÀº DIRECT, INDIRECT, BROADCAST ÀÔ´Ï´Ù.

    DIRECT ¸ðµå´Â ¼­¹ö°¡ ³×Æ®¿öÅ© ÂÊ¿¡ °ü¸® ¿äûÀ» º¸³»¼­ ±× ¿äûÀ» ¹Þ´Â ù ¹ø° xdm ÇÁ·Î¼¼½º°¡ ±× ¼­¹öÀÇ °ü¸®ÀÚ°¡ µÇ´Â °ÍÀÔ´Ï´Ù. INDIRECT ¸ðµå´Â X Å͹̳ÎÀÌ Á¢¼ÓÇÒ ¼ö ÀÖ´Â ¸ðµç È£½ºÆ® ¸ñ·ÏÀ» º¸¿©ÁֹǷΠ»ç¿ëÀÚ°¡ °ü¸®ÀÚ°¡ µÉ ¼­¹ö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. INDIRECT ¸ðµå´Â Ưº°È÷ È£½ºÆ®°¡ ¸¹Àº ȯ°æ¿¡¼­ À¯¿ëÇÏÁÒ. INDIRECT ¸ðµå¸¦ ÀÌ¿ëÇϱâ À§Çؼ­´Â Xaccess ÆÄÀÏÀÇ ¸®¼Ò½º¸¦ ¼¼ÆÃÇÏ´Â °úÁ¤¿¡¼­ CHOOSER Å°¿öµå¸¦ ÀÌ¿ëÇÏ¿©¾ß ÇÕ´Ï´Ù. ¶Ç´Ù¸¥ ¹æ¹ýÀº BROADCAST  ¸ðµå¸¦ ÀÌ¿ëÇÏ´Â °ÍÀ¸·Î¼­ ³×Æ®¿öÅ©ÀÇ ¸ðµç È£½ºÆ®¿¡ ºê·Îµåij½ºÆ® ¸Þ½ÃÁö¸¦ º¸³»¼­ »ç¿ëÀÚ¿¡°Ô ±×µé Áß Çϳª¸¦ ¼±ÅÃÇϵµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù.

     

    Chooser

    ½ÃÀÛÇÒ ¶§ È£½ºÆ® ¸Þ´º¸¦ Á¦°øÇÏÁö ¾Ê´Â X Å͹̳ÎÀ» »ç¿ëÇÒ ¶§´Â chooser ÇÁ·Î±×·¥ÀÌ BROADCAST ³ª INDIRECT ¸ðµå¿Í ¿¬µ¿ÇÏ¿© »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. chooser ÇÁ·Î±×·¥À» µ¿ÀÛÇÏ°Ô Çϱâ À§Çؼ­´Â CHOOSER¸¦ Xaccess ÆÄÀÏÀÇ È£½ºÆ® ¸®½ºÆ®¿¡ ù ¹ø° ¿£Æ®¸®·Î ¼³Á¤ÇÏ¸é µË´Ï´Ù.

      eng*.odhs.dsd.com CHOOSER BROADCAST

    ¿Í °°ÀÌ ÇØÁÖ¸é odhs.dsd.com µµ¸ÞÀÎ ¾ÈÀÇ eng ·Î ½ÃÀ۵Ǵ ¸ðµç Å͹̳ÎÀÌ Á¢¼Ó °¡´ÉÇÑ È£½ºÆ®µéÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Â È­¸éÀ» Á¦°øÇØÁÙ ¼ö ÀÖ½À´Ï´Ù. Á»´õ ±×·² µíÇÑ ½Ã³ª¸®¿À´Â Å͹̳εéÀÌ Á¢¼ÓÇÒ ¼ö Àִ ȣ½ºÆ® ¸ñ·ÏÀ» Á÷Á¢ ÁöÁ¤ÇØ ÁÖ´Â °ÍÀÔ´Ï´Ù. ÀÌ°ÍÀÌ ¹Ù·Î INDIRECT ¸ðµå¸¦ ÀÌ¿ëÇؼ­ ½±°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Â ±â´ÉÀÔ´Ï´Ù.

      eng*.odhs.dsd.com CHOOSER dspapps.odhs.dsd.com dbsrv.odhs.dsd.com test.odhs.dsd.com

    À§ÀÇ ¼¼ÆÃÀº eng·Î ½ÃÀ۵Ǵ odhs.dsd.com µµ¸ÞÀÎ ¾ÈÀÇ ¸ðµç Å͹̳εéÀÌ CHOOSER ¸Þ´º¸¦ ÅëÇؼ­ dspapps.odhs.dsd.com, dbsrv.odhs.dsd.com, test.odhs.dsd.com ¼­¹ö·Î Á¢±ÙÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.

    Xaccess ÆÄÀÏ¿¡¼­´Â °ü·Ã È£½ºÆ®µéÀ» ³í¸®ÀûÀÎ ±×·ìÀ¸·Î ¹­À» ¼ö ÀÖ´Â ±â´Éµµ Á¦°øÇÕ´Ï´Ù. ´ÙÀ½ ¿¹Á¦´Â À§¿¡¼­ »ç¿ëÇß´ø ¼³Á¤À» ¸ÅÅ©·Î·Î ±¸ÇöÇÑ °ÍÀÔ´Ï´Ù.

      %ENGHOSTS dsdapps.odhs.dsd.com dbsrv.odhs.dsd.com test.odhs.dsd.com

      eng*.odhs.dsd.com CHOOSER %ENGHOSTS

    chooser ÀÇ °Ñ¸ð½ÀÀº Xresources ÆÄÀÏÀÇ ¸®¼Ò½º¸¦ ¹Ù²ãÁÖ¸é ´Ù¸¥ ¸ð¾çÀ¸·Î ¸¸µé¾î ÁÙ ¼ö ÀÖ½À´Ï´Ù.

     

    Running xdm

    xdm ¼³Á¤À» ¸®ºÎÆà ¾øÀÌ Å×½ºÆ® Çغ¸±â À§Çؼ­´Â ÄÜ¼Ö »óÅ¿¡¼­

      init 5

    ÇÏ¸é µË´Ï´Ù. ÀÌ°ÍÀº ½Ã½ºÅÛÀÇ ·±·¹º§À» 5¹øÀ¸·Î ¹Ù²ãÁִµ¥ ·±·¹º§ 5¹ø¿¡¼­´Â xdm ÀÌ ÀÚµ¿À¸·Î ½ÇÇàµË´Ï´Ù. ·±·¹º§ 5¹øÀ¸·Î ÀüȯÇߴµ¥µµ xdmÀÌ ½ÃÀÛµÇÁö ¾ÊÀ¸¸é /etc/inittab ÆÄÀÏÀ» Çѹø »ìÆ캸±â ¹Ù¶ø´Ï´Ù. ÀÌ ÆÄÀÏ¿¡´Â ¾î´À ·±·¹º§¿¡¼­ xdmÀ» ½ÃÀÛÇÏ´ÂÁö ³ª¿Í ÀÖ½À´Ï´Ù.(½½·º¿þ¾îÀÇ °æ¿ì ·±·¹º§ 4¹ø¿¡¼­ xdmÀ» »ç¿ëÇϵµ·Ï µÇ¾îÀÖ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù¸¸ ´ëºÎºÐÀº 5¹øÀ» ÀÌ¿ëÇÕ´Ï´Ù.) ÀÌÁ¦ ¿©·¯ºÐÀº ·Î±äÀ» À§ÇØ »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ±â´Ù¸®´Â xlogin À§Á¬À» º¼ ¼ö ÀÖÀ» °Ì´Ï´Ù. ¸¸¾à ·±·¹º§¿¡ ´ëÇÑ ¼³Á¤À» Á¦´ë·Î ÇØÁÖ¾ú´Âµ¥µµ xdmÀÌ ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù´Â °ÍÀÌ È®ÀÎµÇ¸é ¾Æ·¡ÀÇ ¹®Á¦ ÇØ°á ¹æ¹ýµéÀ» ÂüÁ¶ÇϽʽÿÀ. ±×·¸Áö ¾Ê´Ù¸é ÀÌ ½ÃÁ¡¿¡¼­ ¿©·¯ºÐÀº xdmÀ» ÀÚ½ÅÀÌ ¿øÇϴ´ë·Î ¼³Á¤ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. xdmÀ» ¼³Á¤ÇÏ°í ³ª¸é /etc/inittab ÆÄÀÏÀ» ÆíÁýÇÏ¿© µðÆúÆ® ·±·¹º§À» 5¹øÀ¸·Î ÁöÁ¤ÇØ ÁÙ ¼öµµ ÀÖ½À´Ï´Ù. Á¦ °æ¿ì ÆÄÀÏÀÇ ´ÙÀ½ ³»¿ë¸¸À» ¹Ù²ãÁÖ¸é µÇ´õ±º¿ä.

      #/etc/inittab
      id : 3 : initdefault :

    ºÎºÐÀ»

      id : 5: initdefault :

    À¸·Î ¹Ù²ß´Ï´Ù. ÀÌ°ÍÀº ¸®´ª½º ½Ã½ºÅÛÀÌ ºÎÆÃµÉ ¶§ ±âº»ÀûÀ¸·Î xdmÀÌ ÀÛµ¿ÇÏ´Â ·±·¹º§ 5¹øÀ¸·Î ½ÃÀÛµÇ°Ô ÇÕ´Ï´Ù.

     

    Troubleshooting xdm

    ¸¸¾à xdmÀÌ »ý°¢Çß´ø ´ë·Î ÀÛµ¿ÇÏÁö ¾ÊÀ¸¸é ¿ì¼± ~/.xsession-errorsÆÄÀÏÀ» »ìÆ캸±â ¹Ù¶ø´Ï´Ù. ÀÌ ·ÎÄà ¿¡·¯ ·Î±× ÆÄÀÏÀº »ç¿ëÀÚ ¼öÁØ¿¡¼­ »ý±ä ¿¡·¯¸¦ º¸¿©ÁֹǷΠ½Ã½ºÅÛ ¼öÁØÀÇ ¿¡·¯º¸´Ù´Â ´õ À¯¿ëÇÏ°Ô ÀÌ¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ¾Æ·¡¿¡ ¸î °¡Áö °¡´ÉÇÑ ¿¡·¯¿Í ÇØ°á ¹æ¹ýÀ» º¸¿© µå¸®°Ú½À´Ï´Ù.

     

    ·Î±ä ¹Ú½º°¡ ½ºÅ©¸°¿¡ ³ªÅ¸³ªÁö ¾ÊÀ» ¶§

    ÀÌ°ÍÀº ¼³Á¤ ÆÄÀÏ¿¡ ¹®Á¦°¡ ÀÖÀ» °æ¿ì¿¡ ³ªÅ¸³ª´Â Çö»óÀÔ´Ï´Ù.

     

    ·Î±äÀº Àß µÇ´Âµ¥ ·Î±ä ¹Ú½º°¡ ´Ù½Ã ³ªÅ¸³ª°Ô µÉ ¶§

    ÀÌ°ÍÀº /.xsession ÆÄÀÏ¿¡ ½ÇÇà Æ۹̼ÇÀÌ ¾øÀ» ¶§ ³ªÅ¸³ª´Â Çö»óÀÔ´Ï´Ù. ·Î±äÀ» ÇÏ°í Æнº¿öµå¸¦ ÀÔ·ÂÇÑ ÈÄ ¿£ÅÍÅ°¸¦ ´©¸£±â Àü¿¡ ¿£ÅÍÅ°¸¦ ´©¸£´Â ´ë½Å ÄÁÆ®·Ñ Å°¿Í ¿£ÅÍÅ°¸¦ µ¿½Ã¿¡ ´©¸£½Ê½Ã¿À. ÀÌ·¸°Ô Çϸé /.xsession ½ºÅ©¸³Æ®¸¦ »ý·«ÇÏ°í ³Ñ¾î°¥ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô Çؼ­ ·Î±ä ÇÑ ÈÄ Å͹̳ΠÀ©µµ¿ì¿¡¼­ ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÏ°í ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.

      # chmod +x .xsession

     

    ·Î±ä ÇÑ ÈÄ ½ºÅ©¸°ÀÌ ¹ø½°Å¸®°í ·Î±ä ¹Ú½º°¡ ´Ù½Ã ³ªÅ¸³ª°Ô µÉ ¶§

    À§¿¡¼­ ¸»¾¸µå¸° ¹æ¹ýÀ¸·Î ÀÏ´Ü ·Î±äÇϽðí /.xsession ÆÄÀÏ¿¡ ¼³Á¤µÈ ¸í·Éµé Áß ¸¶Áö¸·¿¡ ½ÇÇàµÇ´Â ¸í·ÉÀÌ Æ÷±×¶ó¿îµå¿¡¼­ ½ÇÇàµÇ´ÂÁö È®ÀÎÇϽʽÿÀ.(¿ªÀÚ ÁÖ: º¸ÅëÀº ¸ðµÎ &¸¦ ºÙ¿©¼­ ¹é±×¶ó¿îµå·Î ½ÇÇàÇÏ°í ¸Ç ¸¶Áö¸· ÁÙ¿¡¼­ À©µµ¿ì ¸Å´ÏÀú¸¦ ½ÇÇàÇÒ ¶§ &¸¦ ºÙÀÌÁö ¾Ê°í Æ÷±×¶ó¿îµå·Î ½ÇÇàÇÏ¿© À©µµ¿ì ¸Å´ÏÀú°¡ ³¡³ª¸é ¼¼¼ÇÀ» Á¾·áÇϵµ·Ï ¼³Á¤ÇÑ´Ù. ¿©±â¼­ ²À À©µµ¿ì ¸Å´ÏÀú¸¦ ¸¶Áö¸·¿¡ Æ÷±×¶ó¿îµå·Î ½ÇÇàÇÏÁö ¾Ê°í ´Ù¸¥ ƯÁ¤ ¾îÇø®ÄÉÀ̼ÇÀ» ¸¶Áö¸·¿¡ Æ÷Å©¶ó¿îµå·Î ½ÇÇàÇÏ¸é ±× ¾îÇø®ÄÉÀ̼ÇÀÌ Á¾·áµÉ ¶§ ¼¼¼Çµµ ÇÔ²² Á¾·áµÈ´Ù.)

     

    Conclusion

    ÀÌ ±ÛÀ» ÀÐ°í ¿©·¯ºÐ²²¼­ X Display Manager ÀÇ °­·ÂÇÔ°ú È®À强À» È®½ÅÇÒ ¼ö ÀÖÀ¸¸é ÁÁ°Ú½À´Ï´Ù. ´ÙÀ½ ¹ø¿¡´Â Á¾Á¾ »ý·«µÇ°í ³Ñ¾î°¬´ø X ÀÇ º¸¾È ¹®Á¦¿¡ °üÇؼ­ »ìÆ캸µµ·Ï ÇÏ°Ú½À´Ï´Ù. Áú¹®À̳ª ÇÏ½Ç ¸»¾¸ÀÌ ÀÖÀ¸½Ã¸é ºÎ´ã¾øÀÌ jmccarty@theshop.net ·Î ¸ÞÀÏ ÁÖ¼¼¿ä.

     

    ¿ø¹®Àº LINUX FOCUS(http://www.linuxfocus.org/English/May1998/article14.html)¿¡¼­ ÀÐÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù.




¡ã top

homeÀ¸·Î...