# ログイン・マネージャの構成

ログイン・マネージャは、ログイン画面の表示、ユーザの認証、ユーザのセッションの起動を行うサーバです。グラフィカルなログインは、従来のビットマップ・ディスプレイ用のキャラクタ・モードでのログインに代わる魅力的な方法です。ログイン・サーバが管理するログイン画面は、ログイン・。サーバのディスプレイに直接表示することも、ネットワーク上のＸ端末またはワークステーションのディスプレイに表示することもできます。

ログイン・サーバを起動、停止、カスタマイズするときは、必ず root ユーザで行ってください。

SAG.LogMg.div.2
SAG.LogMg.div.3
SAG.LogMg.div.17
SAG.LogMg.div.18
SAG.LogMg.div.20
SAG.LogMg.div.42
SAG.LogMg.div.43

ログイン・サーバには次の機能があります。

- 特に指示しなければビットマップ・ディスプレイに、指示すればローカルなビットマップ・ディスプレイおよびネットワーク上のビットマップ・ディスプレイにログイン画面を表示できます。

- キャラクタ・コンソール・ディスプレイに直接接続できます。

- ネットワーク上の他のログイン・サーバからユーザがログイン画面を表示できるようにする選択画面を表示できます。

- ログイン・サーバへのアクセスをコントロールできます。

- 従来のキャラクタ・モード・ログインにアクセスできます。

ログイン・マネージャが管理するディスプレイは、ログイン・マネージャのサーバに接続することも、ネットワーク上のＸ端末またはワークステーションに接続することもできます。ローカル・ディスプレイでは、ログイン・サーバが自動的にＸサーバを起動し、ログイン画面を表示します。Ｘ端末などのネットワーク・ディスプレイでは、ログイン・サーバはＸディスプレイ・マネージャ・プロトコル (XDMCP)
1.0 をサポートします。このプロトコルにより、ディスプレイは、ログイン・サーバがディスプレイにログイン画面を表示するよう要求できます。

## ログイン・サーバの起動

ログイン・サーバは、通常、システムのブート時に起動されます。コマンド行からもログイン・サーバを起動できます。

- システムのブート時にログイン・サーバを起動するよう設定するには、次のように入力します。 `/usr/dt/bin/dtconfig -e`

  ログイン・サーバは、リブート時に自動的に起動されます。

- コマンド行からログイン・サーバを起動するには、次のように入力します。 `/usr/dt/bin/dtlogin -daemon`

一時的に構成をテストするためにログイン・サーバをコマンド行から起動することはできますが、通常はシステムのブート時にログイン・サーバを起動してください。

## ローカル・ディスプレイおよびネットワーク・ディスプレイの管理

SAG.LogMg.mkr.1 にログイン・サーバの構成を示します。

### ログイン・サーバの構成例

### ログイン・サーバのプロセスIDの検出

デフォルトでは、ログイン・サーバはプロセスIDを `/var/dt/Xpid
`に格納します。

これを変更するため、`Dtlogin.pidFile` リソースを `Xconfig
` ファイルに設定できます。変更を行った場合、ログイン・サーバの起動時に指定したディレクトリが存在していなければなりません。

`Xconfig` を変更するには、`Xconfig` を `/usr/dt/config` から `/etc/dt/config` へコピーします。`/etc/dt/config/Xconfig` を変更した後で、次のように入力し、`Xconfig` をもう一度読み込むようログイン・サーバに通知します。

    /usr/dt/bin/dtconfig -reset

これは、コマンド `kill -HUP` login server process ID を発行します。

たとえば、ログイン・サーバのプロセスIDを `/var/myservers/Dtpid` に格納するには、`Xconfig` ファイルで次のように設定してください。

    Dtlogin.pidFile: /var/myservers/Dtpid

ログイン・サーバを再起動すると、ログイン・サーバはプロセスIDを `/var/myservers/Dtpid
` に格納します。`/var/myservers` ディレクトリは、ログイン・サーバの起動時に存在しなければなりません。

### ローカル・ディスプレイでのログイン画面の表示

起動時、ログイン・サーバは `Xservers
` ファイルを検索して、Ｘサーバを起動する必要があるかどうか、ログイン画面をローカル・ディスプレイまたはネットワーク・ディスプレイに表示するかどうかとその方法を決定します。

`Xservers` を変更するには、`Xservers` を `/usr/dt/config` から `/etc/dt/config` へコピーします。`/etc/dt/config`/`Xservers` を変更した後で、次のように入力し、`Xservers` をもう一度読み込むようログイン・サーバに通知します。

    /usr/dt/bin/dtconfig -reset

これは、コマンド `kill -HUP` login server process ID を発行します。

