vine-users ML アーカイブ



[vine-users:072429] startx か らX を立ち上げると xserverrc を読みません

  • From: 吉見 隆 <tak-yoshimi@xxxxxxxxxx>
  • Subject: [vine-users:072429] startx か らX を立ち上げると xserverrc を読みません
  • Date: Fri, 15 Jul 2005 13:29:09 +0900
吉見と申します。

linux 3.1 を使っています。

仕事場で使用しているマシンで、リモートマシンで走らせるXクライアントをX
window 上に開かせる必要があります。

ログインはテキストで行い、そこでstartx で起動します。
しかし、xauth などの設定を行ってもできません。

具体的には、
○ ps eaxwf |grep /usr/X11R6/bin/X
とすると、以下のように表示される
 3607 ?        S    268:27              \_ /usr/X11R6/bin/X :0 -dpi 96
-nolisten tcp

○ remote マシンで、kterm -display local:0.0 としてもエラーになる。

などです。X クライアントが使用するポート 6000 が開いていないのです。セ
キュリティ上は問題あるようですが、仕事上リモートマシンのクライアントの表
示ができないと困るのです。


詳しくしらべると、原因はstartxにあることがわかりました。
startxはシェルスクリプトで、引数をつくってxinitを呼んでいるのですが、そ
のなかで、

serverargs="-dpi 96 -nolisten tcp"

として -nolisten tcp をセットしています。

本来、必要ならば $(HOME)/.xserverrc を指定して、その中でオーバーライドで
きると man ページには書かれているのですが、これは現在のものではできません。


(1) startx 内で、$HOME/.xserverrc は userserverrc という変数にセットされ
ます。
(2) 次に defaultserverargs にassignされます
(3) 次に  server にassignされます
(4) 最後に  xinit $client $clientargs -- $server $display $serverargs
として xinit の引数になります。

しかし、(3) でserverにassign されるときには、
(3a) server が空
かつ
(3b) serverargs と display が空
という条件があるのですが、このserverargs は絶対に空にならないのです!

最初に、
serverargs="-dpi 96 -nolisten tcp"

として固定文字列が与えられたあと、何回か変更される文があるのですが、すべて
serverargs="$serverargs $1"
という変更であるため、長くなることはあっても空になることは金輪際ないので
す。したがって(3)の手順は絶対に実行されず、存在の有無にかかわらず
$(HOME)/.xserverrcも /etc/X11/xinit/xserverrcも参照されません。(ちなみ
に、後者はシステムに存在していません。man には書かれていますが)

つまり、startx を使う以上 -nolisten tcp オプションはどうにもいじれないの
です。

逃げ方としては、
(A) startx を書き換えて nolisten tcp をはずす
(B) どうせ中では xinit を呼んでいるだけなので、startx を使わずに
xinit /etc/X11/xinit/xinitrc -- /usr/X11R6/bin/X -dpi 96
とかして立ち上げる
(B)' 上のコマンドをalias で startx にしてしまう
などが考えられます。

しかし、そもそも man ページで $(HOME)/.xserverrcや
/etc/X11/xinit/xserverrcについて書かれているのにそれが使えなくなっている
のは、バグではないのでしょうか?

ポート6000のセキュリティ問題のためでしょうか?
もしそうだとしても man ページには反映すべきです。


もしポート6000がセキュリティ上問題であけることが望ましくないのであれば、
その状態で remote の X クライアントを表示させることは可能なのでしょうか?


(補足)
ちなみに、startx 内では、最後に xinit にわたる変数 display が正しく初期
化されていません。


-- 
吉見 隆
  独立行政法人 産業技術総合研究所
  知能システム研究部門 
  3次元視覚研究グループ
mail: tak-yoshimi@xxxxxxxxxx
Tel: 029-861-5958   内線 9-31-45958