X Window System資料一覧

xdmの仕組み

2007/7/29更新

XDMCP

xdmでX端末を管理する際、通常はXDMCP(X Display Manager Control Protocol)というプロトコルを使用する。

X端末はXDMCPによるリクエストをリモートマシンに送るが、xdmの動いているマシンを見付けるには以下の3種類の方法をとることができる。

尚、ここではxdmが動いているマシンを便宜的にxdmサーバと呼ぶことにする。

ダイレクト要求

この方法はxdmサーバに直接リクエストを送る方法で、X端末から直接xdmサーバにXDMCPのリクエストを送る。常に同じxdmサーバを使用したい時はこの方法を使う。

ブロードキャスト要求

リクエストをブロードキャストしてxdmサーバを見付ける方法で、ダイレクト要求と違いXDMCPのリクエストをネットワークにブロードキャストする。

複数のxdmサーバがあれば全てのxdmサーバが返事をする。

どのxdmサーバを利用するかは「早いもの勝ち」で、最初に返事をしたxdmサーバが選ばれる。

インダイレクト(間接的な)要求

この方法はブロードキャスト要求を指定したxdmサーバに肩代わりしてもらう方法で、X端末から指定したxdmサーバにブロードキャスト要求を依頼する。

インダイレクト要求を受け取ったxdmサーバはchooserと呼ばれるプログラムを起動し、ネットワークに対してXDMCPのリクエストをブロードキャストする。

各xdmサーバから返事がくるとchooserは利用可能なxdmサーバのリストをX端末に送る。

X端末上には利用できるxdmサーバの一覧が表示されるので、利用したいxdmサーバをこの中から選ぶ。

選んだ後の処理はダイレクト要求の場合と同じである。

xdmの設定ファイル

xdmの設定ファイルは/usr/X11R6/lib/X11/xdm配下に置かれている。

% ls 
GiveConsole*  Xaccess     Xservers   Xsetup_0*  xdm-config
TakeConsole*  Xresources  Xsession*  chooser*

これらのファイルの内容は以下の通り。

GiveConsole,TakeConsole

xdmサーバのコンソール(/dev/console)をX端末のユーザに渡したり元に戻したりするためのスクリプト。

Xaccess

XDMCPによるアクセスをマシン単位で制御するための設定ファイル。

インストール時の状態ではどのマシンからのXDMCPリクエストも受け付けるような設定になっているが、これを変更することによりアクセス可能なマシンを制御できる。

Xresources

Xのリソースファイルで、ログイン画面の外見などをカスタマイズできる。

Xservers

XDMCPを使わない(あるいは使えない)X端末を管理するための設定ファイル。

ローカルマシンのログイン画面をxdmで管理する場合にも使われる。

Xsession

X端末にユーザがログインしたあとのセットアップを行うためのファイル。

ユーザのホームディレクトリに.xsessionファイルがあればXsessionの最後に実行する。

デフォルトの状態では.xsessionファイルがなければxtermが1つだけ起動される設定になっている。

Xsetup_0

ローカルマシンをxdmで管理する場合のログイン画面をセットアップするためのファイル。

デフォルトの状態ではxconsoleというプログラムが起動される。

chooser

X端末からのインダイレクト要求を受けて起動するchooserプログラム。

xdm-config

xdmが起動する際に利用する設定ファイルで、上記の設定ファイルの場所を指定したりXのauthorization機能を使う/使わないなどの設定ができる。

Xのauthorization機能は従来のxhostに代わるアクセス制御機能で、より細かくXサーバへのアクセスをコントロールすることができる。