`
Xservers` 行の書式は以下のとおりです。

    display_name display_class display_type X_server_command

次に説明を示します。

display_name | Ｘサーバに接続するときに使用する接続名（以下の例では :0）をログイン・サーバに通知します。* (アスタリスク) の値は host name:0 に展開されます。指定した番号は、X_server_command 接続番号で指定した番号と一致しなければなりません。
display_class | このディスプレイに固有のリソース（以下の例では `Local`）を識別します。
display_type | ディスプレイがローカル・ディスプレイとネットワーク・ディスプレイのどちらであるかと、ログイン画面の [コマンド行ログイン] オプションを管理する方法（以下の例では `local@console`）を、ログイン・サーバに通知します。
X_server_command | Ｘサーバの起動にログイン・サーバが使用するコマンド行、接続番号、他のオプション（以下の例では `/usr/bin/X11/X :0`）を識別します。指定した接続番号は display_name で指定した番号と一致しなければなりません。

デフォルトの `Xservers` 行は、次のようになります。

    :0 Local local@console /usr/bin/X11/X :0

### ローカル・ディスプレイなしでのログイン・サーバの実行

ログイン・サーバ・システムに
ビットマップ・ディスプレイがない場合は、`#` (ポンド記号) を使用してローカル・ディスプレイ の `Xservers`
を注釈行にすることにより、ローカル・ディスプレイなしで
ログイン・サーバを実行してください。以下に例を示します。

    # :0 Local local@console /usr/bin/X11/X :0

ログイン・サーバは、起動されるとバックグラウンドで実行され、ネットワーク・ディスプレイからの要求を待ちます。

### ローカル・ディスプレイでのコマンド行ログインへのアクセス

ログイン画面で[コマンド行ログイン]
をユーザが選択すると、ログイン・サーバが一時的にＸサーバを終了させ、ビットマップ・ディスプレイ端末デバイスで実行中の、従来のコマンド行ログインにアクセスできるようになります。ユーザがログインしてからログアウトした後、または指定したタイムアウト時間が経過した後、ログイン・サーバはＸサーバを再起動します。

ネットワーク・ディスプレイでは、
[コマンド行ログイン]オプションは使用できません。

display_type は、[コマンド行ログイン]の動作を制御します。display_type の書式は次のとおりです。

- `local@`display_ terminal_device

- `
  local`

- `
  foreign`

`local`@display_terminal_device を指定すると、ログイン・サーバは、Ｘサーバおよび `/dev/`display_terminal_device が同じ物理デバイス上に存在し、コマンド行ログイン（通常は `getty`）がそのデバイスで実行されているものとみなします。ユーザが[コマンド行ログイン]を選択すると、Ｘサーバが終了し、`/dev/`display_terminal_device で実行されているコマンド行ログイン（`getty`）にアクセスできるようになります。

ディスプレイの[コマンド行ログイン]オプションを指定しないようにするには、display_terminal_device に `none` を指定します。デフォルトの display_terminal_device は `console` です。`local` を指定すると、display_terminal_device はデフォルトの `console` になります。`foreign` を指定すると、[コマンド行ログイン]オプションは使用できません。

ログイン・サーバをコマンド行から起動したときは、ローカル・ディスプレイの[コマンド行ログイン]オプションは使用できません。

### キャラクタ・ディスプレイ・コンソールの適用

ログイン・サーバ・システムに、直接接続されているキャラクタ・ディスプレイ
がコンソールとして備えられている場合、display_terminal_device に `none` を設定して、ビットマップ・ディスプレイ・ログイン画面の[コマンド行ログイン]オプションを使用できないようにすることもできます。

コマンド行ログイン（`
getty`）を、キャラクタ・ディスプレイ・コンソールおよびビットマップ・ディスプレイの両方で実行している場合、display_terminal_device をビットマップ・ディスプレイのコマンド行ログイン（`getty`）デバイスに変更することができます。

たとえば、ビットマップ・ディスプレイ・コマンド行ログイン（`getty`）がデバイス `/dev/tty01` にある場合、display_type を `local@tty01` に変更します。

### ネットワーク・ディスプレイでのログイン画面の表示

ログイン・サーバは、ネットワーク・ディスプレイからの要求でログイン画面を特定のディスプレイに表示させることができます。ネットワーク・ディスプレイは通常Ｘ端末ですが、ワークステーションの場合もあります。

ネットワーク・ディスプレイからの要求を管理するため、ログイン・サーバはＸディスプレイ・マネージャ・プロトコル (XDMCP)
1.0 をサポートします。このプロトコルは、ログイン・サーバがネットワーク・ディスプレイからの要求を受け入れたり拒否したりできるようにします。ほとんどのＸ端末に XDMCP が組み込まれています。

