computer.unix - UNIX

UNIX 関連の情報交換ボード

#83: Cygwin
Date: 2002/10/21 14:21:47 Mon Author: GOO (tnet0077)
Parent Article: #82: Cygwin
Child Article: #84: Cygwin #85: Cygwin

>   最近、Cygwin、始めました。  Cygwinな方、いますか?

なんと奇遇な、先週末から本格的にはじめました(^^;
グラフィック関連を Cygwin/XFree86 でやるんですか?
私の場合の目的は X 専用のプログラムをリモートで動かさなければいけない時の
ための X サーバです。と言うか普段全く X を使っていないので
初めてづくしです... 画面表示する方が X サーバ、一つ一つの
表示させるプログラムの方が X クライアントだと言う事も
初めて知ったくらいです(^^;

主に ssh の X Forwarding でサーバサイドの X 専用プログラム、
たとえば VMWare-Toolbox の設定ツールとか、Oracle の Linux
インストーラとかですが、簡単に使えてしまって驚いています。
と言うか、Cygwin のインストーラで XFree86 を選ぶだけで
こんなに安定したフリーの Windows 用 X サーバができてしまうと
他の商用 Windows 用 X サーバは商売あがったりになっちゃうんじゃ...

ssh で使うだけの環境であれば XFree86 本体は必要なく、
xauth さえ動く環境であれば使えるようです。
FreeBSD の場合は XFree86-clients パッケージに xauth が入っていて
依存パッケージは XFree86-libraries, freetype2, imake でした。
RedHat の方はまだ見つけられていません。どれに入っているんだろう...
できるだけ余計なものは入れたくないんですが...

けど、こういう環境だと一つ問題になるのが su で root に
なったあとに動作させたい X プログラムが少なからずあるのに
ssh の作る疑似 X サーバのアクセス制御に使われる xauth が
xhost と違ってユーザベースの認証のため、su 後には表示できない
(疑似 X サーバにアクセスできない)と言う状態になってしまいました。
調べてみるとこれはかなりはまる場所みたいですね。su の時だけ
xhost + などとして localhost からのアクセスをすべて許可しちゃう
ような話が結構あったりで、他の人が勝手に画面に表示したりできてしまう
状態なのが何ともはやと言った感じでした。

とりあえず DISPLAY 環境変数と .Xauthority(クッキー) を持ってくれば
表示はできるのでこの引き継ぎをどうするかと言うところです。
http://www.linux.or.jp/JF/JFdocs/Remote-X-Apps-7.html
ここのように su をスクリプトでラッピングしてしまうしかないのかと思っていたら
テストで VMWare に入れていた RedHat7.3(GNOME 入り)で
やってみたらなんの設定もなく su 後に画面表示ができます。
調べてみると、/root/.xauthxxxxxx(xxxxxx はランダム?)
と言うファイルができていて XAUTHORITY 環境変数にこのファイルの
path が入っていました。このファイルがクッキーとして指定されています。
中身は su 前の ~/.Xauthority と同じです。DISPLAY 環境変数も
引き継がれています。これは su が何かやっているのか?と思い、
調べていると pam_xauth.so と言う PAM モジュールがひっかかりました。
PAM もよく知らなかったのですが、要するに認証関係をモジュールで
組み合わせて使えるようなもののようで、/etc/pam.d/su をのぞくと

session optional /lib/security/pam_xauth.so

と言う行がありました。試しにこの行をコメントアウトしてみると、
クッキーの引き継ぎと DISPLAY の引き継ぎが行われなくなりました。
su が面倒を見る上、ランダムなファイル名のために複数の画面で
root になって作業していてもそれぞれに正しく表示できます。
他人のクッキーがわかるので DISPLAY がわかれば画面に表示させることは
可能ですが、それはまあ root なのでしょうがないと言うことで、
他の一般ユーザ同士でのセキュリティはこれでかなり向上します。

この su に xauth の PAM モジュールを付ける方法は
他の環境でも適用したいところです。RedHat7.2 でもこうなっていましたっけ?
X 無しでインストールしたものはなっていないみたいですが...
GOO
E-Mail: goo_n@hotmail.com

■ この記事のコメントを書く

■ この書き込みを削除/復活します(投稿者のみ可)
■ この書き込み近辺の一覧表示へ

【最新20記事 [一覧] [ツリー] [一括] 】 【最新の記事は 89 番です.】
【次の20記事 [一覧] [ツリー] [一括]
番から 番までの記事を
UNIX に新しい記事を

T-Net ■ メインページ