xauth(1) X の認証ファイルを扱うユーティリティ

書式

xauth [ -f authfile ] [ -vqib ] [ command arg ... ]

説明

xauth プログラムは X サーバと接続するための認証情報の編集と表示に 使用する。このプログラムは通常、あるマシンから認証レコードを取り出し、 (リモートログインや他のユーザへのアクセスを許可する場合のように)他のマ シンの認証レコードにマージするのに使用される。次に述べるコマンドは xauth コマンド行から対話的に入力するか、スクリプト内で指定する。 このプログラムを generate コマンドを使う時以外には X サーバに 接続しない点に注意すること。 通常、xauth は最初に認証ファイルを作成するためには使われない。 それは xdm が行う。

オプション

xauth では次のオプションを使うことができる。 オプションは別々に指定する(例えば -q -i)か、繋げて指定 する(例えば -qi)。
-f authfile
このオプションは使用する認証ファイルの名前を指定する。デフォルトでは、 xauth は XAUTHORITY 環境変数で指定されたファイルまたはユーザの ホームディレクトリの .Xauthority を使用する。
-q
このオプションを指定すると xauth が出力を控えて動作し、余計な 状態メッセージを出力しない。 xauth のコマンドをコマンド行から与えた場合と、標準出力が端末に リダイレクトされていない場合には、このオプションがデフォルトで有効となる。
-v
このオプションを指定すると、xauth は動作の表示を詳しく行うように なり、色々な動作の結果(例: レコードをいくつ読み書きしたか)を出力する。 xauth のコマンドが標準入力から与えられた場合と、標準出力 が端末にリダイレクトされている場合は、このオプションがデフォルトで有効 となる。
-i
このオプションを指定すると、xauth は全ての認証ファイルのロックを 無視する。通常、xauth は他のプログラム(通常は xdm や他の xauth)によるロックがかかった認証ファイルの読み込みや編集を拒否する。
-b
このオプションを指定すると、xauth は続行する前にファイルのロック を解除しようとする。 このオプションは無意味になったロックを取り除く場合にだけ使用すること。

コマンド

次のコマンドを使って認証ファイルを操作することができる:
add displayname protocolname hexkey
指定したディスプレイに対する認証エントリー (与えたプロトコルと鍵データを使う)を認証ファイルに追加する。 データは長さが偶数の 16 進数で指定され、それぞれの 16 進数はふたつずつ のペアとなってオクテットを表す。 各ペアの最初の桁はオクテットの上位 4 ビットを与え、 次の桁は下位の 4 ビットを与える。 例えば、32 文字の 16 進数の鍵は 128 ビットの値を表す。 プロトコル名が単にひとつのピリオドである場合には、これは MIT-MAGIC-COOKIE-1 の省略形として扱われる。
generate displayname protocolname
[trusted|untrusted]" [timeout seconds] [group group-id] [data hexdata]

このコマンドは add に似ている。主な違いはユーザに鍵データを与えるよ うに求めないで、displayname で指定したサーバに接続し、SECURITY 機能拡張を使って鍵データを取得し、認証ファイルに格納する。サーバに接 続できない場合や、SECURITY 機能拡張が使用できない場合には、コマンドは 失敗する。そうでない場合には、与えたプロトコルを使っている指定した ディスプレイ用の認証エントリー認証ファイルに追加される。プロトコル名が ただひとつのピリオドである場合、これは MIT-MAGIC-COOKIE-1 の省略形 として扱われる。

trusted オプションを使うと、この認証を使用して接続するクライアント は通常通り、ディスプレイ上で制限なしに実行できる。untrusted を 使用すると、この認証を使って接続するクライアントは信頼されず、信頼され たクライアントが持つデータの窃盗や改竄を行うことができない。信頼されな いクライアントに課せられた制限の詳細については SECURITY 機能拡張の仕様 を参照すること。このオプションのデフォルト値は untrusted である。

timeout オプションは、この認証の有効時間を秒単位で指定する。認証 がこの期間以上使用されないまま(クライアントが接続しない)の場合、サーバ は認証を削除し、それ以降は、この認証を使った接続の試みは失敗する。サーバ による削除では、認証ファイル内の認証エントリーの削除は行われない点 に注意すること。timeout のデフォルト値は 60 秒である。

group オプションは、この認証で接続するクライアントの属する アプリケーショングループを指定する。詳細についてはアプリケーショングループ 機能拡張の仕様を参照すること。デフォルトではどのアプリケーショングループ にも属していない。