#### ネットワーク・ディスプレイからの XDMCP の直接要求

XDMCP 直接モード
（照会モード）を使用するようにＸ端末を構成するときは、ログイン・サーバのホスト名をＸ端末に通知します。Ｘ端末をブートすると、自動的にログイン・サーバに通信し、ログイン・サーバがＸ端末にログイン画面を表示します。XDMCP 直接モード用にＸ端末を構成する方法については、Ｘ端末のマニュアルを参照してください。

ほとんどのＸサーバは `-query` オプション
もサポートしています。このモードでは、ＸサーバはＸ端末のように動作して、ログイン・サーバ・ホストに直接通信し、Ｘサーバにログイン画面を表示するよう要求します。たとえば、Ｘサーバをワークステーション `bridget` のビットマップ・ディスプレイで起動すると、ログイン・サーバ `anita` がＸサーバにログイン画面を表示します。

    X -query anita

#### ネットワーク・ディスプレイからの XDMCP の間接要求

XDMCP 間接モードを使用するようにＸ端末を構成するときは、ログイン・サーバのホスト名をＸ端末に通知します。Ｘ端末をブートすると、ログイン・サーバに通信し、ログイン・サーバが、ネットワークの他のログイン・サーバ・ホストのリストを選択画面で表示します。このリストからユーザはホストを選択でき、そのホストがユーザのＸ端末にログイン画面を表示します。XDMCP 間接モード用にＸ端末を構成する方法については、Ｘ端末のマニュアルを参照してください。

直接モード同様、ほとんどのＸサーバが `-indirect` オプション
をサポートしています。このオプションを指定するとＸサーバは XDMCP 間接モードでログイン・サーバと通信します。

#### 非 XDMCP ネットワーク・ディスプレイの管理

旧式のＸ端末は XDMCP をサポートしていない可能性があります。このようなＸ端末にログイン・サーバがログイン画面を表示するには、`Xservers` ファイルにＸ端末名を記入します。

#### 例

次に示す `Xservers` ファイルの行は、`ruby` および `wolfie` という２つの非 XDMCP Ｘ端末に、ログイン・サーバがログイン画面を表示します。

    ruby.blackdog.com:0 AcmeXsta foreign
    wolfie:0 PandaCo foreign

ディスプレイはネットワーク上にあるので、display_name はホスト名を名前の一部として取り込みます。display class は、特定のクラスのＸ端末に固有のリソースを指定するのに使用します（Ｘ端末のマニュアルに、Ｘ端末のディスプレイ・クラスが記載されています）。`foreign` の display_type はログイン・サーバに、ログイン・サーバ自身を起動するのではなく、既存のＸサーバに接続するよう通知します。この場合、X_server_command は指定されません。

### ログイン・サーバへのアクセスのコントロール

デフォルトでは、ログイン・サーバ・ホストにアクセスするネットワークのホストはすべて、ログイン画面を表示するよう要求できます。`Xaccess` ファイル
を変更すると、ログイン・サーバへのアクセスを制御できます。

`Xaccess` を変更するには、`Xaccess` を `/usr/dt/config` から `/etc/dt/config` へコピーします。`/etc/dt/config/Xaccess` を変更したら、次のように入力して `Xaccess` をもう一度読み込むようログイン・サーバに通知します。

    /usr/dt/bin/dtconfig -reset

これは、コマンド `kill -HUP` login server process ID を発行します。

#### XDMCP 直接モード

ホストが
XDMCP 直接モードによってログイン・サーバに接続しようとすると、ホスト名が
`Xaccess` エントリと比較されて、ホストがログイン・サーバにアクセスできるかどうか決定されます。`Xaccess` の各エントリは、ワイルドカード `*` (アスタリスク) および `?` (疑問符) を含むホスト名です。`*` (アスタリスク) は０以上の文字に、`?` (疑問符) は任意の１文字に一致します。`!` (感嘆符) がエントリの前に付くとアクセスできず、これがなければアクセスできます。

たとえば、`Xaccess` に次の３つのエントリが含まれているとします。

    amazon.waterloo.com

    *.dept5.waterloo.com

    !*

最初のエントリはホスト `amazon.waterloo.com` から、２番目のエントリはフルドメイン名が `dept5.waterloo.com` で終わっている任意のホストからログイン・サーバがアクセスできるようにし、最後のエントリはいずれのホストからもアクセスできないようにします。

#### XDMCP 間接モード

ホストが XDMCP 間接モードによってログイン・サーバに接続しようとすると、ホスト名が `Xaccess` エントリと比較されて、ホストがログイン・サーバにアクセスできるかどうかが決定されます。`Xaccess` の各エントリは XDMCP 直接モードと同様で、ワイルドカードを含んでいますが、各エントリに `CHOOSER` 文字列がマークされていることころが異なります。例を次に示します。

    amazon.waterloo.com  CHOOSER BROADCAST

    *.dept5.waterloo.com CHOOSER BROADCAST

    !* CHOOSER BROADCAST

