CentOS5.4のGUIをVNCでリモート操作する

SSHも便利なのだろうが、クライアントの設定も必要なので使ってない。
基本的な設定などはWebminですむので特に問題はないが、あえてGUIで操作したいときにはVNCが重宝する。
自宅のネットワークにあるLinuxは全てVNCで操作しているが、たとえば手元にない場合、VNCを使うにはどうすればいいのか試してみた。
Google先生が教えてくれたサイトの情報は古いものやどうでもいい質問掲示板などがヒットして、はっきりいって役にたたなかった。

まずVNCの基本からおさらい。
通常はVNCうを使ったリモートデスクトップ機能でログイン中のユーザの画面をそのまま扱えるが、これはログインしていなければならない。うっかり再起動したものなら、このリモートデスクトップ機能は使えなくなり、まったく操作できなくなってしまう。
そこで、リモートからログイン自体が可能にならなければならない。

とりあえず「vncserver」と入力してvncserverを起動してみると、初回ならパスワードを設定するよう求められる。
よくわからないまま放置しているがユーザごとにパスを変えられるのかはよくしらない。

次に、起動方法の設定を行う
ディスプレイ番号1をrootでログインする場合、「/etc/sysconfig/vncservers」に以下のように追加する

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"


あらかじめコメントアウトされている2行をコピーして数値を書き換えるだけで問題ないだろう。
それでサービスを再起動する

/etc/init.d/vncserver restart

VNCサーバーの起動に成功すれば、手順として7割終了といってもいいだろう。
複数のディスプレイをサービスで起動する方法が良くわからないので、誰か教えてください。

ちなみに0はリモート用に予約されているのか使えないので1からとなる(みたい)
アクセスするにはこのディプレイ番号に5900を足したポートに接続することになる。
つまり1なら5901ポートなので、ファイアウォールの穴を開けるのを忘れないようにする。
オプションいついては良くわからないのでそのままにしてある。(だめじゃん)
かいても最後の番号が有効になるらしい。

さて、ここでVNC Viewerでリモート接続してみる。
サーバのIPが192.168.11.2だとすると「192.168.1.2:5901」で接続する。
接続できればパスワードを求められるので入力するとログインできる。
しかし、GNOMEになれているとTwmという見慣れないGUIが表示される。
GUIなので、ターミナルからコマンドを入れれば何でも起動するのだけれど、メニューがほしい。
というかGNOMEが使えればというか使えないと意味がないので、使えるようにする。

今までの設定はVNC Serverへのログインで、そのユーザではどう表示するかの設定をする必要がある。
通常と同じにしてくれればいいのに、いちいち設定しないとだめなのは少し面倒くさい。(やり方があるのかも?)
設定ファイルは「/root/.vnc/sstartup」にあるが、隠しファイルを表示しないと見えないので注意。
「twm &」とある行をコメントアウトして「gnome-session &」と追加する。

結論から言えばここまでで成功ですが、これより理解できないことが多いので箇条書きに書いておく。

GNOMEでログインできるのは1プロセスのみ?
すでにrootでログインしていてGNOMEを使っているとVNCではGNOMEが使えないので、twmの出来損ないのような画面になる。(「twm &」に戻せばtwmで正常になる)
ログインs知恵いるユーザをログアウトさせても、GNOMEが使えない状態が残る。
システムをリブートして誰もログインせずにリモートからつなごうとすると5901ポートではなく5900ポートでリモートから接続できるようになっている。そしてGNOMEが使える。さらに、直接ログインするとそのデスクトップのリモート機能は使えない。つまり、先にリモートでログインしてしまうとリモートデスクトップ機能はしぬ。しかも、うっかりリモートをログアウトするとリモートからは永久にログインできなくなる・・・

つまり、リモートでログインしたければ、直接ログインしてはならない、うっかりログインしてしまった場合は、一度ログアウトしてログインしなおしてリモートデスクトップ機能で共有するしか方法がないようです。

この現象はGNOMEを選択した場合に限られ、twmのままであれば関係ないようです。

ちなみにユーザが違う場合は・・・やっぱり同じ現象でだめでした。
つまり・・・どういうことだ?
SSHじゃないと誰もログインしていないマシンをリモートで操作することはできないのか?
な訳ないよな・・・
だんだん混乱してきた。

vncserversの設定でroot以外を設定するとリモートからのログインができなくなった。
これはrootでvncserverを起動したからで、ほかのユーザでログインするにはそのユーザでvncserverを起動してパスワードを設定しなければならないようだ。
つまり、rootユーザ限定の前提で考えた場合、
rootでvncserverのパスを設定する。
vncserversの設定はパス設定済みのユーザを指定しなければならない。
vncserversで設定したユーザで一度ログインしてしまうとリモート系の機能は麻痺する(らしい)

う~ん、わかったようなわからないままのような。
まぁ、リモートで操作する前提なら直接ログインすることはないだろうから・・・
でもいざというときが怖いですね。やっぱりSSH入れろってか?orz=3