data オプションはサーバが認証を生成するために使用するデータを指定 する。これは認証ファイルに書き込まれるデータと同じではない点に 注意すること。このデータの解釈は認証プロトコルに依存する。hexdata の書式は add コマンドの中に記述する hexkey と同じである。 デフォルトではデータを送信しない。

[n]extract filename displayname...
指定したディスプレイ毎の認証エントリーが指定したファイルに書き込まれる。 nextract コマンドを使用すると、認証エントリーは(危険のない電子メール のような)バイナリ形式でない送信に向いている数値書式で書かれる。 取り出されたエントリーは mergenmerge コマンドを使って読 み戻すことができる。ファイル名がハイフンひとつだけ ('-') である場合は、 エントリーは標準出力に書き出される。

[n]list [displayname...]
指定したディスプレイ毎(ディスプレイ名が無い場合は全て)の認証エントリー が標準出力に出力される。nlist コマンドを使った場合は、 認証エントリーは nextract コマンドの説明で示した数値形式で表示される。 そうでない場合には、文字列形式で表示される。 鍵データは常に add コマンドで説明した16進数形式で表示される。
[n]merge [filename...]
認証エントリーが指定したファイルから読み込まれ、認証データベースに マージされる。 この際、既存のエントリーに一致するエントリーは上書きされる。 nmerge コマンドを使用する場合は、 extract コマンドの項目で 説明した数値形式が使われる。 ファイル名がダッシュひとつだけ(`-')である場合、標準入力が以前に 読み込まれていなければ、エントリーは標準入力から読み込まれる。
remove displayname...
指定したディスプレイとマッチする認証エントリーは認証ファイルから取り除 かれる。
source filename
指定したファイルは、実行する xauth コマンドを持つスクリプトとし て扱われる。空白行とシャープ(#)で始まる行は無視される。 ファイル名が単にダッシュひとつだけ(`-')である場合、標準入力が既に 読み込み済みでなければ、エントリーは標準入力から読み込まれる。
info
認証ファイルを記述する情報、変更がなされているかどうか、xauth コ マンドの読み込み元を標準出力に出力する。
exit
変更があった場合は認証ファイルは(許可があれば)書き出され、プログラムは 終了する。ファイルの終りは暗黙の exit コマンドとして扱われる。
quit
変更を無視してプログラムを終了する。割り込みキーを押しても同じ結果が得 られる。
help [string]
与えた文字列で始まるすべてのコマンド(省略したときは全コマンド)の説明を 標準出力に表示する。
?
利用できるコマンドの簡単な一覧を標準出力に表示される。

ディスプレイ名

add, [n]extract, [n]list, [n]merge, remove で用いるディスプレイ名では、環境変数 DISPLAY や共通の -display コマンド行引き数と同じ形式が使われる。ディスプレイ 固有の情報(スクリーン番号など)は必須ではなく無視される。 同一マシン上での接続(ローカルホストソケット、共有メモリ、IP ホスト名 の localhostなど)は hostname/unix:displaynumber の形式で参照されるので、異なるマシンに対するローカルのエントリーは ひとつの認証ファイルに格納することができる。

xauth のもっとも一般的な使用法は、現在のディスプレイのエントリー を取り出し、これを他のマシンにコピーして、リモートマシンのユーザの認証 ファイルにマージすることである:

        %  xauth extract - $DISPLAY | rsh otherhost xauth merge -

次のコマンドはサーバ :0 に接続し、MIT-MAGIC-COOKIE-1 プロトコルを使用 して認証を作成する。この認証で接続するクライアントは信頼されない。

        %  xauth generate :0 .

環境変数

xauth プログラムは次の環境変数を使用する:
XAUTHORITY
-f オプションを使用していない場合に認証ファイルの名前を得る。
HOME
XAUTHORITY が定義されていない場合にユーザのホームディレクトリを得る。

ファイル

$HOME/.Xauthority
XAUTHORITY が定義されていない場合のデフォルトの認証ファイル。

バグ

安全でないネットワークを使っているユーザは、マシン間で認証エントリーを コピーする際には暗号化されたファイル転送の機構を注意深く使用するべきで ある。 同様に、MIT-MAGIC-COOKIE-1 プロトコルは安全でない環境ではあまり 役に立たない。セキュリティ強化に留意しているサイトでは、 Kerberos のような暗号化認証機構を使用する必要があるだろう。

現在、プロトコル名では空白が使用できない。そんなひねくれた仕様に しなくても、クォートを追加できたはずであるが。

著者

Jim Fulton, MIT X Consortium