最初のエントリはホスト `amazon.waterloo.com` から、２番目のエントリはフルドメイン名が `dept5.waterloo.com` で終わっている任意のホストからログイン・サーバがアクセスできるようにし、最後のエントリはいずれのホストからもアクセスできないようにします。

`CHOOSER`
の後は次のいずれかが続きます。

- `
  BROADCAST`

- list of host names

`BROADCAST` は、ログイン・サーバにログイン・サーバ・サブネットワークへ同報通信させて、使用可能なログイン・サーバ・ホストのリストを生成します。ホスト名のリストは、使用可能なログイン・ホストのリストとしてそのリストを使用するように、ログイン・サーバに通知します。例を次に示します。

    amazon.waterloo.com  CHOOSER shoal.waterloo.com alum.waterloo.com

    *.dept5.waterloo.com CHOOSER BROADCAST

    !* CHOOSER BROADCAST

`amazon.waterloo.com` が XDMCP 間接モードによって接続する場合、`shoal` および `alum` を含むリストが表示されます。`alice.dept5.waterloo.com` を接続する場合は、ログイン・サーバ・サブネットワークで使用可能な全ログイン・サーバ・ホストのリストが表示されます。他の XDMCP 間接モードは拒否されます。

ホスト名のリストを指定するもうひとつの方法は、ホスト名のリストを含む１つ以上のマクロを定義することです。例を次に示します。

    %list1  shoal.waterloo.com alum.waterloo.com
    amazon.waterloo.com CHOOSER %list1

## エラー検査

デフォルトでは、ログイン・サーバは
`/var/dt/Xerrors` ファイルにエラーを記録します。これを変更するため、`Dtlogin.errorLogFile` リソースを `Xconfig` ファイルに設定できます。指定したディレクトリは、ログイン・サーバの起動時に必ず存在しなければなりません。

たとえば、ログイン・サーバが `/var/mylogs/Dterrors` ファイルにエラーを記録するようにするには、`Xconfig` ファイルで次のように設定してください。

    Dtlogin.errorLogFile: /var/mylogs/Dterrors

ログイン・サーバが再起動すると、ログイン・サーバは `/var/mylogs/
Dterrors` ファイルにエラーを記録します。`/var/mylogs` ディレクトリは、ログイン・サーバの起動時に必ず存在しなければなりません。

## ログイン・サーバの停止

- システムのブート時に
  ログイン・サーバを起動しないようにするには、次のように入力します。

      /usr/dt/bin/dtconfig -d

  この設定により、次回のリブート時にシステムはログイン・サーバを起動しません。

- プロセスIDを Kill してログイン・サーバを停止するには、次のように入力します。

      /usr/dt/bin/dtconfig -kill

  これは、コマンド `kill` login server process ID を発行します。

ログイン・サーバのプロセスを終了すると、
ログイン・サーバが管理するユーザ・セッションはすべて終了します。

プロセスIDを kill してログイン・サーバを停止することもできます。ログイン・サーバのプロセスIDは `/var/dt/Xpid` か、`Dtlogin.pidFile` リソースによって `Xconfig` に指定したファイルに格納されます。

ログイン・サーバを強制終了したときにデスクトップにログインすると、デスクトップ・セッションはすぐに終了します。

## ログイン画面

ログイン・サーバが表示するログイン画面は、従来のキャラクタ・モードでのログイン画面に代わるもので、キャラクタ・モードでのログインを超える能力を備えています。

### デスクトップ・ログイン画面

キャラクタ・モードでのログイン同様、ユーザ名の後にパスワードを入力します。認証されれば、ログイン・サーバはデスクトップ・セッションを起動します。デスクトップ・セッションを終了すると、ログイン・サーバは新しいログイン画面を表示し、処理が再開されます。

次のようなログイン画面のカスタマイズができます。

- ログイン画面表示の変更

- Ｘサーバ権限の設定

- デフォルト言語の変更

- ログイン画面を表示する前にコマンドを発行する

- ログイン画面の[言語]メニューの内容変更

- ユーザのセッションを起動するコマンドの指定

- ユーザのデスクトップ・セッションを起動する前にコマンドを発行する

- ユーザのセッションが終了した後にコマンドを発行する

上記はいずれも、ディスプレイの全部、あるいはディスプレイごとに行うことができます。

## ログイン画面表示の変更

ログイン画面表示をカスタマイズするため、ロゴまたはグラフィック、ウェルカム・メッセージ、フォントを変更できます。

