dtlogin コマンド

目的

CDE ログイン・サービスを実行します。

構文

dtlogin [ -config configuration_file ] [ -daemon ] [ -debug debug_level ] [ -error error_log_file ] [ -nodaemon ] [ -resources resource_file ] [ -server server_entry ] [ -session session_program ] [ -udpPort port_number ]

説明

dtlogin コマンドがサポートする主要なタスクは次のとおりです。
  • 明示的管理対象のローカルおよびリモート・ディスプレイ、および XDMCP 管理対象のリモート・ディスプレイの dtgreet ログイン画面を起動する。
  • GUI ログイン画面から従来型端末 (キャラクター) ログインにアクセスする。
  • システム依存ユーザーの認証およびログインを行う。
  • 選択されたセッションを起動する。

dtlogin コマンドは、キャラクター端末で initgetty、および login が提供するサービスと同様のサービスを提供します。これらのサービスには、ログインおよびパスワードのプロンプト、ユーザーの認証、セッションの実行が含まれます。 セッション は、特定プロセスのライフタイムによって定義されます。 従来のキャラクター・ベースの端末の世界では、セッションはユーザーのログイン・シェル・プロセスです。DT のコンテキストでは、セッションは DT セッション・マネージャーです。 DT セッション・マネージャーを使用しない場合、終了オプションのあるウィンドウ・マネージャーまたはシェルを実行する端末エミュレーターのいずれかが、代表的な代替プログラムとなります。端末エミュレーターのライフタイムは実行されるシェル・プロセスのライフタイムです。 この場合、X セッションはキャラクター・ベース端末セッションのエミュレーションに縮小されます。 セッションが終了すると、dtlogin は X サーバーをリセットし、(オプションで) プロセス全体を再始動します。

dtlogin コマンドは、X Display Manager Control Protocol Version 1.0 (XDMCP) を使用してリモート・ディスプレイの管理をサポートします。 dtlogin は、XDMCP から間接照会を受け取ると、チューザー・プロセスを実行して、ディスプレイに代わって XDMCP BroadcastQuery (または指定されたホストへの XDMCP Query) を実行することができ、XDMCP ディスプレイ管理を提供する可能なホストのメニューを提供することができます。 この機能は、ホスト・メニューを提供しない X 端末で役に立ちます。

dtlogin はユーザーに表示される最初のインターフェースを提供するものであるため、簡単に使用でき、特定のサイトのニーズに従って容易にカスタマイズできるように設計されています。

ログイン・ウィンドウ

ログイン・ウィンドウを使用すると、ユーザーは、ユーザー ID とパスワードを入力し、起動セッションを選択し、起動ロケールを選択することができます。 また、ユーザーは、X サーバーをリセットしたり、X サーバーを一時的に中断してキャラクター・ログイン・プロンプトにアクセスしたりすることができます。

ログイン・ウィンドウの内容は次のとおりです。
ログイン・フィールド
ユーザーが ID を入力できる入力フィールドを提供します。
パスワード・フィールド
ユーザーがパスワードを入力できる入力フィールドを提供します (エコーなし)。
「OK (了解)」ボタン
ユーザーを認証し、セッションを起動します。
「Clear (消去)」ボタン
ログイン・フィールドおよびパスワード・フィールドを消去します。
オプション
ユーザーはロケール名とログイン・セッション・タイプを選択できます。 また、ユーザーは、X サーバーを再始動したり、キャラクター・ログイン・プロンプト (ローカル・ディスプレイ用) に切り替えたりすることができます。 「Options (オプション)」メニューの内容は次のとおりです。
「Languages (言語)」
「Languages (言語)」メニューを表示します。 ログイン画面の「Options (オプション)」メニューから言語を選択すると、ログイン画面が即時にローカライズされ、次のセッションのために LANG 変数が設定されます。 ログイン画面のローカリゼーションと LANG の設定は、セッションが終了するとデフォルト値に戻ります。 このメニューの内容は、システムにインストールされたロケールによって異なる場合があります。 ロケールは languageList リソースを使用して指定変更することができます。 C のデフォルト・ロケールは、language リソースを使用して指定変更できます。 指定されたシステム・ロケールまたは languageList ロケールは、「Languages (言語)」メニューのメニュー項目として表示されます。 languageName リソースを使用すると、特定のロケール名について、表示される代替テキストを指定できます。
「No-windows (ウィンドウなし)」
キャラクター・ログイン・プロンプトを表示します (ローカル・ディスプレイのみ)。
「Reload Login (再ロード・ログイン)」
X サーバーを再始動し、ログイン画面に戻ります。
「Resources (リソース)」
使用されるリソースをリストします。
「Sessions (セッション)」
「Sessions (セッション)」メニューを表示します。 ユーザーは、ログインしたときに開始するセッション・タイプを選択できます。 以下のメニュー項目があります。
「DT Session (DT セッション)」
通常のデスクトップ・セッション (Xsession) を開始します。
「Fail-safe Session (復旧セッション)」
復旧セッション (Xfailsafe) を開始します。
「Help (ヘルプ)」
ヘルプ・メッセージを表示します。

サーバーの制御

dtlogin コマンドは、POSIX シグナルを使用してローカル・サーバーを制御します。 SIGHUP シグナルにより、サーバーがリセットされ、すべてのクライアント接続がクローズされ、その他のクリーンアップ処理が実行されると予想されます。 また、SIGTERM シグナルにより、サーバーが終了すると予想されます。 しかし、これらのシグナルが予想通りのアクションを実行しない場合は、resetSignal および termSignal リソースで代替シグナルを指定することができます。

XDMCP を使用しないリモート・サーバーを制御するためには、dtlogin はディスプレイ上のウィンドウ階層を検索し、KillClient X プロトコル要求を使用して、次のセッション用に端末のクリーンアップを試みます。 しかし、ウィンドウが作成されたクライアントのみが検出されるため、すべてのクライアントが実際に kill されるとは限りません。 XDMCP は、より確実なメカニズムを提供します。dtlogin が初期接続をクローズすると、セッションが終了し、端末は他のすべての接続のクローズが必要になります。

dtlogin の制御

dtlogin コマンドは、SIGHUP と SIGTERM の 2 つのシグナルに応答します。 dtlogin は、SIGHUP に送信されると、構成ファイルおよび servers リソースによって指定されたファイルを再読み取りして、追加または除去されたエントリーがあるかどうか判別します。新しいエントリーが追加された場合、dtlogin は関連したディスプレイ上でセッションを開始します。 除去されたエントリーは即時に使用不可にされます。つまり、進行中のセッションは通知なしに終了し、新しいセッションは開始されません。 SIGTERM に送信された場合は、dtlogin は進行中のすべてのセッションを終了し、コマンドも終了します。 これはシステムのシャットダウンに使用できます。

国際化対応

すべてのラベルおよびメッセージはローカライズ可能です。 dtlogin.cat メッセージ・カタログには、デフォルト・ラベルおよびデフォルト・メッセージのローカライズされた表記が含まれています。 dtlogin コマンドは、LANG 環境変数で指示された適切なメッセージ・カタログを読み取って、ローカライズされた文字列を表示します。 認証画面のオプションの 1 つを使用すると、ユーザーはデフォルトの言語を後続セッション用に指定変更することができます。 認証画面が選択された言語用にローカライズされている場合、画面はその言語で再表示されます。画面がローカライズされていない場合は、デフォルトの言語で表示されます。 いずれの場合も、LANG 環境変数は結果のセッション用に適切に設定されます。

