6.6. X ディスプレイマネージャ

寄稿: Kingsley Seth [FAMILY Given].

6.6.1. 概要

X ディスプレイマネージャ (XDM) は X Window System のオプショナルな一部分であり、 ログインセッションの管理に用います。 最低限の機能を実装した X 端末 やデスクトップ、 大規模なネットワークディスプレイサーバといった場面ではこれが有用です。 X Window System はネットワークとプロトコルから独立しているため、 ネットワークで繋がれた X のクライアントとサーバを動かすための設定はかなり幅が広くなります。 XDM はどのディスプレイサーバに接続するかを選択でき、 ログイン名とパスワードの組み合わせなど認証情報を入力できるグラフィカルなインタフェースを提供しています。

XDM がユーザに getty(8) (詳しくは 「設定」 をご覧ください) と同じ機能を提供することを考えてみてください。 つまり、ディスプレイ上でシステムへのログインができ、 ユーザの代わりにセッションマネージャ (通常は X のウィンドウマネージャ) を起動することができるのです。 それから XDM は、 ユーザが作業を終えてディスプレイからログアウトする合図を送ってきてプログラムが終了するのを待ちます。 この時点で、XDM は次にログインするユーザのためにログイン画面や chooser 画面を表示できます。

6.6.2. XDM の使用

XDM を使用するには、 x11/xdm port をインストールしてください (最近の Xorg のバージョンでは、 デフォルトでインストールされません)。 XDM のデーモンプログラムは /usr/local/bin/xdm にあります。 このプログラムは root になればいつでも起動することができ、 ローカルマシン上のディスプレイの管理を始めます。 マシンをブートする際、いつも XDM を起動したい場合には、/etc/ttys にそのためのエントリを加えておくのが簡単です。 このファイルのフォーマットや使用方法についての詳細は /etc/ttys へのエントリの追加」 を参照してください。 デフォルトの /etc/ttys ファイルには仮想端末上で XDM デーモンを起動するための行:

ttyv8	"/usr/local/bin/xdm -nodaemon"	xterm	off secure

があります。 このエントリはデフォルトでは無効になっており、有効にするには 5 番目のカラムを off から on にし、init にファイル /etc/ttys の再読み込みをさせる」 の指示に従って init(8) を再起動します。 最初のカラムはこのプログラムが管理する端末の名前で、この場合 ttyv8 になります。 つまり、XDM は 9 番目の仮想端末で起動されるということです。

6.6.3. XDM の設定

XDM の設定用ディレクトリは /usr/local/lib/X11/xdm です。 このディレクトリには XDM の振る舞いや見た目を変更するために用いられるいくつかのファイルがあります。 だいたいは以下のような感じです。

ファイル説明
Xaccessクライアント認証のルールセット
Xresourcesデフォルトの X リソース
Xservers管理すべきリモートやローカルのディスプレイのリスト
Xsessionデフォルトのログイン時のセッションスクリプト
Xsetup_*ログインインタフェースの前にアプリケーションを起動するためのスクリプト
xdm-configこのマシンで動いているすべてのディスプレイのグローバルな設定
xdm-errorsサーバプログラムによって生成されるエラー
xdm-pid現在動いている XDM のプロセス ID

このディレクトリにはまた、XDM の動作中にデスクトップをセットアップするために用いられるスクリプトやプログラムがいくつかあります。 それぞれのファイルの目的を簡単に解説しましょう。 正確な文法や使い方は xdm(1) に記述されています。

デフォルトの設定では、単純な四角のログインウィンドウがあり、 そこにはマシンのホスト名が大きなフォントで表示され、 Login:Password: のプロンプトがその下に表示されています。 XDM スクリーンの見ためや使い勝手を変えるにはここから始めるのがいいでしょう。

6.6.3.1. Xaccess

XDM がコントロールするディスプレイに接続するためのプロトコルは X Display Manager Connection Protocol (XDMCP) と呼ばれます。 このファイルにはリモートのマシンからの XDMCP 接続をコントロールするためのルールセットが書かれます。 これは、xdm-config を変更してリモートからのコネクションを待ち受けるようにしない限り無視されます。 デフォルトでは、どのクライアントからの接続も拒否します。

6.6.3.2. Xresources

これはディスプレイの chooser とログインスクリーン用の application-defaults ファイルです。 このファイルでログインプログラムの見た目を変更することができます。 フォーマットは X11 のドキュメントで記述されている app-defaults ファイルのものと同じです。

6.6.3.3. Xservers

これは、chooser が選択肢として提供するリモートのディスプレイの一覧です。

6.6.3.4. Xsession

XDM でログインした後に実行されるデフォルトのセッションスクリプトです。 通常、各ユーザは ~/.xsession というカスタマイズしたセッションスクリプトを持っており、 こちらが優先されます。

6.6.3.5. Xsetup_*

これらは chooser やログインインタフェースが表示される前に自動的に実行されます。 それぞれのディスプレイに対して、Xsetup_ に続けてローカルのディスプレイ番号を付けた (たとえば Xsetup_0) 名前のついたスクリプトがあります。 典型的な使い方は xconsole のようなバックグラウンドで動かすプログラムを一つか二つ起動することです。

6.6.3.6. xdm-config

app-defaults の書式で書かれた、 このインストレーションで管理されるすべてのディスプレイに適用される設定を保持しています。

6.6.3.7. xdm-errors

このファイルには XDM が起動しようとしている X サーバからの出力が書き出されます。 XDM が起動しようとしているディスプレイがなんらかの理由でハングした場合、 このファイルのエラーメッセージを見てください。 そういったメッセージは各ユーザの ~/.xsession-errors にもセッション毎に書き出されます。

6.6.4. ネットワークディスプレイサーバの起動

あるディスプレイサーバに他のクライアントが接続することができるようにするために、 アクセスコントロールのルールを編集し、 コネクションリスナを有効にする必要があります。 デフォルトでは保守的な設定になっています。 XDM がそういったコネクションを待ち受けるようにするためには xdm-config にある次の行をコメントアウトします。

! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort:     0

そして、XDM を再起動します。 app-defaults ファイルにおけるコメントは ! であっていつものような # ではないことに注意してください。 アクセス制限はもっと厳しくしてもよいかもしれません。 Xaccess にある例を参考にしたり、詳細についてオンラインマニュアル xdm(1) を参照してください。

6.6.5. XDM の代わりになるもの

デフォルトの XDM に代わるものがいくつかあります。 一つは KDM (KDE に付属しています) はその一つであり、この章の後ろで解説します。 KDM ディスプレイマネージャは、 ログイン時にウィンドウマネージャを選ぶことができるのに加え、 見た目もかなり綺麗にしてくれます。

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、 ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。

本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。