ログイン画面表示をカスタマイズするため、ロゴまたはグラフィック、ウェルカム・メッセージ、およびフォントを変更できます。
Xresources を変更するには、Xresources を /usr/dt/config/language から /etc/dt/config/language にコピーします。次回からは、すべての変更を反映したログイン画面が表示されます。ログイン画面を強制的に再表示させるには、ログイン画面の [オプション] メニューから [ログイン画面のリセット] を選択します。
Xresources ファイルのリソース指定によって決定されるログイン画面の属性は次のとおりです。
Dtlogin*logo*bitmapFile - ロゴ・イメージとして表示するビットマップ・ファイルまたはピックスマップ・ファイル
Dtlogin*greeting*persLabelString - 個人用ウェルカム・メッセージ
Dtlogin*greeting*labelString - ウェルカム・メッセージ
Dtlogin*greeting*fontList - ウェルカム・メッセージ用フォント
Dtlogin*labelFont - プッシュ・ボタンおよびラベル用フォント
Dtlogin*textFont - ヘルプ・メッセージおよびエラー・メッセージ用フォント
Dtlogin*language*languageName - ロケール名 language 用の選択テキスト
Dtlogin*logo*bitmapFile リソースを Xresources に設定します。
ロゴは、カラー・ピックスマップ・ファイルまたはビットマップ・ファイルです。
次の例は、ロゴに Mylogo ビットマップを使用します。
Dtlogin*logo*bitmapFile: /usr/local/lib/X11/dt/bitmaps/Mylogo.bm
デフォルトでは、ログイン・サーバはログイン画面にメッセージ Welcome to hostname を表示します。このメッセージは、次の方法で変更できます。
Dtlogin*greeting*labelString リソースを Xresources に設定します。
labelString リソースの値には、ログイン・サーバ・ホスト名に置き換える %LocalHost% と、X サーバ・ディスプレイ名に置き換える %DisplayName% を指定できます。
次の例は、ウェルカム・メッセージを Here's host name! に変更します。
Dtlogin*greeting*labelString: Here's %LocalHost%!
ユーザ名を一度入力すると、ログイン・サーバはデフォルトで Welcome username というメッセージを表示します。このメッセージは Dtlogin*greeting*persLabelString リソースを Xresources に設定すると変更できます。persLabelString の値には、username に置き換える %s を指定できます。
次の例は、個人用ウェルカム・メッセージを Hell0 username に変更します。
Dtlogin*greeting*persLabelString: Hello %s
ログイン画面で使用するフォントを、次のフォント・リソースのいずれかを Xresources に設定することにより変更できます。
Dtlogin*greeting*fontList - ウェルカム・メッセージ用フォント
Dtlogin*labelFont - プッシュ・ボタンとラベル用フォント
Dtlogin*textFont - ヘルプ・メッセージとエラー・メッセージ用フォント
使用可能なフォントを一覧表示するには、次のように入力します。
xlsfonts [-options] [-fn pattern]
次の例は、ウェルカム・メッセージを大きいフォントで表示します (指定する値は、必ず一行に入れてください)。
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 - X サーバ環境
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
ディスプレイ名の : (コロン) や . (ピリオド) などの特殊文字は、_ (下線) に置き換えることができます。
デフォルトでは、ログイン・サーバが、ユーザごとに X サーバのアクセスをコントロールできるようにします。ログイン・サーバは、HomeDirectory/.Xauthority ファイルに格納され保護されている権限データに基づきます。このファイルを読み込めるユーザだけが X サーバに接続できます。通常、これが望ましい X サーバ・アクセス・コントロールの方法です。
ユーザベースのアクセス・コントロールの代わりに、ホストベースのアクセス・コントロールも可能です。この方法を使用すると、ホストが X サーバへのアクセスを与えられている場合、そのホストのすべてのユーザが X サーバに接続できます。ホストベースのコントロールを使用するのは、次のような理由からです。
古い R2 および R3 の X のクライアントは、ユーザベースのアクセス・コントロールでは X サーバに接続できない
安全性が確立されていないネットワークでは、ネットワークの X クライアントと X サーバとの間で渡される認証データを盗まれる可能性がある
Xconfig Dtlogin*authorize リソースは、ユーザベースの X サーバ・アクセス・コントロールを使用することをログイン・サーバに通知します。ホストベースのアクセス・コントロールを使用する場合は、次のように承認リソース値を False に変更します。
Dtlogin*authorize: False
ログイン・サーバによって起動されたときに 1 つ以上の環境変数と値を X サーバに指定する場合は、Xconfig の Dtlogin*environment リソースを使用して指定できます。
Dtlogin*environment: VAR1=foo VAR2=bar
たとえば上記は、ローカルな X サーバ・プロセスで変数 VAR1 および VAR2 を使用できるようにします。これらの変数も、Xsession および Xfailsafe スクリプトへエクスポートされます。
ログイン画面からデスクトップにログインする場合、ユーザ・セッションは、[オプション] メニューの [言語] サブメニューから選択されたロケールで実行されます。言語を選択しない場合、ログイン・サーバはデフォルト言語を使用します。Xconfig の Dtlogin*language リソースを次のように設定することにより、デフォルト言語の値をコントロールできます。
Dtlogin*language: Ja_JP
システムのマニュアルを調べて、システムにインストールされている言語を判定してください。
デフォルトでは、ログイン・サーバは、システムにインストールされたすべてのロケールのリストが入っているログイン画面の [言語] メニューを作成します。そのリストからロケールを選択すると、ログイン・サーバは選択されたロケールでログイン画面を再表示します。その後ログインすると、ログイン・サーバはそのロケールでデスクトップ・セッションを起動します。
Xconfig の Dtlogin*languageList リソースを変更することにより、独自の言語のリストを指定できます。
Dtlogin*languageList: En_US De_DE
上記のように指定すると、ログイン・サーバは En_US および De_DE だけをログイン画面の [言語] メニューに表示します。
X サーバの起動後でログイン画面が表示される前に、ログイン・サーバは 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 スクリプトは、直接変更しないでください。
ユーザのデスクトップ・セッション起動のカスタマイズの方法については、第 2 章「セッション・マネージャの構成」を参照してください。
ログイン画面の [オプション] メニューの [セッション] サブメニューから [復旧セッション] を選択する場合、ログイン・サーバは 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 スクリプトへエクスポートする環境を提供します。この環境は表 1-1 で説明します。これら以外の変数も、ログイン・サーバによってエクスポートされることがあります。
表 1-1 ログイン・サーバ環境
環境 変数 |
Xsetup |
Xstartup |
Xsession Xfailsafe |
Xreset |
説明 |
---|---|---|---|---|---|
X |
X |
X |
X |
デフォルト言語または選択された言語 |
|
X |
X |
X |
X |
(省略可能) 代替 X 許可ファイル |
|
X |
X |
X |
X |
Dtlogin*userPath リソース (Xsession、Xfailsafe) または Dtlogin*systemPath リソース (Xsetup、Xstartup、Xreset) の値 |
|
X |
X |
X |
X |
X サーバ接続番号 |
|
X |
X |
X |
X |
/etc/passwd に指定されたシェル (Xsession、Xfailsafe) または Dtlogin*systemShell リソース (Xsetup、Xstartup、Xreset) |
|
X |
X |
X |
X |
Dtlogin.timeZone リソースまたはシステムで決められたタイムゾーンの値 |
|
|
X |
X |
X |
ユーザ名 |
|
|
X |
X |
X |
/etc/passwd に指定したホーム・ディレクトリ |
|
|
X |
X |
X |
ユーザ名 |
ログイン・サーバは、Xsession スクリプトと Xfailsafe スクリプトの実行時に PATH 環境変数を設定します。これらのスクリプトの代替パスを指定できます。
Xconfig に Dtlogin*userPath リソースを設定します。次に例を示します。
Dtlogin*userPath:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11
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