ディスプレイのデフォルトの言語を変更するには、dtlogin 構成ファイル内でリソース言語が使用可能です。 認証画面に表示されるデフォルトの言語セットを指定変更するには、dtlogin 構成ファイル内で languageList リソースが使用可能です。 ロケール名から「Language (言語)」メニューで表示されるテキストへのマッピングを提供するために、languageName リソースが使用可能です。

認証と監査

dtlogin コマンドは、PAM によって使用可能にされるサービス名 dtlogin のログイン・サービスです。 dtlogin クライアントは、従来のローカル UNIX ログインおよび監査のほかに、PAM 認証をサポートします。 Kerberos や B1 などの追加の認証または監査機能が、個別ベンダーによって追加されることがあります。

システム全体の認証に PAM を使用するには、root ユーザー・アクセス権を確立し、 /etc/security/login.cfg ファイルの usw スタンザの auth_type 属性の値を PAM_AUTH に変更します。

PAM が使用可能であるときに使用される認証メカニズムは、/etc/pam.conf 内のログイン・サービスの構成によって異なります。 dtlogin コマンドは、authaccountpassword、および session モジュール・タイプに関する /etc/pam.conf エントリーを必要とします。 dtlogin サービス用の /etc/pam.conf では、次の構成が推奨されます。
  dtlogin        auth               required       /usr/lib/security/pam_aix
  dtlogin        account            required       /usr/lib/security/pam_aix
  dtlogin        password           required       /usr/lib/security/pam_aix
  dtlogin        session            required       /usr/lib/security/pam_aix

X サーバーのセキュリティー

X サーバーでは、ユーザー・ベースのアクセス制御とホスト・ベースのアクセス制御の両方が提供されます。 デフォルトでは、dtlogin は X サーバーに対してユーザー・ベースのアクセス制御 (MIT-MAGIC-COOKIE-1) を使用します。 このレベルのセキュリティーでは、ユーザー単位でのアクセス制御が可能です。 このアクセス制御方式では、クライアントが渡した許可データがサーバー上の許可データに一致した場合に、クライアントはアクセスを許可されます。 ユーザーがログインすると、この許可データはデフォルトで $HOME/.Xauthority ファイルに保管されて、保護されます。

しかし、非セキュア・ネットワークのある環境では、ホスト・ベースのアクセス制御メカニズムの使用が望ましい場合があります。ユーザー・ベースのアクセス制御の場合、どのようなホストでも秘密鍵を発見しさえすれば接続が可能になるという弱点があります。 また、ユーザー・ベースのアクセス制御には、R2 または R3 クライアントがサーバーに接続できないという欠点もあります。

authorize リソースは、dtlogin でユーザー・ベースのアクセス制御とホスト・ベースのアクセス制御のいずれを使用するかを制御します。 詳しくは、xhost コマンドおよび xauth コマンドを参照してください。

「Resources (リソース)」

dtlogin コマンドは dtlogin 構成ファイルの内容によって制御されます。このファイルのデフォルトは /usr/dt/config/Xconfig です。 リソースの一部は dtlogin の一般的な動作を制御します。その他のリソースは特定のディスプレイ用として指定できます。

一般リソース

以下の dtlogin 一般リソースは、ディスプレイ固有ではなく、該当する場合はすべてのディスプレイに適用されます。
項目 説明
accessFile
クラス:
AccessFile
クラス型:
string
デフォルト:
Null
説明:
無許可 XDMCP サービスを防止し、XDMCP IndirectQuery 要求の転送を可能にするために、このファイルには、このマシンへの直接アクセスを許可されているホスト名のデータベース、または照会の転送先のホストのリストを持っているホスト名のデータベースが入っています。フォーマットの記述については、Xaccess ファイルのセクションを参照してください。このリソースを設定しない場合、すべてのホストが XDMCP サービスを許可されます。
authDir
クラス:
AuthDir
クラス型:
string
デフォルト:
/var/dt
説明:
XDMCP を使用するディスプレイ用の許可ファイルを一時的に保管するために dtlogin が使用するディレクトリー名。
autoRescan
クラス:
AutoRescan
クラス型:
boolean
デフォルト:
true
説明:
セッションが終了してファイルが変更された後、dtlogin が構成ファイルおよびサーバー・ファイルを再スキャンするかどうかを制御します。 メイン・プロセスに SIGHUP シグナルを送信して、これらのファイルの再読み取りを dtlogin に強制することができます。
daemonMode
クラス:
DaemonMode
クラス型:
boolean
デフォルト:
false
説明:
dtlogin コマンドは関連付けられていないデーモン・プロセスにそれ自身をメークすることができます。 これは、親プロセスを fork して終了してから、ファイル・ディスクリプターをクローズし、制御端末を解放するという手順で行われます。 これは dtlogin をデバッグしようとする場合に不便です。 このリソースを False に設定すると、daemonMode が使用不可になります。
debugLevel
クラス:
DebugLevel
クラス型:
int
デフォルト:
0
説明:
この整数リソースに非ゼロ値を指定すると、デバッグ情報の表示が可能になります。 また、この指定により、デーモン・モードが使用不可になり、通常は使用されないビット・バケットへ情報がリダイレクトされます。
errorLogFile
クラス:
ErrorLogFile
クラス型:
string
デフォルト:
NULL
説明:
通常、エラー出力はシステム・コンソールに送信されます。 エラー出力をリダイレクトするには、このリソースを任意のファイル名に設定します。 XsetupXstartup、および Xreset により stderr に送信されたすべての出力が、そのファイルに入れられます。
errorLogSize
クラス:
errorLogSize
クラス型:
int
デフォルト:
50
説明:
このリソースはエラー・ログ・ファイルの最大サイズを K バイト単位で指定します。 制限に達すると、dtlogin は、ファイル・サイズが最大値の 75% に縮小されるまで、ファイル内のエントリーを古いものから削除します。 ファイルの切り捨てが行われた後、エラー・ログ・ファイルに (例えば cat または tail を使用して) アクセスするユーザーは、ファイルをいったん閉じてから、ファイルに記録された後続の情報を見るために再オープンしてアクセスする必要があります。
exportList
クラス:
ExportList
クラス型:
string
デフォルト:
NULL
説明:
スペースまたはタブで区切られた変数名のセットが入っています。 名前付きの各変数は、dtlogin 環境から取得され、サーバーおよびセッションの環境にロードされます。 詳しくは、『環境』のセクションを参照してください。
fontPathHead
クラス:
FontPathHead
クラス型:
string
デフォルト:
NULL
説明:
デフォルトの X サーバー・フォント・パスの前に付加される値。
fontPathTail
クラス:
fontPathTail
クラス型:
string
デフォルト:
NULL
説明:
デフォルトの X サーバー・フォント・パスの後に付加される値。
keyFile
クラス:
KeyFile
クラス型:
string
デフォルト:
/usr/dt/config/Xkeys
説明:
XDM-AUTHENTICATION-1 スタイルの XDMCP 認証では、dtlogin と端末間で秘密鍵が共用される必要があります。 このリソースは、それらの値を入れるファイルを指定します。 ファイルの各エントリーは、ディスプレイ名と共有鍵で構成されます。 デフォルトでは、dtlogin には XDM-AUTHENTICATION-1 のサポートが含まれていません。これは一般に配布できない DES が必要なためです。
lockPidFile
クラス:
LockPidFile
クラス型:
boolean
デフォルト:
true
説明:
dtlogin がファイル・ロックを使用して dtlogin の複数インスタンスの並行実行を防止するかどうかを制御します。
networkDevice
クラス:
NetworkDevice
クラス型:
string
デフォルト:
/dev/dtremote
説明:
リモート接続の場合、/etc/utmpline の値もデバイスとして /dev ディレクトリー内に存在することが、finger などのコマンドが正しく動作するために必要です。 このリソースは、リモート・ディスプレイの接続時に dtlogin が作成する /dev ファイルのパス名を指定します。 大部分のプラットフォームでは、このファイルは /dev/null へのシンボリック・リンクとして作成されます。 指定値は /dev/ で始める必要があります。それ以外の値は廃棄され、ファイルは作成されません。
pidFile
クラス:
PidFile
クラス型:
string
デフォルト:
NULL
説明:
メイン dtlogin プロセスのプロセス ID の ASCII 表記を入れるために、指定されたファイル名が作成されます。 このファイルは、dtlogin にシグナルを送信するときに使用できます。 dtlogin クライアントも、ファイル・ロックを使用して、同じマシン上で複数の dtlogin が実行されるのを防止しようとします。 詳しくは、lockPidFile リソースを参照してください。
removeDomainname
クラス:
RemoveDomainname
クラス型:
boolean
デフォルト:
true
説明:
XDMCP クライアントのディスプレイ名のコンピューティングでは、通常、dtlogin は端末用に絶対パスによるホスト名を作成します。 これは紛らわしいことがあるため、ホスト名のドメイン名部分がこの変数の設定時のローカル・ホストのドメイン名と同じ場合は、dtlogin はドメイン名部分を除去します。
requestPort
クラス:
RequestPort
クラス型:
int
デフォルト:
177
説明:
dtlogin が着信 XDMCP 要求を listen するときに使用する UDP ポート番号を示します。 システムのデバッグの必要がない限り、このリソースのデフォルト値はそのままにしてください。
servers
クラス:
Servers
クラス型:
string
デフォルト:
:0 Local local /system_dependent_path/X :0
説明:
サーバー・エントリーをすべて (1 行に 1 つずつ) 入れたファイル名を指定するか (値がスラッシュで始まる場合)、または単一のサーバー・エントリーを指定します。 各エントリーは、常時管理する必要があって XDMCP を使用しないディスプレイを示します。 各エントリーの一般構文は次のとおりです。