`Xresources` を変更するには、`Xresources` を `/usr/dt/config/`language から `/etc/dt/config/`language にコピーします。次回からは、すべての変更を反映したログイン画面が表示されます。ログイン画面を強制的に再表示させるには、ログイン画面の[オプション]メニューから[ログイン画面のリセット]を選択します。

`Xresources
` ファイルのリソース指定によって決定されるログイン画面の属性は次のとおりです。

`Dtlogin*logo*bitmapFile` | ロゴ・イメージとして表示するビットマップ・ファイルまたはピックスマップ・ファイル
`Dtlogin*greeting*labelString` | ウェルカム・メッセージ
`Dtlogin*greeting*persLabelString` | 個人用ウェルカム・メッセージ
`Dtlogin*greeting*fontList` | ウェルカム・メッセージ用フォント
`Dtlogin*labelFont` | プッシュ・ボタンおよびラベル用フォント
`Dtlogin*textFont` | ヘルプ・メッセージおよびエラー・メッセージ用フォント
`Dtlogin*`language`*languageName` | ロケール名 language 用の選択テキスト

### ロゴを変更するには

1. `Dtlogin*logo*bitmapFile` リソースを `Xresources` に設定します。

   ロゴはカラー・ピックスマップ・ファイルまたはビットマップ・ファイルです。

次の例は、ロゴに `Mylogo` ビットマップを使用します。

    Dtlogin*logo*bitmapFile: /usr/local/lib/X11/dt/bitmaps/Mylogo.bm

### ウェルカム・メッセージを変更するには

デフォルトでは、ログイン・サーバはログイン画面にメッセージ `Welcome` `to` host name を表示します。このメッセージは次の方法で変更できます。

1. `Dtlogin*greeting*labelString` リソースを `Xresources` に設定します。

   `labelString` リソースの値には、ログイン・サーバ・ホスト名に置き換える%LocalHost% と、Ｘサーバ・ディスプレイ名に置き換える %DisplayName% を指定できます。

次の例は、ウェルカム・メッセージを `Here's` host name`!` に変更します。

    Dtlogin*greeting*labelString: Here's %LocalHost%!

ユーザ名を一度入力すると、ログイン・サーバはデフォルトで `Welcome` username というメッセージを表示します。このメッセージは `Dtlogin*greeting*persLabelString` リソースを `Xresources` に設定すると変更できます。`persLabelString` の値には、username に置き換える percnt;`s` を指定できます。

次の例は個人用ウェルカム・メッセージを `Hello` username に変更します。

    Dtlogin*greeting*persLabelString: Hello %s

### フォントを変更するには

ログイン画面で使用するフォントを、次のフォント・リソースのいずれかを `Xresources
` に設定することにより変更できます。

使用可能なフォントの一覧を表示するには、次のように入力します。

    xlsfonts [-options] [-fn pattern]

`Dtlogin*greeting*fontList` | ウェルカム・メッセージ用フォント
`Dtlogin*labelFont` | プッシュ・ボタンおよびラベル用フォント
`Dtlogin*textFont` | ヘルプ・メッセージおよびエラー・メッセージ用フォント

次の例は、ウェルカム・メッセージを大きいフォントで表示します（指定する値は必ず１行に入れてください）。

    Dtlogin*greeting*fontList: -dt-interface system-medium-r-normal-xxl*-*-*-*-*-*-*-*-*:

#### 各言語を表示するためのテキストを提供するには

ログイン画面の[言語]メニューに、ロケール名のデフォルト・ディスプレイではなく、ロケールごとのテキストを表示するには、`Dtlogin*`language`*languageName` リソースを `Xresources` に設定します。

    Dtlogin*En_US*languageName: American

ロケール名 `En_US` ではなく、テキスト `American` が表示されます。

#### ログイン画面動作の変更

ログイン画面の動作をカスタマイズするには、`Xconfig` ファイルに指定したリソースを変更します。

`Xconfig` を変更するには、`Xconfig` を `/usr/dt/config` から `/etc/dt/config` にコピーします。`/etc/dt/config/Xconfig` を変更したら、次のように入力して `Xconfig` をもう一度読み込むようログイン・サーバに通知します。

    /usr/dt/bin/dtconfig -reset

これは、コマンド `kill` `-HUP` login server process ID を発行します。

`Xconfig` ファイル
に指定するリソース
は次のとおりです。

