web-dev-qa-db-ja.com

Linux環境変数DISPLAYおよびXAUTHORITYはどのように使用されますか?

これらの2つの変数はXWindowシステムでどのように使用されますか?

Ubuntu 9.10ホストで、XAUTHORITYを何かに設定してからGUIプログラムを実行しようとすると、GTK-WARNING ***: cannot open display :0.0を受け取ります(デフォルトでは、DISPLAYは:0.0に設定されています)。このエラーメッセージの原因は何ですか?

3
theactiveactor

DISPLAYは、ホスト、グラフィックスコントローラー、および物理ディスプレイを指定するためにX WindowSystemによって使用されます。デフォルトの:0.0は、ローカルホスト(多くの場合、TCP/IPソケットではなくUnixドメインソケット)、最初のグラフィックスコントローラーおよび最初の物理ディスプレイが接続されていることを意味します(両方とも0)。別のホスト上のXサーバーに接続している場合は、そのホストの名前またはIPアドレスを指定します。別のコントローラーまたはディスプレイを使用している場合は、その番号を指定します。

XAUTHORITYはxauthによって使用され(c4747pで言及されているように)、X特権トークンを含むファイルの名前が含まれています。

XAUTHORITYファイルが不良であると、Xサーバーに接続するためのアクセス許可がないため、おそらくメッセージが表示されます。

5
mpez0

DISPLAYは、どの「ディスプレイ」で実行するかをプログラムに指示します(Linuxには通常、複数の仮想コンソールがあります)。 :0がデフォルトです。さらに設定できます。 XAUTHORITYは、xauthシステムに関連しています。 xauthシステムは、rootとして実行されるXサーバーに接続するための特権を管理します。プログラムは、XAUTHORITYで指定していると思われる権限ファイルを見つけることができないため、接続する許可を取得できません。

2
c4757p

c4757pは正しいです。

XAUTHORITYを設定した後にGUIプログラムを起動できない具体的な理由は、すでにhas値(ログイン時にディスプレイマネージャプログラムによって自動的に割り当てられる)であり、それを改ざんすると、承認の変更で問題が発生します。プログラムを起動することはできますが、別のユーザーとして何かを実行すると問題が発生します(したがって、管理プログラムは起動しません)。

1
Max E.