DisplayName DisplayClass DisplayType[@ite] [Command [options]]
説明:
DisplayName
-display オプションで任意の X プログラムに渡すことができる値。この文字列は、特定のディスプレイを指定するためにディスプレイ固有のリソースで使用されます。したがって、名前の一致にとくに注意する必要があります。例えば、ユーザーの別のリソースが Dtlogin._0.session と指定されている場合、:0 local /usr/bin/X11/X :0 ではなく localhost:0 local /usr/bin/X11/X :0 を使用します。このフィールドのアスタリスク (*) は dtlogin によって hostname :0 に展開されます。
DisplayClass
ディスプレイ・クラス部分も、リソースのクラス部分としてディスプレイ固有のリソースで使用されます。類似したディスプレイの大きな集合 (例えば、X 端末のグループ) があって、それらのディスプレイのいくつかのグループ用にリソースを設定したい場合に、この方法が役に立ちます。XDMCP を使用する場合、ディスプレイにはディスプレイ・クラスを指定する必要があります。ご使用のデバイスの場合に妥当な標準ディスプレイ・クラス文字列については、ご使用の X 端末の資料を参照してください。
DisplayType
local を指定した場合は、このエントリーについて X サーバーを開始する必要があることを示します。remote の値を指定した場合は、既存の X サーバーを接続する必要があることを示します。
@ite
ローカル・ビットマップで、ユーザーはログイン画面を使用して「Command Line Login (コマンド・ライン・ログイン)」オプションを選択することができます。このオプションは、X サーバーを一時的に中断し、従来型のキャラクター login: プロンプトを表示します。ここでユーザーはログインして、X 関連以外のタスクを実行することができます。ユーザーがタスクを完了してログアウトすると、X サーバーが再起動され、ログイン画面が再表示されます。「Command Line Login (コマンド・ライン・ログイン)」モードをサポートするためには、ディスプレイに関連付けられた内部端末エミュレーター (ITE) デバイスが必要です。デフォルトでは、dtlogin は ITE デバイス「コンソール」(/dev/console) をディスプレイ :0 に関連付けます。ユーザーの構成がこのデフォルトに一致しない場合は、ITE が関連付けられているディスプレイには @device を指定し、servers ファイルにリストされているそれ以外のすべてのディスプレイには @none を指定します。
Command [options]
X サーバーを開始する文字列。dtlogin クライアントは常に指定された DisplayName を使用して X サーバーに接続します。したがって、ユーザーは、X サーバーにオプションとして明示的な接続番号 (前の例の :0) を指定する必要があります。
sysParmsFile
クラス:
SysParmsFile
クラス型:
string
デフォルト:
/system_dependent_path
説明:
シェル・コマンドが入っているファイルを指定します。シェル・コマンドの 1 つはシステムのタイムゾーン環境変数 (TZ) を設定するものです。シェル構文 TZ= を使用してタイムゾーンが設定されている場合、dtlogin はこの情報を使用してユーザー・セッション用のタイムゾーンを設定できます。
timeZone
クラス:
TimeZone
クラス型:
string
デフォルト:
NULL
説明:
dtlogin 用のローカル・タイムゾーンを指定します。これは dtlogin の環境に TZ 変数の値としてロードされ、以降のすべてのセッションに継承されます。システムによっては、タイムゾーン設定の入った構成ファイル (例えば、 /etc/src.sh) を維持している場合があります。sysParmsFile リソースも参照してください。
wakeupInterval
クラス:
WakeupInterval
クラス型:
int
デフォルト:
10
説明:
ユーザーがログイン画面から「Command Line Login (コマンド・ライン・ログイン)」モードを選択した場合、dtlogin は X サーバーを終了し、従来型のキャラクター・ベースのログイン・プロンプト login: が可視になります。ユーザーが wakeupInterval 秒の 2 倍の時間内にログインしなかった場合は、X サーバーが再起動されます。ユーザーがログインした後、dtloginwakeupInterval 秒ごとに、ユーザーがログアウトしたかどうかを検査します。ユーザーがログアウトした場合は、X サーバーが再起動され、ログイン画面が再表示されます。

ディスプレイ・リソース

dtlogin コマンドのディスプレイ・リソースは、すべてのディスプレイまたは特定の 1 つのディスプレイについて指定することができます。特定のディスプレイを指定するには、Dtlogin と最終リソース名セグメントの間のリソース名にディスプレイ名を挿入します。例えば、Dtlogin.expo_0.startup は、expo:0 ディスプレイ上の起動シェル・ファイルを定義するリソースの名前です。リソース・マネージャーは、リソースの名前をその値からコロンで分離し、リソース名の各部分をドットで区切ります。そのため、dtlogin は、リソース名を生成するときにドット (.) およびコロン (:) の代わりに下線 (_) を使用します。

また、ディスプレイ名の代わりにクラス名を挿入することにより、クラス用にリソースを指定することもできます。XDMCP の管理対象でないディスプレイの場合は、servers リソースで参照されるファイル内にクラス所属を指定することができます。XDMCP を使用するディスプレイでは、XDMCP パケットの一部としてクラス所属が提供されます。