`Dtlogin*authorize` | Xaccess ファイル仕様
`Dtlogin*environment` | Ｘサーバ環境
`Dtlogin*language` | デフォルト言語
`Dtlogin*languageList` | ログイン画面の[言語]メニューの言語リスト
`Dtlogin*resources` | `Xresources` 仕様
`Dtlogin*setup` | `Xsetup` ファイル仕様
`Dtlogin*`startup | `Xstartup` ファイル仕様
Dtlogin*session | `Xsession` ファイル仕様
Dtlogin*failsafeClient | `Xfailsafe` スクリプト仕様
Dtlogin*reset | `Xreset` スクリプト仕様
Dtlogin*userPath | `Xsession` および `Xfailsafe` 用 PATH 環境変数
Dtlogin*systemPath | `Xsetup`、`Xstartup` および `Xfailsafe` 用 PATH 環境変数
Dtlogin*systemShell | `Xsetup`、`Xstartup` および `Xfailsafe` 用 SHELL 環境変数
Dtlogin.timeZone | 全スクリプト用タイムゾーン

### ディスプレイごとのログイン画面動作の変更

以下の例では、`Xconfig` リソースを変更して、全ディスプレイのログイン画面動作を変更します。リストで * (アスタリスク) の付いたリソースは、ディスプレイごとに指定できます。これにより、あるディスプレイのログイン画面動作のカスタマイズを指定できます。特定のディスプレイのリソースを指定するには、リソースを `Dtlogin*`displayName`*`resource と指定します。たとえば、ディスプレイ `expo:0` のユーザによるアクセス・コントロールをオフにして、他のディスプレイはそのままオンにする場合は、次のように指定します。

    Dtlogin*expo_0*authorize: False

ディスプレイ名の : (コロン) や . (ピリオド) などの特殊文字は、_ (下線) に置き換えられます。

### Ｘサーバ・アクセスの変更

デフォルトでは、ログイン・サーバが、ユーザごとにＸサーバのアクセスを制御できるようにします。ログイン・サーバは HomeDirectory`/.Xauthority` ファイルに格納され保護されている権限データに基づきます。このファイルを読み込めるユーザだけがＸサーバに接続できます。一般に、これが望ましいＸサーバ・アクセス・コントロールの方法です。

ユーザベースのアクセス・コントロールの代わりに、ホストベースのアクセス・コントロールも可能です。この方法を使用すると、ホストがＸサーバへのアクセスを与えられている場合、そのホストのすべてのユーザがＸサーバに接続できます。ホストベースのコントロールを使用するのは、次のような理由からです。

- 古い R2 および R3 のＸのクライアントは、ユーザベースのアクセス・コントロールではＸサーバに接続できません。

- 安全性が確立されていないネットワークでは、ネットワークのＸクライアントとＸサーバとの間で渡される認証データを盗まれる可能性があります。

`Xconfig Dtlogin*
authorize` リソースは、ユーザベースのＸサーバ・アクセス・コントロールを使用することをログイン・サーバに通知します。ホストベースのアクセス・コントロールを使用するときは、次のように authorize リソース値を `False` に変更します。

    Dtlogin*authorize: False

#### Ｘサーバ環境を変更するには

ログイン・サーバによって起動されたときにひとつ以上の環境変数と値をＸサーバに指定する場合は、`Xconfig` の `Dtlogin*environment` リソースを使用して指定できます。次に例を示します。

    Dtlogin*environment: VAR1=foo VAR2=bar

この例は、ローカルなＸサーバ・プロセスで変数 `VAR1` および `VAR2` を使用できるようにします。これらの変数も、`Xsession` および `Xfailsafe` スクリプトへエクスポートされます。

#### デフォルト言語を変更するには

ログイン画面からデスクトップにログインするとき、ユーザ・セッションは、[オプション]メニューの[言語]サブメニューから選択されたロケールで実行されます。言語を選択しない場合、ログイン・サーバはデフォルト言語を使用します。`Xconfig` の `Dtlogin*language
` リソースを次のように設定することにより、デフォルト言語の値をコントロールできます。

    Dtlogin*language: Ja_JP

システムのマニュアルを調べて、システムにインストールされている言語を判定してください。

#### ログイン画面の[言語]メニューの内容を変更するには

デフォルトでは、ログイン・サーバは、システムにインストールされたすべてのロケールのリストが入っているログイン画面の[言語]メニューを作成します。そのリストからロケールを選択すると、ログイン・サーバは選択されたロケールでログイン画面を再表示します。その後ログインすると、ログイン・サーバはそのロケールでデスクトップ・セッションを起動します。

`Xconfig` の `Dtlogin*languageList` リソースを変更することにより、独自の言語のリストを指定できます。

    Dtlogin*languageList: En_US De_DE

このように指定すると、ログイン・サーバは `En_US` および `De_DE` だけをログイン画面の[言語]メニューに表示します。

### ログイン画面が表示される前にコマンドを発行する

