過去のナビゲーションリンクのスキップSecure Global Desktop 4.40 管理者ガイド > アプリケーション、ドキュメント、ホスト > X 認証が有効になっているときにアプリケーションの起動に失敗する

X 認証が有効になっているときにアプリケーションの起動に失敗する

デフォルトの SGD インストールでは、X 認証が有効になっています。X 認証に問題がある場合には、ユーザーはアプリケーションを起動できません。X 認証が原因でアプリケーションの起動に失敗した場合は、アプリケーション起動ダイアログの詳細画面およびログファイルに「Failed to find xauth」または「Attempt to run xauth failed」というメッセージが表示されます。

次のチェックリストを使用して、X 認証の何が原因でアプリケーションの起動に失敗しているのかを判断してください。

X 認証がアプリケーションサーバーにインストールされていますか。

SGD で X 認証を使用するには、すべてのアプリケーションサーバーに xauth がインストールされている必要があります。

xauth がインストールされていない場合、インストールするか、SGD Administration Console の「グローバル設定」»「セキュリティー」タブで「X ディスプレイの X 認証」チェックボックスの選択を解除します。

このようにすると、アレイ全体の X 認証が無効になります。

SGD は xauth バイナリを見つけることができますか。

アプリケーション起動ダイアログまたはログファイルに「Failed to find xauth」というメッセージが表示される場合は、SGD が xauth バイナリを見つけることができません。デフォルトでは、SGD は次の場所で xauth バイナリを検索します。

  • /usr/bin/X11/xauth
  • /usr/X/bin/xauth
  • /usr/X11R6/bin/xauth
  • /usr/bin/X/xauth
  • /usr/openwin/bin/xauth

xauth バイナリが別の場所にある場合は、その場所を /opt/tarantella/var/serverresources/expect/vars.exp ログインスクリプトに追加する必要があります。「set xauthcmds」で始まる行を探します。

xauth バイナリが 1 箇所だけにある場合は、vars.exp ログインスクリプトから不要な場所を削除すれば、アプリケーションの起動時間を短縮できます。

ユーザーはアプリケーションサーバーに UNIX アカウントを持っていますか。

ユーザーがアプリケーションを起動すると、SGD X プロトコルエンジンによって Cookie が生成され、アプリケーションサーバー上のユーザーのホームディレクトリの .Xauthority ファイルに保存されます。Cookie は、ユーザーが X ディスプレイに接続する権限を持っているかどうかを検証するために使用されます。

ユーザーがホームディレクトリを持っていない場合は、ユーザーの .Xauthority ファイルに Cookie を保存できないので、そのユーザーを検証することはできません。

次のいずれかの操作を行えます。

  1. アプリケーションサーバーにユーザーの UNIX アカウントを作成します。
  2. SGD Administration Console の「グローバル設定」»「セキュリティー」タブで「X ディスプレイの X 認証」チェックボックスの選択を解除して、X 認証を無効にします。
  3. Cookie が一時ディレクトリに保存されるように、ログインスクリプトを編集します。

編集を必要とする起動スクリプトは、/opt/tarantella/var/serverresources/expect/procs.exp です。
次の行を変更します。
execute "[lindex $xauthcmds $i] add $XDISPLAY . $xauthcookie\n"
次のように変更します。
execute "[lindex $xauthcmds $i] -f /tmp/.xauth$username add $XDISPLAY . $xauthcookie\n"

詳細なログ

前述のチェックリストを使用しても X 認証の問題を解決できない場合は、/opt/tarantella var/log にあるログファイルを確認します。このログファイルは、execpePID_error.log です。

このログファイルでも問題を解決できない場合は、ログに記録される情報量を増やすことができます。それには、SGD アレイのログフィルタを修正し、ログインスクリプトでのデバッグを有効にします。

ログフィルタを修正するには、次のコマンドを使用します。

過去のコマンド構文またはプログラムコードのスキップ$ tarantella config edit --tarantella-config-execpeconfig-logfilter

デフォルトインストールでは、次のフィルタが設定されています。

過去の書式設定済みテキストのスキップexecpe/*/*error,pem/*/*error,launchhelper/*/*error

フィルタを次のように変更します。

過去の書式設定済みテキストのスキップexecpe/*/*,pem/*/*,launchhelper/*/*error

ログインスクリプトでのデバッグを有効にするには、/opt/tarantella/var/serverresources/expect/unix.exp ファイルを編集し、startdebug 行のコメントを解除します。

関連トピック