以下の dtlogin 一般リソースは、ディスプレイ固有ではなく、該当する場合はすべてのディスプレイに適用されます。
項目 説明
authorize
クラス:
Authorize
クラス型:
boolean
デフォルト:
false
説明:
authorize は、dtlogin がサーバー接続の許可を生成して使用するかどうかを制御するブール・リソースです。authName リソースも参照してください。
authName
クラス:
AuthName
クラス型:
string
デフォルト:
MIT-MAGIC-COOKIE-1
説明:
authorize リソースを使用する場合、authName は使用される許可のタイプを指定します。現在、dtlogin は MIT-MAGIC-COOKIE-1 許可のみをサポートします。XDM-AUTHORIZATION-1 のサポートも可能ですが、DES は一般に配布できません。動的にサポートされる許可のタイプは XDMCP 接続で決まるため、authName はこの場合無視されます。authorize リソースも参照してください。
authFile
クラス:
AuthFile
クラス型:
string
デフォルト:
NULL
説明:
-auth サーバー・コマンド・ライン・オプションを使用して、dtlogin からサーバーへ許可データを伝達します。このリソースが消去されるとサーバーの許可メカニズムが使用不可になるため、書き込み保護ディレクトリーに保持して、消去を防止します。NULL の場合は、dtlogin はファイル名を生成します。
chooser
クラス:
Chooser
クラス型:
デフォルト:
説明:
特殊なホスト名 CHOOSER にリダイレクトされる間接照会用ホスト・メニューを提供するプログラム実行を指定します。デフォルトは /usr/dt/bin/dtchooser です。Xaccess ファイルのセクションを参照してください。
cpp
クラス:
Cpp
クラス型:
string
デフォルト:
system dep.
説明:
xrdb が使用する C プリプロセッサーのパスを指定します。
environment
クラス:
Environment
クラス型:
string
デフォルト:
system dep.
説明:
スペースまたはタブで区切られた name=value のペアのセットが入っています。各は、サーバーおよびセッションの環境にロードされます。詳しくは、『環境』のセクションを参照してください。
failsafeClient
クラス:
FailsafeClient
クラス型:
string
デフォルト:
/system_dep./xterm
説明:
デフォルトのセッションが実行に失敗すると、dtlogin はこのプログラムにフォールバックします。このプログラムは引数なしで実行されますが、セッションが使用するはずだったものと同じ環境変数を使用して実行されます。
grabServer
クラス:
GrabServer
クラス型:
boolean
デフォルト:
true
説明:
セキュリティーを向上させるために、dtlogin は、名前とパスワードの読み取り中にサーバーおよびキーボードをグラブします。grabServer リソースは、名前とパスワードの読み取り中にサーバーを保留するかどうかを指定します。false の場合、サーバーはキーボードのグラブが成功した後でグラブ解除されます。False でない場合は、サーバーはセッション開始の直前までグラブされます。
grabTimeout
クラス:
GrabTimeout
クラス型:
int
デフォルト:
3 秒
説明:
dtlogin がグラブの成功を待機する最大時間を指定します。別のクライアントそのサーバーをグラブしている場合、またはおそらくネットワーク待ち時間が非常に長い場合にも、グラブが失敗することがあります。grabTimeout リソースのデフォルトは 3 秒です。ユーザーが画面上のよく似たウィンドウに惑わされることがあるので、このリソースは慎重に使用する必要があります。グラブが失敗すると、dtlogin はサーバー (可能な場合) およびセッションを kill してから再起動します。一部の X 端末は、サーバーのグラブ中にログイン画面を表示できません。grabServer を False に設定すれば画面の表示が可能になりますが、ログイン画面の内容をコピーされてユーザーのログイン名が盗まれるという可能性が生じます。キーボードはグラブされたままであり、パスワードはエコーされないので、パスワードが盗まれることはありません。
language
クラス:
Language
クラス型:
string
デフォルト:
system dep.
説明:
LANG 環境変数のデフォルトの設定値を指定します。dtlogin 画面がその言語用にローカライズされている場合は、その言語で適切に表示されます。それ以外の場合は、C 言語で表示されます。ユーザーはログイン画面のオプションを使用して、この設定値を一時的に指定変更できます。後続のセッションが終了すると、LANG 変数は設定値に戻ります。
languageList
クラス:
LanguageList
クラス型:
string
デフォルト:
NULL
説明:
ログイン画面の「Language (言語)」メニューに表示される言語のデフォルト・セットを、ユーザーが指定変更できるようにします。特定のディスプレイで実際に使用される言語のセットが、システムにインストールされているセットより小さい場合、これが役に立ちます。リソース値は、該当の LANG 環境変数に有効な値のリストです。 言語値は、1 つ以上のスペースまたはタブで分離する必要があります。
languageName
クラス:
LanguageName
クラス型:
string
デフォルト:
NULL
説明:
ログイン画面の「Language (言語)」メニューに表示されるデフォルトのロケール名を、ユーザーが代替テキストに指定変更できるようにします。この指定変更により、例えば、En_US という項目の代わりに English (United States) という項目がユーザーに表示されることになります。このリソースは、次のように、Dtlogin *local_name.languageName: text という形式で指定します。
Dtlogin*En_US.languageName: English (United States)
Dtlogin*Fr_CA.languageName: French (Canadian)
openDelay
クラス:
OpenDelay
クラス型:
int
デフォルト:
5 秒
説明:
応答の鈍いサーバーをオープンする継続した試行の間の所要時間 (秒) を指定します。
openRepeat
クラス:
OpenRepeat
クラス型:
int
デフォルト:
5 秒
説明:
応答の鈍いサーバーをオープンする継続した試行の回数を指定します。
openTimeout
クラス:
OpenTimeout
クラス型:
int
デフォルト:
30 秒
説明:
応答の鈍いサーバーのオープンを実際に試行しているときの待ち時間を指定します。この時間は、connect システム・コールで経過する最大時間と同じです。
pingInterval
クラス:
PingInterval
クラス型:
int
デフォルト:
5 分
説明:
リモート・ディスプレイの消失を発見するために、dtlogin は、X 接続を使用し、XSync 要求を送信して、不定期にリモート・ディスプレイを ping します。pingInterval リソースは継続した ping の試行の間の時間 (分) を指定します。
pingTimeout
クラス:
PingTimeout
クラス型:
int
デフォルト:
5 分
説明:
端末が要求に応答するのを待つ最大待ち時間 (分) を指定します。端末が応答しない場合、セッションは終了します。dtlogin クライアントはローカル・ディスプレイを ping しません。サーバーが (例えば、リモート・ファイルシステム・サービスを) 待機中で ping に応答しない場合、その結果としてローカル・セッションが終了することがあってはなりません。
reset
クラス:
Reset
クラス型:
string
デフォルト:
NULL
説明:
セッション終了後に (root として) 実行されるプログラムを指定します。 このリソースを設定しない場合、実行されるプログラムはありません。標準的な名前は Xreset です。『Xreset ファイル』を参照してください。
resetForAuth
クラス:
ResetForAuth
クラス型:
boolean
デフォルト:
false
説明:
サンプル・サーバーでの許可のオリジナル・インプリメンテーションの際、許可ファイルは、初期接続の検査時ではなく、サーバー・リセット時に再読み取りされていました。dtlogin はディスプレイに接続する直前に許可情報を生成するので、古いサーバーは現在の許可情報を取得しません。 このリソースを使用すると、dtlogin はファイルのセットアップ後にサーバーに SIGHUP を送信するので、追加のサーバー・リセットが起こり、その時間内に新しい許可情報が読み取られます。
resetSignal
クラス:
Signal
クラス型:
int
デフォルト:
1 SIGHUP
説明:
dtlogin がサーバーのリセットのために送信するシグナルを指定します。
resources
クラス:
Resource
クラス型:
string
デフォルト:
NULL
説明:
リソース・データベースとして xrdb によりディスプレイの画面 0 のルート・ウィンドウにロードされるファイルの名前を指定します。このリソース・データベースは認証プロシージャーの開始直前にロードされるので、ログイン・ウィンドウの外観を制御することができます。認証画面に関するセクションで、このファイルに入れるのに適した各種リソースについて説明していますので、参照してください。このリソースにはデフォルト値はありませんが、標準的な名前は Xresources です。
session
クラス:
Session
クラス型:
string
デフォルト:
/usr/dt/bin/Xsession
説明:
認証ユーザー用に実行されるセッションを指定します。 デフォルトでは、 /usr/dt/bin/Xsession ファイルが実行されます。標準的な名前は Xsession です。Xsession ファイルを参照してください。
setup
クラス:
Setup
クラス型:
string
デフォルト:
NULL
説明:
認証画面の表示前に (root として) 実行されるプログラムを指定します。デフォルトでは、実行されるプログラムはありません。標準的な名前は Xsetup です。Xsetup ファイルを参照してください。
startAttempts
クラス:
StartAttempts
クラス型:
int
デフォルト:
4
説明:
応答の鈍いサーバーのオープンを試行する際の dtlogin の動作を制御するために、openDelayopenRepeatopenTimeout、および startAttempts の 4 つの数字リソースがあります。このリソースは、サーバーのオープンを中止する前にプロセス全体が実行される回数を指定します。openRepeat 試行が行われた後、または特定の回の試行中に openTimeout 秒が経過した場合、dtlogin はサーバーを終了してから再起動して、再接続を試行します。このプロセスが startAttempts 回繰り返された時点で、ディスプレイは非活動と宣言され、使用不可にされます。
startup
クラス:
Startup
クラス型:
string
デフォルト:
NULL
説明:
認証プロセスの成功後に (root として) 実行されるプログラムを指定します。デフォルトでは、実行されるプログラムはありません。ここで使用されるファイルの標準的な名前は Xstartup です。Xstartup ファイルのセクションを参照してください。
systemPath
クラス:
SystemPath
クラス型:
string
デフォルト:
system_dep._path
説明:
dtlogin クライアントは、起動スクリプトおよびリセット・スクリプト用の PATH 環境変数をこのリソースの値に設定します。このエントリーには「.」がないことに注意してください。ルートをこのようにしておくと、多くのシステム侵入の試みを防ぐよい方法になります。
systemShell
クラス:
SystemShell
クラス型:
string
デフォルト:
/bin/sh
説明:
dtlogin クライアントは、起動スクリプトおよびリセット・スクリプト用の SHELL 環境変数をこのリソースの値に設定します。
terminateServer
クラス:
TerminateServer
クラス型:
boolean
デフォルト:
false
説明:
セッションが終了したとき X サーバーを (リセットする代わりに) 終了するかどうかを指定します。このオプションを使用すると、サーバーが時間と共に無限に肥大化する場合に、サーバーの連続実行の時間を制限することができます。
termSignal
クラス:
Signal
クラス型:
int
デフォルト:
15 (SIGTERM)
説明:
dtlogin がサーバーを終了するために送信するシグナルを指定します。
userAuthDir
クラス:
UserAuthDir
クラス型:
string
デフォルト:
/var/dt
説明:
dtlogin は、通常のユーザー許可ファイル ($HOME/.Xauthority) への書き込みができない場合に、このディレクトリー内に固有ファイル名を作成し、作成されたファイルで環境変数 XAUTHORITY を指します。
userPath
クラス:
UserPath
クラス型:
string
デフォルト:
system_dep._path
説明:
dtlogin クライアントは、セッション用の PATH 環境変数をこの値に設定します。 これはコロンで区切ったディレクトリーのリストでなければなりません。
xdmMode
クラス:
XdmMode
クラス型:
boolean
デフォルト:
false
説明:
true の場合、$HOME/.xsession ファイルは、ユーザーが認証されると dtsession からではなく Xsession から実行されます。
xrdb
クラス:
Xrdb
クラス型:
string
デフォルト:
/system_dep./xrdb
説明:
リソースのロードに使用するプログラムを指定します。認証画面はキーボードから name-password のペアを読み取ります。これは Motif ツールキットのクライアントですから、色、フォント、およびいくつかのレイアウト・オプションをこのリソースで制御できます。この画面用の一般リソースは、resources リソースで指定されたファイル (デフォルトでは Xresources) に書き込む必要があります。テキストやフォントなど、言語固有の値は、Dtlogin app-defaults ファイルに指定します。