Ｘサーバの起動後でログイン画面が表示される前に、ログイン・サーバは `Xsetup` スクリプトを実行します。`Xsetup
` は root の権限に合わせて実行され、ログイン画面を表示する前に実行する必要のあるコマンドを発行します。

`Xsetup` を変更するには、`Xsetup` を `/usr/dt/config` から `/etc/dt/config` へコピーします。次にログイン画面が表示されるときは、変更された `Xsetup` が実行されます。

#### ユーザ・セッション起動前のコマンドの発行

ユーザ名とパスワードを入力し、それが認証された後で、ユーザ・セッションが起動される前に、ログイン・サーバは `Xstartup` スクリプトを実行します。`Xstartup
` は root の権限に合わせて実行され、ユーザ・セッションを起動する前に root として実行する必要のあるコマンドを発行します。

`Xstartup` を変更するには、`Xstartup` を `/usr/dt/config` から `/etc/dt/config` へコピーします。次にログイン画面が表示されるときは、変更された `Xstartup` が実行されます。 .

#### デスクトップ・セッションの実行

デフォルトでは、ログイン・サーバは `Xsession` スクリプトを実行することによりユーザ・セッションを起動します。`Xsession
` はユーザの権限に合わせて実行され、デスクトップの起動に必要なコマンドを発行します。

`Xsession` スクリプトは直接変更しないでください。

ユーザのデスクトップ・セッション起動のカスタマイズ方法については、 SAG.SesMg.div.1 を参照してください。

### 復旧セッションの起動

ログイン画面の[オプション]メニューの[セッション]サブメニューから[復旧セッション]
を選択する場合、ログイン・サーバは `Xfailsafe` スクリプトを実行します。`Xfailsafe` はユーザの権限に合わせて実行され、アイコン化されたウィンドウ（通常は[端末]ウィンドウおよびオプションのウィンドウ・マネージャ）環境の起動に必要なコマンドを発行します。

`Xfailsafe` を変更するには、`Xfailsafe` を `/usr/dt/config` から `/etc/dt/config` へコピーします。次にログイン画面が表示されるときは、変更された `Xfailsafe` が実行されます。

### ユーザのセッションが終了した後で

ユーザがデスクトップまたは復旧セッションを終了した後、ログイン・サーバは `Xreset` スクリプトを実行します。`Xreset`
は root の権限に合わせて実行され、ユーザのセッションを終了した後で root として実行する必要のあるコマンドを発行します。

`Xreset` を変更するには、`Xreset` を `/usr/dt/config` から `/etc/dt/config` へコピーします。次にログイン画面が表示されるときは、変更された `Xreset` が実行されます。

### ログイン・サーバ環境

ログイン・サーバは、`Xsetup`、`Xstartup`、`Xsession`、`Xfailsafe` および `Xreset` スクリプトへエクスポートする環境を提供します。この環境は SAG.LogMg.tbl.1 で説明します。これら以外の変数もログイン・サーバによってエクスポートされることがあります。

### ログイン・サーバ環境

`環境``変数` | ``Xsetup`` | ``Xstartup`` | `Xsession` | ``Xreset`` | `説明`
`LANG` | × | × | × | × | デフォルト言語または選択された言語
`XAUTHORITY` | × | × | × | × | 代替Ｘ許可ファイル（オプション）
`PATH` | × | × | × | × | `Dtlogin*userPath` リソース (`Xsession`, `Xfailsafe`) または `Dtlogin*systemPath` リソース (`Xsetup`, `Xstartup`, `Xreset`) の値
`DISPLAY` | × | × | × | × | Ｘサーバ接続番号
`SHELL` | × | × | × | × | `/etc/passwd` に指定されたシェル (`Xsession`、`Xfailsafe`) または `Dtlogin*systemShell` リソース (`Xsetup`、`Xstartup`、`Xreset`)
`TZ` | × | × | × | × | `Dtlogin.timeZone` リソースまたはシステムで決められたタイムゾーンの値
`USER` |  | × | × | × | ユーザ名
`HOME` |  | × | × | × | `/etc/passwd` に指定したホーム・ディレクトリ
`LOGNAME` |  | × | × | × | ユーザ名

### ユーザ・パスまたはシステム・パスの変更

ログイン・サーバは、`
Xsession` スクリプトおよび `
Xfailsafe` スクリプトを実行するときに PATH
環境変数を設定します。これらのスクリプトの代替パスを指定できます。

#### ユーザ・パスを変更するには

1. `Xconfig` に `Dtlogin*userPath`
   リソースを設定します。次に例を示します。

    Dtlogin*userPath:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11

#### システム・パスを変更するには

1. `Xconfig` に `Dtlogin*
   systemPath` リソースを設定します。次に例を示します。

    Dtlogin*systemPath: /usr/bin/X11:/etc:/bin:/usr/bin:/usr/ucb

