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

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

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

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

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

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

xauth がインストールされていない場合は、xauth をインストールするか、または Array Manager の「Security properties」パネルで X 認証を無効にする必要があります。

このようにすると、アレイ全体の X セキュリティーが無効になります。

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

アプリケーション起動ダイアログに「Failed to find xauth」というメッセージが表示される場合は、Secure Global Desktop が xauth バイナリを見つけることができません。デフォルトでは、Secure Global Desktop は次の場所で 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 アカウントを持っていますか。

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

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

次のいずれかの操作を行うことができます。

  1. アプリケーションサーバーにユーザーの UNIX アカウントを作成します。
  2. Array Manager の「Security properties」パネルで 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 です。

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

ログフィルタを修正するには、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 行のコメントを解除します。

関連トピック