ロゴ・リソース

認証画面のデフォルト・ロゴは、ユーザーの選択したビットマップまたはピックスマップで置き換えることができます。リソースを指定する際は、文字列 Dtlogin*logo* の前書きを付ける必要があります。
項目 説明
bitmapFile
クラス:
BitmapFile
クラス型:
string
デフォルト:
NULL
説明:
ロゴに使用するビットマップ・ファイルまたはピックスマップ・ファイルの絶対パス名を指定します。
background
クラス:
Background
クラス型:
pixel
デフォルト:
#a8a8a8
説明:
ロゴの背景色を指定します。
topShadowPixmap
クラス:
topShadowPixmap
クラス型:
string
デフォルト:
25_foreground
説明:
ロゴのボーダー・シャドーに使用するピックスマップを指定します。
以下のリソースは、ログイン画面で使用するグリーティング文字列を記述します。リソースを指定する際は、文字列 Dtlogin*greeting* の前書きを付ける必要があります。
項目 説明
foreground
クラス:
Foreground
クラス型:
pixel
デフォルト:
説明:
ウェルカム・メッセージの前景色を指定します。
background
クラス:
Background
クラス型:
pixel
デフォルト:
動的
説明:
ウェルカム・メッセージの背景色を指定します。デフォルトは、カラー・システムの場合はライト・グレー、モノクローム・システムの場合は白です。
fontlist
クラス:
FontList
クラス型:
FontList
デフォルト:
-*-*schoolbook-medium-i-normal--18-*
説明:
ウェルカム・メッセージに使用するフォントを指定します。
labelString
クラス:
LabelString
クラス型:
string
デフォルト:
Welcome to %LocalHost%
説明:
ウェルカム・メッセージに使用する文字列を指定します。テキストに改行文字 (0 を含めると、複数の行を指定することができます。テキストにトークン %LocalHost% を含めた場合、ログイン・サービスを提供するホストの名前で置き換えられます。テキストにトークン %DisplayName% を含めた場合、ディスプレイ名で置き換えられます。
perLabelString
クラス:
LabelString
クラス型:
string
デフォルト:
Welcome %s
説明:
個別設定ウェルカム・メッセージに使用する文字列を指定します。 このメッセージは、ユーザー名が入力された後で表示されます。 % は、入力されたユーザー名で置き換えられます。
alignment
クラス:
Alignment
クラス型:
string
デフォルト:
ALIGNMENT_CENTER
説明:
ウェルカム・メッセージの位置合わせに使用する文字列を指定します。 有効な値は、ALIGNMENT_BEGINNING、ALIGNMENT_CENTER、および ALIGNMENT_END です。

マット・リソース

以下のリソースは、ログイン画面で使用するマット・レイアウトを記述します。リソースを指定する際は、文字列 Dtlogin*matte. の前書きを付ける必要があります。
項目 説明
width
クラス:
Width
クラス型:
int
デフォルト:
高解像度ディスプレイの場合は 806、中解像度ディスプレイの場合は 755、低解像度ディスプレイの場合は 585
説明:
login_matte に使用する幅を指定します。
height
クラス:
Height
クラス型:
int
デフォルト:
高解像度ディスプレイの場合は 412、中解像度ディスプレイの場合は 385、低解像度ディスプレイの場合は 300
説明:
login_matte に使用する高さを指定します。

ラベル・リソース

以下のリソースは、ログイン画面で使用するフォント・レイアウトを記述します。リソースを指定する際は、string Dtlogin*. という前書きを付ける必要があります。
項目 説明
labelFont
クラス:
LabelFont
クラス型:
string
デフォルト:
高解像度ディスプレイの場合は -*-swiss 742-medium-r-normal-*-140-*-p-110-*、低解像度ディスプレイの場合は -*-swiss 742-bold-r-normal-*-140-*-p-100-*
説明:
ボタンおよびラベルに使用する labelFont を指定します。
textFont
クラス:
TextFont
クラス型:
string
デフォルト:
高解像度ディスプレイの場合は -*-prestige-medium-r-normal-*-128-72-*、低解像度ディスプレイの場合は -*-helvetica-bold-r-normal-*-100-*
説明:
ボタンおよびラベルに使用する textFont を指定します。

フラグ

フラグは、-config を除き、すべて構成ファイル内でリソースとしても指定できる値を指定します。典型的な場合は、カスタマイズはコマンド・ライン・オプションではなく構成ファイルを使用して行われます。これらのフラグは、デバッグおよび 1 回限りのテストで最も役に立ちます。

項目 説明
-config configuration_file 残りの構成パラメーターを指定するリソース・ファイルを指定します。このファイルは、dtlogin のデフォルト Xconfig ファイルに置き換わります。 詳しくは、『Xconfig ファイル』のセクションを参照してください。
-daemon daemonMode リソースの値として true を指定します。この値により、dtlogin は、初めて起動されたときに (他のデーモンのホストと同様に) すべてのファイル・ディスクリプターをクローズし、制御端末を関連付け解除して、バックグラウンドに退きます。
-debug debug_level debug_level リソースの数値を指定します。非ゼロ値を指定すると、dtlogin はデバッグ・ステートメントを端末に表示します。また、この指定により、daemonMode リソースが使用不可にされ、dtlogin は同期実行を強制されます。
-error error_log_file error_log_file リソースの値を指定します。詳しくは、『Xerrors』ファイルのセクションを参照してください。
-nodaemon リソースの値として false を指定します。
-resources resource_file resource_file リソースの値を指定します。詳しくは、『Xresources ファイル』のセクションを参照してください。
-server server_entry server_entry リソースの値を指定します。詳しくは、『Xservers ファイル』のセクションを参照してください。
-udpPort port_number requestPort リソースの値を指定します。この指定により、dtlogin が XDMCP 要求をモニターするポート番号が設定されます。XDMCP は既知の登録済み udp ポート 177 を使用するため、デバッグの場合を除いてこのリソースの変更は避けてください。
-session session_program session_program リソースの値を指定します。詳しくは、『Xconfig ファイル』のセクションを参照してください。

環境変数

dtlogin コマンドは、以下のデフォルト環境でユーザーのセッションを起動します。

項目 説明
DISPLAY 関連したディスプレイ名に設定されます。
EDITOR /usr/dt/bin/dtpad に設定されます。
HOME ユーザーのホーム・ディレクトリーに設定されます。
KBD_LANG 適用可能な言語の LANG の値に設定されます。
LANG 現行の NLS 言語があれば、その言語に設定されます。
LC_ALL 現行の NLS 言語があれば、その言語に設定されます。
LC_MESSAGES 現行の NLS 言語があれば、その言語に設定されます。
LOGNAME ユーザー名に設定されます。
MAIL /usr/mail/$USER に設定されます (システム依存)。
PATH userPath リソースの値に設定されます。
USER ユーザー名に設定されます。
SHELL ユーザーのデフォルト・シェルに設定されます (/etc/passwd から)。
TERM dtterm に設定されます。
TZ timeZone リソースの値またはシステム・デフォルトに設定されます。
XAUTHORITY 権限ファイルに設定されます。

環境リストへの追加

結果の環境変数の望ましいスコープに応じて、さらに次の 4 つのメソッドがあります。これらのメソッドは上記のリストを変更するか、上記のリストに追加されるものです。
  • exportList リソースを使用すると、親プロセスから dtlogin プロセスに提供される変数をエクスポートすることができます。このメソッドで指定される変数は、ディスプレイの X サーバー・プロセスとユーザーのセッションの両方で使用でき、デフォルトの設定をすべて指定変更します。このリソースは、少なくとも 1 つのスペースまたはタブで区切られた name=value の文字列を受け入れます。
  • environment リソースは dtlogin 構成ファイルで使用できます。これを使用すると、環境変数をグローバルにまたはディスプレイ単位で設定することができます。 このメソッドで指定される変数は、ディスプレイの X サーバー・プロセスとユーザーのセッションの両方で使用でき、デフォルトの設定をすべて指定変更します。このリソースは、少なくとも 1 つのスペースまたはタブで区切られた name=value の文字列を受け入れます。この文字列を構文解析するシェルはないため、指定する値は定数でなければなりません。次に例を示します。
    Dtlogin*environment:MAIL_HOST=blanco MAIL_SERVER=pablo
    注: LANG 環境変数と TZ 環境変数には、構成ファイル内に専用のリソースがあります。これらの環境変数を環境で設定してはなりません。
  • シェルに夜処理が必要な環境変数または他の環境変数の値に依存する環境変数は、起動スクリプト Xsession で指定できます。これらの変数はディスプレイ上のすべてのユーザーの環境にロードされますが、X サーバー・プロセスにはロードされません。これらの変数は同じ変数の前の設定をすべて指定変更します。Xsession スクリプトは、環境変数を設定するために ksh 構文を受け入れます。 次に例を示します。
    MAIL=/usr/mail/$USER
  • パーソナル環境変数は、$HOME/.dtprofile スクリプト・ファイル内にユーザー単位で設定できます。dtlogin コマンドは、このファイル内のコマンドのために、shksh、または csh のいずれかの構文を受け入れます。このファイル内のコマンドは環境変数を設定するものだけで、端末入出力を実行するものではありません。ただし、tset または stty は例外です。.dtprofile の最初の行が #!/bin/sh、 #!/bin/ksh、または #!/bin/csh の場合は、dtlogin は該当するシェルを使用して .dtprofile を構文解析します。それ以外の場合は、ユーザーのデフォルト・シェル ($SHELL) が使用されます。

終了状況

次の終了値が戻されます。

項目 説明
0 正常終了。
>0 エラーが発生しました。

  1. CDE ログイン・サービスをデーモンとして開始するには、次のように入力します。
    
    /usr/dt/bin/dtlogin -daemon
  2. CDE ログイン・サービスをデバッグ・モードで開始するには、次のように入力します。
    
    /usr/dt/bin/dtlogin -debug 1

位置

/usr/dt/bin/dtlogin

標準エラー

dtlogin コマンドが戻すエラー・メッセージは次のとおりです。
  • Login incorrect; please try again.
  • Unable to change to home directory.
  • Sorry. Maximum number of users already logged in.
  • Login error, invalid user ID.
  • Login error, invalid group ID.
  • Login error, invalid audit ID.
  • Login error, invalid audit flag.
  • Logins are currently disabled.
  • Your current password has expired.

ファイル

dtlogin コマンドは、広い範囲の環境で動作するように設計されており、特定のシステムに適するように変更できる 1 組の構成ファイルを提供します。デフォルトの dtlogin 構成ファイルは /usr/dt/config に入っています。ただし、Xsession は例外で、/usr/dt/bin に保管されています。構成ファイルは次のとおりです。

項目 説明
/usr/dt/config/Xconfig 他の dtlogin 構成ファイルおよび dtlogin の動作を指定します。
/usr/dt/config/Xaccess XDMCP サービスを要求しているディスプレイからのアクセスを制御します。
/usr/dt/config/Xservers dtlogin が明示的に管理するディスプレイのリストが入っています。
/usr/dt/config/Xresources ログイン画面の外観を指定するリソース定義が入っています。
/usr/dt/config/Xsetup ログイン画面を表示する前に root として実行されるスクリプト。
/usr/dt/config/Xstartup ユーザーが正常に認証された後で root として実行されるスクリプト。
/usr/dt/bin/Xsession ユーザーのセッションを開始する認証ユーザーとして実行されるスクリプト。
/usr/dt/config/Xfailsafe 復旧セッションを開始する認証ユーザーとして実行されるスクリプト。
/usr/dt/config/Xreset ユーザーのセッションが終了した後で root として実行されるスクリプト。

Xconfig ファイル

Xconfig ファイルは、dtlogin 用の一般リソースを含んでおり、dtlogin 構成ファイル・ツリーの先頭に位置します。Xconfig は、他の dtlogin 構成ファイルおよびログ・ファイルの位置を指定し、さらに dtlogin の動作を指定します。他の dtlogin 構成ファイルおよびログ・ファイルの位置は、リソース定義によって指定されます。 デフォルトは次のとおりです。
Dtlogin.errorLogFile
/var/dt/Xerrors
Dtlogin.pidFile
/var/dt/Xpid
Dtlogin.accessFile
Xaccess
Dtlogin.servers
Xservers
Dtlogin*resources
%L/Xresources
Dtlogin*setup
Xsetup
Dtlogin*startup
Xstartup
Dtlogin*reset
Xreset
Dtlogin*failsafeClient
Xfailsafe
Dtlogin*session
/usr/dt/bin/Xsession
accessFileserversresources setupstartupresetfailsafeClient 、または session に指定されたパスが相対パスの場合、dtlogin はまずディレクトリー /etc/dt/config 内のファイルを検索し、次に /usr/dt/config を検索します。
注: 一部のリソースは * でコンポーネントを分離して指定されます。これらのリソースは、* をディスプレイ名で置き換えて、個別のディスプレイごとに固有にすることができます。詳しくは、『ディスプレイ・リソース』を参照してください。

デフォルトの Xconfig ファイルは /usr/dt/config/Xconfig です。システム管理者は、 /usr/dt/config/Xconfig/etc/dt/config/Xconfig にコピーし、/etc/dt/config/Xconfig を変更して、Xconfig をカスタマイズできます。デフォルトの Xconfig ファイルには、ベンダー固有のリソース定義および例のほかに、先行する構成ファイルおよびログ・ファイルのエントリーが入っています。

Xaccess ファイル

accessFile リソースによって指定されるデータベース・ファイルは、XDMCP サービスを要求しているディスプレイからのアクセスを制御するために dtlogin が使用する情報を提供します。このファイルには、直接照会およびブロードキャスト照会への応答を制御するエントリー、間接照会への応答を制御するエントリー、およびマクロ定義の、3 種類のエントリーが含まれています。

直接エントリーのフォーマットは、ホスト名またはパターンのいずれかです。パターンがホスト名と相違する点は、1 つ以上のメタキャラクターを含んでいることです (* は 0 個以上の文字の任意のシーケンスに一致し、? は任意の単一文字に一致します)。メタキャラクターはディスプレイ・デバイスのホスト名と比較されます。エントリーがホスト名の場合、比較はすべてネットワーク・アドレスを使用して行われるので、正しいネットワーク・アドレスに変換される名前はすべて使用できます。パターンの場合は、正規のホスト名だけが比較に使用されるので、別名を突き合わせないようにする必要があります。ホスト名またはパターンの前に感嘆符 (!) 文字を付けると、そのエントリーに一致するホストは除外されます。

間接エントリーにもホスト名またはパターンが入っていますが、その後に間接照会の送信先のホスト名またはマクロのリストが続きます。 間接エントリーでは、ログイン画面を表示できるホストのメニューを提供するために、dtlogindtchooser を実行することを指定することもできます。

マクロ定義には、マクロ名と、ホスト名およびこのマクロの展開先の他のマクロのリストが入っています。マクロをホスト名から区別するために、マクロ名は % 文字で始まります。マクロはネスト可能です。

特定のディスプレイ・ホストへのアクセスを検査する場合、各エントリーが順にスキャンされ、最初に一致したエントリーが応答を決定します。間接エントリーのスキャン中は直接エントリーおよびブロードキャスト・エントリーは無視されます。また、その逆もいえます。ブランク行は無視されます。# はコメント区切り文字として処理され、その行の残りは無視されます。¥newline があると改行が無視され、複数行に及ぶ間接ホスト・リストが可能になります。

次に示すものは、Xaccess ファイルの例です。
#
# Xaccess - XDMCP access control file
#

#
# Direct/Broadcast query entries
#
!xtra.lcs.mit.edu # disallow direct/broadcast service for xtra
bambi.ogi.edu     # allow access from this particular display
*.lcs.mit.edu     # allow access from any display in LCS

#
# Indirect query entries
#

#define %HOSTS macro
%HOSTS                expo.lcs.mit.edu xenon.lcs.mit.edu ¥
                      excess.lcs.mit.edu kanga.lcs.mit.edu

#force extract to contact xenon
extract.lcs.mit.edu xenon.lcs.mit.edu

#disallow indirect access by xtra
!xtra.lcs.mit.edu   dummy

#all others get to choose among %HOSTS
*.lcs.mit.edu       %HOSTS

XDMCP アクセスが認可されている場合、X 端末用の許可情報が入っているディレクトリーを authDir で指定して、そのディレクトリー内に一時ファイルを作成することができます。セッションが開始されると、この一時ファイルは削除されます。

ブロードキャスト照会または間接照会用のホスト・メニューを提供しない X 端末の場合は、chooser プログラムを代わりに使用することができます。Xaccess ファイルで、間接ホスト・リストの最初のエントリーとして CHOOSER を指定します。chooser プログラムは、リスト内の残りのホスト名のそれぞれに照会要求を送信し、応答のあったすべてのホストのメニューを表示します。リストに BROADCAST という語を入れることができます。その場合、chooser はブロードキャストを送信します。応答のあったすべてのホストのメニューは、この場合も表示されます。オペレーティング・システムによっては、UDP パケットをブロードキャストできないものもあります。その場合、この機能は役に立ちません。

chooser プログラムを使用する Xaccess ファイルの一例を次に示します。
#offer a menu of these hosts to extract
extract.lcs.mit.edu CHOOSER %HOSTS

#offer a menu of all hosts to xtra
xtra.lcs.mit.edu    CHOOSER BROADCAST

chooser 用に使用するプログラムは chooser リソースで指定します。このプログラム用のリソースは、resources によって名前を指定されたファイルに書き込むことができます。デフォルトの Xaccess ファイルは /usr/dt/config/Xaccess です。システム管理者は、/usr/dt/config/Xaccess/etc/dt/config/Xaccess にコピーし、次に /etc/dt/config/Xaccess を変更して、Xaccess をカスタマイズすることができます。デフォルトの Xaccess ファイルにはエントリーがありません。

Xservers ファイル

Xservers ファイルには、管理するディスプレイのリストが入っています。デフォルトの Xservers ファイルは /usr/dt/config/Xservers です。システム管理者は、/usr/dt/config/Xservers/etc/dt/config/Xservers にコピーし、次に /etc/dt/config/Xservers を変更して、Xservers をカスタマイズすることができます。デフォルトの Xservers ファイルには、1 つのローカル・ディスプレイのエントリーが 1 つ入っています。

Xresources ファイル

Xservers ファイルには、ログイン画面の外観を指定するリソース定義が入っています。デフォルトの Xresources ファイルは /usr/dt/config/Xresources です。システム管理者は、 /usr/dt/config/Xresources/etc/dt/config/Xresources にコピーし、次に /etc/dt/config/Xresources を変更して、Xresources をカスタマイズすることができます。

Xsetup ファイル

Xsetup ファイルは通常はシェル・スクリプトです。root ユーザーだけがこのスクリプトを実行できます。実行の際は特にセキュリティーに注意する必要があります。 このスクリプトはログイン画面が表示される前に実行されます。どんな種類の引数もこのスクリプトには渡されません。dtlogin コマンドは、ログイン画面を表示する前に、このスクリプトの終了を待ちます。

デフォルトの Xsetup ファイルは /usr/dt/config/Xsetup です。システム管理者は、 /usr/dt/config/Xsetup/etc/dt/config/Xsetup にコピーし、次に /etc/dt/config/Xsetup を変更して、Xsetup をカスタマイズすることができます。デフォルトの Xsetup ファイルには、ベンダー固有のコードが入っていますが、通常は、ログイン画面を表示する前に X サーバーをセットアップするコード (キーボード・マップのセットアップなど) が入っています。

Xstartup ファイル

Xstartup ファイルは通常はシェル・スクリプトです。root ユーザーだけがこのスクリプトを実行できます。実行の際は特にセキュリティーに注意する必要があります。このスクリプトには、日替わりメッセージを表示したり、ユーザーに代わってその他のシステム・レベルの機能を実行したりするコマンドが書き込まれます。このスクリプトを使用するために、以下の環境変数が設定されます。
DISPLAY
関連したディスプレイ名に設定されます。
HOME
ユーザーのホーム・ディレクトリーに設定されます。
PATH
systemPath リソースの値に設定されます。
USER
ユーザー名に設定されます。
SHELL
systemShell リソースの値に設定されます。

どんな種類の引数もこのスクリプトには渡されません。dtlogin コマンドは、ユーザー・セッションを開始する前に、このスクリプトの終了を待ちます。このスクリプトの終了値がゼロ以外の値の場合、dtlogin はセッションを即時に中断し、別の認証サイクルを開始します。

デフォルトの Xstartup ファイルは /usr/dt/config/Xstartup です。システム管理者は、 /usr/dt/config/Xstartup/etc/dt/config/Xstartup にコピーし、次に /etc/dt/config/Xstartup を変更して、Xstartup をカスタマイズすることができます。デフォルトの Xstartup ファイルには、コンソールでセッションが実行されるユーザーに /dev/console の所有権を変更するコードが入っています。

Xsession ファイル

Xsession スクリプトは、ユーザーのセッションを初期化し、デスクトップ・セッション・マネージャーを呼び出します。このスクリプトは許可ユーザーのアクセス権によって実行され、いくつかの環境変数が事前設定されています。 事前設定変数については、『環境変数』のリストを参照してください。

デフォルトの Xsession ファイルは /usr/dt/bin/Xsession です。システム管理者は、 /usr/dt/bin/Xsession/etc/dt/config/Xsession にコピーし、次に /etc/dt/config/Xsession を変更して、Xsession をカスタマイズすることができます。その場合、Xconfig で定義されたセッション・リソースも、カスタマイズされた Xsession ファイルを参照するように変更する必要があります。 Xconfig ファイルを更新する方法については、『Xconfig ファイル』を参照してください。デフォルトの Xsession ファイルにはセッション初期化コードが入っています。ベンダー固有のコードも入っていますが、このファイルの一般機能は次のとおりです。
  • ユーザーの $HOME/.dtprofile のソースとなる。
  • すべての /etc/dt/config/Xsession.d/* スクリプトのソースとなる。
  • すべての /usr/dt/config/Xsession.d/* スクリプトのソースとなる。
  • デスクトップ・ウェルカム・クライアント dthello をバックグラウンドで起動する。
  • アプリケーション検索パス・スクリプト dtsearchpath のソースとなる。
  • ヘルプ・セットアップ・クライアント dthelpgen をバックグラウンドで起動する。
  • アプリケーション・マネージャー・ディレクトリー・セットアップ・クライアント dtappgather をバックグラウンドで起動する。
  • デスクトップ・セッション・マネージャー dtsession を実行する。
システム管理者は、Xsession ファイルのカスタマイズは行わないでください。

Xreset ファイル

Xreset スクリプトは、Xstartup と対称的に、ユーザー・セッションが終了した後で実行されます。Xreset スクリプトは root ユーザーによって実行されるので、Xstartup のコマンドの効果を元に戻すコマンド (ファイル・サーバーからディレクトリーをアンマウントするコマンドなど) を入れておく必要があります。Xstartup に渡された環境変数の収集は、Xreset にも渡されます。

デフォルトの Xreset ファイルは /usr/dt/config/Xreset です。システム管理者は、 /usr/dt/config/Xreset/etc/dt/config/Xreset にコピーし、次に /etc/dt/config/Xreset を変更して、Xreset をカスタマイズすることができます。デフォルトの Xreset ファイルには、/dev/console の所有権を root に再変更するコードが入っています。

Xerrors ファイル

Xerrors スクリプトには、dtlogin からのエラー・メッセージと、XsetupXstartup、または Xreset から stderr への出力が入ります。システム管理者は、このファイルの内容を dtlogin のトラブルシューティングに使用することができます。errorLogSize リソースは、Xerrors ファイルのサイズを制限して、無制限に肥大化することを防ぐことができます。ファイルが要求されたサイズより大きくなって、dtlogin により切り捨てが行われた場合、ファイルにアクセスするユーザー (例えば、cat または tail を使用するユーザー) は、(ファイルの切り捨てが行われた後) ファイルをクローズしてからアクセスのために再オープンして、ファイルに記録された後続の情報をみる必要があります。

システム管理者は、Xconfig ファイルに errorLogFile リソースを設定して、Xerrors のパス名を変更することができます。

Xpid ファイル

Xpid スクリプトには、マスター dtlogin プロセスのプロセス ID が入っています。この ID は dtlogin にシグナルを送信するときに使用できます。システム管理者は、Xconfig ファイルに pidFile リソースを設定して、Xpid のパス名を変更することができます。