### システム・シェルを変更するには

ログイン・サーバは、`Xsetup`、`Xstartup` および `
Xfailsafe` スクリプトを実行するときに SHELL 環境変数を設定します。デフォルトは `/bin/sh` です。これらのスクリプトに別のシェルを指定したい場合は、次のように `Xconfig` に `Dtlogin*systemShell` リソースを設定します。

    Dtlogin*systemShell: /bin/ksh

### タイムゾーンを変更するには

ログイン・サーバは、`Xsetup`、`Xstartup`、`Xsession`、`Xfailsafe`、および `Xreset` スクリプトを実行するときに TZ
環境変数を設定します。デフォルト値はシステムから派生するので、通常はこの動作を
変更する必要はありません。これらのスクリプトに別のタイムゾーンを指定したい場合は、次のように `Xconfig` に `Dtlogin.
timeZone` リソースを指定します。次に例を示します。

    Dtlogin.timeZone: CST6CDT

## ログイン・マネージャの管理

ログイン・サーバが起動すると、ひとつの `dtlogin` プロセスが起動します。`dtlogin` プロセスは、`Xconfig` ファイルを読み込んで、最初のログイン・サーバ構成を判定し、他のログイン・サーバ構成ファイルを配置します。それから `Xservers` ファイルを読み込んで、明示的に管理するディスプレイがあるかどうかを調べ、`Xaccess` ファイルを読み込んでログイン・サーバへのアクセスをコントロールします。

ログイン・サーバが、ローカル・ディスプレイを管理する必要があることを `Xservers
` ファイルで知ると、`Xservers` ファイルで指定したようにＸサーバを起動し、そのディスプレイにログイン画面を表示します。

ログイン・サーバが、ネットワーク・ディスプレイを管理する必要があることを `Xservers` ファイルで知ると、Ｘサーバがすでに指定したディスプレイ名で実行されているものと見なし、そのディスプレイにログイン画面を表示します。

その後、ログイン・サーバはネットワークからの XDMCP 要求を待ちます。

管理されている各ディスプレイに対して、ログイン・サーバはそのディスプレイ用の新しい `dtlogin` プロセスを最初に作成します。つまり、ログイン・サーバが n 個のディスプレイを管理している場合、n+1 個の `dtlogin` プロセスが存在します。ログイン・サーバは `Xsetup` スクリプトを実行し、`Xresources` ファイルを読み込んでから、`dtgreet` を実行してログイン画面を表示します。ユーザ名とパスワードを入力して認証されると、ログイン・サーバは `Xstartup` スクリプトを実行してから `Xsession` または `Xfailsafe
` スクリプトを実行します。セッションを終了すると、ログイン・サーバは `Xreset` スクリプトを実行します。

ログイン・サーバが
XDMCP 間接モード要求を獲得すると、`dtchooser` を実行してディスプレイのログイン・サーバ・ホストのリストを表示します。リストからホストを選択すると、そのホスト名のログイン・サーバがディスプレイを管理します。

`Xaccess`、`Xconfig`、`Xfailsafe`、`Xreset`、language`/Xresources`、`Xservers`、`Xsetup`w、および `Xstartup` 構成ファイルについては、デフォルトではログイン・サーバが最初に `/etc/dt/config` を調べ、次に `/usr/dt/config` を調べて最初に見つけたファイルを使用します。

## ログイン・マネージャ・ファイル

ログイン・マネージャ・ファイルのデフォルト位置は次のとおりです。

`/usr/dt/bin/dtlogin` | ログイン・サーバおよびディスプレイ・マネージャ
`/usr/dt/bin/dtgreet` | ディスプレイ用ログイン画面の表示
`/usr/dt/bin/dtchooser` | ディスプレイ用選択画面の表示
`/usr/dt/bin/Xsession` | デスクトップ・セッションの起動
`/usr/dt/config/Xfailsafe` | 復旧セッションの起動
`/usr/dt/config/Xconfig` | ログイン・サーバ構成ファイル
`/usr/dt/config/Xservers` | ログイン・サーバ・ディスプレイ記述ファイル
`/usr/dt/config/Xaccess` | ログイン・サーバ・アクセス記述ファイル
`/usr/dt/config/`language`/Xresources` | レイアウト・リソースの表示
`/usr/dt/config/Xsetup` | セットアップ・ファイルの表示
`/usr/dt/config/Xstartup` | セッション起動ファイル
`/usr/dt/config/Xreset` | セッション開始後のリセット・ファイル
`/var/dt/Xpid` | ログイン・サーバのプロセスID
`/var/dt/Xerrors` | ログイン・サーバのエラー記録ファイル