XDM은 그래픽 환경의 터미널로 로그인 시에 많이 사용되는 방법이다. login 과 비슷하게 보일지 모르나 내부적으로는 완전히 다른것이다. 전과는 다른 로그인 과정을 실행하기 위한 설정파일들이 /etc/X11/xdm 디 렉토리에 있다. Xstartup (screen 0 는 Xstartup_0) 은 유저가 로그인한후 실행되는 명령들이 있다.(명령은 root 권한으로 실행되어진다) 유저들을 위한 path 는 /etc/X11/xdm/xdm-config 파일에 있다. 다음과 같은 라인들인데
DisplayManager*userPath: /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
DisplayManager*systemPath: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
당연히 일반 사용자와 root를 위한 기본 path 가 될것이며 /usr/bin/X11 디 렉토리가 path에 걸려있다는 것에 주목하기 바란다. 만약에 X 유저가 다른 머신에 들어가 X 클라이언트 프로그램을 실행하기 위해서는 (X terminal로 부터 직접 로그인 하지 않았더라도..) /usr/bin/X11 이 path에 걸려있어야 한다.
Xstartup을 실행한후 XDM은 최종사용자로서 /etc/X11/Xsession을 실행 한다. /etc/environment 파일이 존재한다면 Xsession은 이 파일을 불러들 이고 로칼 설정은 이 파일에서 끝나게 된다.(Xsesion은 /bin/sh 에 의해 실 행되므로 /etc/environment 는 sh파일이어야 한다) 이 때문에 ssh를 사용할 경우 문제가 발생한다. ssh는 /etc/environment가 VAR=VALUE, 이런 형 식의 라인들이 들어가 있는 파일일 것이라 생각하기 때문이다.
디폴트로 X window메니져 메뉴로부터 실행된 명령들을 위한 path는 XDM 으로부터 상속받은 것이다. 다른 path를 원한다면 직접 세팅해줘야 한다. 몇몇 기본적인 패스를 가지고 터미널 에뮬레이터를 시작하려면 특별한 옵션 들이 사용되어져야 한다. xterm에서는 -ls(login shell) 옵션을 사용하여 shell 로그인 초기화 파일의 path를 지닌 로그인 쉘을 기동할 수 있다.
윈도우 메니져는 XDM으로부터 환경변수를 물려받는다. 윈도우 메니져로 부터 실행된 모든 프로그램들은 윈도우 메니져의 환경을 물려받는다. 사용자 쉘의 환경변수는 윈도우 메니져의 버튼이나 메뉴로부터 실행되는 프로그램에는 영향을 미치지 않는다. 예를들어, 'xterm -ls'에서 프로그램이 스타트 된다면 로그인 쉘의 기본 환경을 갖게 되나, 메뉴에서 실행된다면, 단지 윈도우 메니져의 환경만을 가질뿐이다.