プロが教えるわが家の防犯対策術!

VNCServerをSolaris9 V100 (UltraSPARC-IIe)にインストールしたいのですが、Unix系のOSに関して全くの初心者なので、なかなか前に進めません。
今のところ、VNCのサイトから下記のファイルを自分のPCにダウンロードして来ましたがこのどちらかのファイルで良いのか、そしてその先はどうすればいいのか分かりません。

また、調べているうちに、サンのコンパニオンCDからもVNCをインストールできると知り、コンパニオンCDとSFWvnc.bz2.sdm というファイルをPCにそれぞれダウンロードしてCDに焼いて見たのですがうまくいきません。
また、実際どちらの方法がベストなのか分かりません。

VNCサイトよりダウンロード
vnc-4_1_2-sparc_solaris.tar
vnc-4_1_2-sparc_solaris.pkg

サンよりダウンロード
software_companion_sparc.iso.bz2
SFWvnc.bz2.sdm

現在Solaris9はネットワークに接続されていません。モニターもキーボードも無く、PCからコンソールケーブルのみで接続されています。

cd /cdrom/s9_software_companion/components/sparc/Packages というコマンドも実行してみましたが、だめでした。

# bunzip2 /cdrom/cdrom0/sfwvnc_b.sdm
bunzip2: Can't guess original name for /cdrom/cdrom0/sfwvnc_b.sdm -- using /cdrom/cdrom0/sfwvnc_b.sdm.out
bunzip2: Can't create output file /cdrom/cdrom0/sfwvnc_b.sdm.out: Read-only file system.


どなたかどういうステップで進めていけばいいのかアドバイスお願いいたします。

A 回答 (10件)

>Ethernet ケーブルで転送できなかったのはSolaris側からRefuse


自信はありませんが、/etc/hosts.denyや/etc/hosts.allowでアクセス制限があるかもしれません。

何はともあれ、CDからコピーできたとのこと。そして、vncinstallまで実行できたとのこと。

私も、/etc/inet/servicesと/etc/inet/inetd.confはviで編集しました。というより、エディタはviしかわかりません。emacesは知りません。
また、viのカーソルも教科書どおり動きました。(solaris10で確認済み)
カーソルが教科書どうりに動いてくれないのはおかしいですね・・・。

編集前に念のため、servicesとinetd.confをコピーしておくべきでしょう。例えばservices0やinetd.conf0などに。
また、vi使用中におかしなことが起こればetc→:q!コマンドで保存せずにviを強制終了できます。

# vi /usr/local/bin/vncserverで、vncserverファイルを修正。
変更前:#!/usr/local/bin/perl
変更後:#!/usr/bin/perl

次に、servicesの編集。これは例です。
 vnc-1024x768x8 5952/tcp
を追加。5950とは、solarisの未使用ポート番号。おそらく5950は使われてないので、vncで利用します。

次に、inetd.confの編集。これも例です。
 vnc-1024x768x8 stream tcp nowait nobody (Xvncまでのフルパス) Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 8 -cc 3
solaris10での(Xvncまでのフルパス)は/opt/sfw/bin/Xvncでした。solaris9では不明です。ごめんなさい。

# shutdown -i6 -g10 -yで、solarisを再起動。

以上でsolaris側での設定は終わりだと思います。思いますというのは、私はsolaris10をつかっているので、solaris9ではどうなのかは定かではありません。

あとは、windowsクライアントにvnc viewerを入れればよいでしょう。

この回答への補足

詳しいご説明ありがとうございます。
早速試してみます。windowsPCにvnc viewerはインストールすみですのであとはSolaris側を完了させるよう頑張ります。

補足日時:2008/01/06 00:27
    • good
    • 0

momochangeniさんがsolarisで使っているディスプレイマネージャーを特定し、その設定ファイル(.conf)を見つけなければならないと思います。


私はGNOMEというディスプレイマネージャーを使っているので、その設定ファイルgdm.confをいじった次第です。

この回答への補足

Neutronさま、
何度もなんども、沢山のアドバイスありがとうございました。
ただ一人Neutronさまだけ見捨てずにいろいろとアドバイスしてくれたおかげで、だいぶ前に進むことができました。Solarisの理解も当初に比べればだいぶまし(まだまだお話になりませんが)になりました。またWinSCP3というソフトも教えていただき大変役に立っています。
まだ、目的は達成できていませんので、私ももっと調べていろいろやってみます。
とりあえずディスプレイマネージャーというのが良く分からないので、もうちょっと調べてみます。

もし他にもアドバイスがありませしたらその時は是非宜しくお願いいたします。

補足日時:2008/01/23 23:33
    • good
    • 0
この回答へのお礼

pkginfo コマンドで調べたところGNOME2 というのが出てきました。
しかし私のサーバにある/usr/openwin/lib/X11/xdm/xdm-config とどういう関係がるのかわかりません。
ともかく、/.vnc/xstartup と /usr/local/bin/vncserver に書き足しをしてgnome-session がスタートするようになりました。
まだ完成してませんが、いろいろ本当にありがとうございました。
別の質問を立てさせて頂きますので、もしアドバイスありましたら宜しくお願いします。

お礼日時:2008/01/30 02:48

すみません、変更すべきファイルがまだ他にありました。

ただし、あくまでもsolaris10の場合ですので。
(事前に、/etc/X11/gdm/gdm.confのバックアップをとってください)
/etc/X11/gdm/gdm.confを編集。私が使っているディスプレイマネージャはgdmでした。使っているディスプレイマネージャによってはxdmやkdmかもしれません。確かめください。
gdm.confの[xdmcp] セクションの Enable=false を Enable=true に書き換えます。 あと、私の場合、同じ[xdmcp] セクションの以下の設定を有効にしています(行頭の#を削除)。こちらは必須ではないかもしれません。
HonorIndirect=true
MaxPending=4
MaxPendingIndirect=4
MaxSessions=16
MaxWait=15
MaxWaitIndirect=15
DisplaysPerHost=2
PingIntervalSeconds=15
Port=177
gdm.confの保存後、
# /sbin/telinit 3
# /sbin/telinit 5
を実行。あと、再起動をしておいたほうが良いかもしれません。
これでもうまくいかない場合、同じ/etc/X11/gdm/gdm.confの[daemon]セクションのKillInitClients=trueをKillInitClients=falseにしてみてください。

あと、私はXsetupにchmod o+w /tmp/.X11-unixは書き加えずにVNCを起動できました。

ちなみに、rootのパスの設定は、/etc/default/suファイルのSUPATHに記述することで、solarisを再起動しても設定は有効になると思います。
ただし、ここはwindowsクライアントからVNCの起動には関係ない気がしますが。

この回答への補足

Neutron さま、
ありがとうございます。
早速ファイルを探してみました。 以下の通り私の持っているファイルはxdmのようなのですが、 /etcの中には入ってないみたいです。/usr/openwin/bin/xdm をvi で開けてみようとしましたが、化けた文字がごちゃごちゃ出てくるだけでした。

# find / -name kdm (結果なし)
# find / -name gdm (結果なし)
# find / -name xdm
/usr/openwin/bin/xdm
/usr/openwin/lib/X11/xdm
/usr/openwin/lib/xdm
# find / -name xdm.conf (結果なし)

/X11/xdm と付くのは下記のものくらいしか見つかりませんでした。そして X11/xdm/Xservers を試しに開けてみましたがアドバイス頂いたような記述はありませんでした。

# ls /usr/openwin/lib/X11/xdm
chooser Reset Xaccess Xsession
GiveConsole Startup xdm-config Xsetup_0
libXdmGreet.so StartX Xresources
libXdmGreet.so.1.0 TakeConsole Xservers

ネットでも調べてみましたが、/etc/X11/gdm/gdm.conf に相当するファイルがどれなのか分かりません。

どうかよろしくお願いします。

補足日時:2008/01/22 07:27
    • good
    • 0

# cp /usr/dt/config/Xservers /etc/dt/config


/etc/dt/config/Xserversの最終行を、先頭に#をつけてコメントアウトします。(試してもVNCが起動しない場合、元に戻してください)
 # :0 Local local_uid@console・・・・・・

# cp /usr/dt/config/Xsetup /etc/dt/config/
# vi /etc/dt/config/Xsetup
ファイルの末尾に、 chmod o+w /tmp/.X11-unix を追記してみてください。

また、今一度/etc/inet/inetd.confや/etc/inet/servicesなどを見直してください。例えばinetd.confで、
vnc-1024x768x8 stream tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 8 -cc 3
などと正しく書かれているかなどです。なお、私の場合、
vnc-1024x768x8 stream tcp nowait nobody /opt/sfw/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 8 -cc 3
でした。

経験をもとにアドバイスをしてきましたが、solaris10しか扱っていないので、solaris9とは違うのかもしれません。
従いまして、googleなどで、solaris9 vncと検索するなりして調べてみるのも一つの手でしょう。

この回答への補足

ありがとうございます。
最初のアドバイス 『/etc/dt/config/Xserversの最終行を、先頭に#をつけてコメントアウト』 を実行してVNC接続を試しました。

嬉しい事に今度はログインウインドウが出てきてパスワードを聞いてきます。
そして ps -ef | grep vnc で見たところ VNCが起動しているみたいでした。

しかし、Username がグレーになっていて記入できません。 Password に root のパスワードや他のユーザーのバスワードを入れてみましたが、No pasword configured for VNC Auth というメッセージが出てきて何度やってもだめでした。


そして、chmod o+w /tmp/.X11-unix  をファイルに追記して試して見ましたが結果は同じでした。


ネットでサーチして調べて見ると、『 # /usr/local/bin/vncserver でサーバ側からVNCを起動すると初回のみパスワードを聞いてくる 』 と出てましたが、私の場合はPATHを変えないと、vncserver: couldn't find "xauth" on your PATH. というエラーが出てパスワードは聞いてきません。


どうかよろしくお願いします。

補足日時:2008/01/20 01:49
    • good
    • 0
この回答へのお礼

更にいろいろと調べてみました。
/tmp/.X11-unix というファイルが存在しない見たいなのですが、これがパスワードの問題の原因でしょうか?

# find / -name *X11-unix  と実行して見ましたがなにも出てきません。
もしそうだとすれば /tmp/.X11-unix はどうすればいいのでしょうか?

どうぞよろしくお願いします。

お礼日時:2008/01/21 01:46

返事遅れてすみません。



以下をお試しください。うまくいかなかったら申し訳ございません。
# ps -ef | grep inet で、inetdのプロセス番号を探す。
# kill -HUP (inetdのプロセス番号)
そして、windowsクライアントからVNCViewerを起動。

ちなみに、私が今までアドバイスしたことは、クライアントからの接続要求があったときにsolarisのVNCサーバーが起動する仕組みです。
従いまして、通常はsolarisにはVNCサーバーは起動していないと思います。

この回答への補足

アドバイスありがとうございます。
早速neutronさんのアドバイスどおり実行してみましたが、だめでした。
以下の通りです。
# ps -ef | grep inet
root 180 1 0 23:28:54 ? 0:00 /usr/sbin/inetd -s
root 431 354 0 23:50:38 console 0:00 grep inet
# kill -HUP 180
そしてWindowsからVNCで接続を実行、しかしThe connection closed unexpectedly でした。
 

そして、調べてみつけた下記のコマンドを実行してみました。(ただ、これがどういう意味なのか今ひとつつかめません)
#PATH=/bin:/usr/sbin:/usr/bin:/usr/dt/bin:/usr/local/bin:/usr/local/sbin:/usr/ccs/bin:/usr/ucb:/opt/sfw/bin:/usr/openwin/bin

そして # echo $PATH でみるとPATH以下のものがでてきます。

そして usr/local/bin/vncserver を実行すると
Starting applications specified in //.vnc/xstartup
Log file is //.vnc/netlab1:1.log
というのが出てきて、クライアントから xx.xx.xx.xx:1 でのみVNCできました。
しかし xx.xx.xx.xx:50 ではだめでした。しかも、root でしか接続できませんでした。
また、リブートすると # echo $PATH で表示されるものが  /usr/sbin:/usr/bin だけになってしまい、VNCの接続が出来なくなってしまいます。


これだと、neutronと同じ、クライアントからの接続要求があったときにsolarisのVNCサーバーが起動する仕組みが出来てないのでこまります。
また、root 以外のユーザで接続できるようにしないといけないのですが、この2件どこが問題なのでしょうか?

Neutron さんのアドバイスのおかげでここまでこれたのですが、どうかもう少し助けていただけないでしょうか。

よろしくお願いします。

補足日時:2008/01/18 12:22
    • good
    • 0

お手数ですが、以下を試してください。



# mkdir -p /usr/local/vnc/classes
# cp (vncの解凍後ディレクトリ)/java/* /usr/local/vnc/classes(javaの部分はclassesの場合あり。確かめてください。)
# shutdown -i6 -g10 -yで、システムを再起動。

windowsにて、VNCViewerを起動し、xx.xx.xx.xx:50を入力。
ここで、xx.xx.xx.xxはsolarisのIPアドレス。50とは、5950の下二桁。

この回答への補足

早速アドバイスどおり実行してみました。

# mkdir -p /usr/local/vnc/classes
# ls -ls /usr/local/vnc/classes
total 0
# cp /var/tmp/vnc-4_1_2-sparc_solaris/java/* /usr/local/vnc/classes
# ls -ls /usr/local/vnc/classes
total 234
2 -rw-r--r-- 1 root other 217 Jan 11 07:10 index.vnc
8 -rwxr-xr-x 1 root other 3584 Jan 11 07:10 logo150x150.gif
224 -rw-r--r-- 1 root other 104689 Jan 11 07:10 vncviewer.jar

再起動してVNCを試しましたが、やはりThe connection closed unexpectedly というエラーで接続できません。

# ./vncserver も実行してみましたが、今度は前回と違う結果です。

# ./vncserver
./vncserver: not found

VNCServerが動いてないということなんでしょうか?

何度も申し訳ありませんがよろしくお願いします。

補足日時:2008/01/12 00:42
    • good
    • 0

>/etc/inet/services と /etc/services はどう違うのでしょうか?


/etc/servicesは/etc/inet/servicesのリンクになっています。windowsでいうショートカットです(厳密には違いますが)。
# ls -l /etc/servicesコマンドで出てくるlrwxrwxrwxのlはlinkです。

私は実体の方の/etc/inet/servicesを編集しました。なお、
# ls -l /etc/inet/servicesの実行結果はどうなったでしょうか?もしかすると、
-r--r--r--となったでしょうか?となると、/etc/inet/servicesは読み出し専用モードになっています。

chmodコマンドでモードを変更します。
# chmod u+w /etc/inet/services
# ls -l /etc/inet/services
-rw-r--r--

これで、オーナー(root)は/etc/inet/servicesの書き換えが可能になります。つまり、viで、:wqが有効になります。

この回答への補足

再度ありがとうございます。
「windowsでいうショートカット」の説明のおかげでイメージがつかめよく分かりました。
やはり、# ls -l /etc/inet/services を実行したところ-r--r--r -- でしたので、chmodコマンドで無事に変更し、そしてファイルの編集をすることができました。

そしてPCからSolarisに接続してPCのvnc viewerからSolarisにアクセスしようとしましたが、The connection closed unexpectedly というエラーが出てつながりません。
実際VNCServerが起動しているかどうか、自身がありません。ただ、ファイルの変更をする前にVNCを試した時は、"unable to connect to host: Connection refused(10061)" という違うエラーだったので何か変更は出来た様です。

ネットで調べて以下のコマンドを実行したところこの様になりました。

# mconnect -p 5950 localhost
connecting to host localhost (127.0.0.1), port 5950
connection open
# mconnect -p 5952 localhost
connecting to host localhost (127.0.0.1), port 5952
connection open

# ./vncserver
vncserver: couldn't find "xauth" on your PATH.

# lsof -i :vnc-xga というのも実行してみましたが、not found でした。

また、以下のコマンドを実行すると、
# cd /usr/local/bin/
# ls -ls
total 13772
1792 -r-xr-xr-x 1 502 staff 903308 May 12 2006 vncconfig
368 -r-xr-xr-x 1 502 staff 176500 May 12 2006 vncpasswd
28 -r-xr-xr-x 1 502 staff 13938 Feb 23 2005 vncserver
2672 -r-xr-xr-x 1 502 staff 1357944 May 12 2006 vncviewer
2560 -r-xr-xr-x 1 502 staff 1301940 May 12 2006 x0vncserver
6352 -r-xr-xr-x 1 502 staff 3239840 May 12 2006 Xvnc

となります。

rcp やscpがつながらなかったのと同じ理由かまたは関係あるのでしょうか?  Root以外のユーザーならTelnet接続も可能な状態です。

どうすればVNCServerが稼動しているか、どこを直せばいいのか調べられるのでしょうか?

どうかアドバイスよろしくお願いします。

補足日時:2008/01/11 03:17
    • good
    • 0

【No.3の訂正】


×vnc-1024x768x8 5952/tcp
○vnc-1024x768x8 5950/tcp

この回答への補足

補足ありがとうございます。
vi のコマンドが思ったとおりに動かなかったのは、自分がどのモードにいるか良く把握してなかったから見たいです。でも相変わらず画面がぐちゃぐちゃでファイルのどこにいるかは相変わらず無視界飛行のような状態です。
ところで /etc/inet/services などのファイルをやっとの事で編集して:w や:wq とやっても"File is Read Only" と出てきてしまい保存できません。
chattr -i というのを実行しなければ行けないと分かり chattr - i /etc/inet/services  というコマンドを実行したのですが、今度はchattr: not found と出てきてしまいます。
ログインは root で、ls -l を実行すると以下のようになります。
# ls -l /etc/services
lrwxrwxrwx 1 root root 15 Dec 12 15:03 /etc/services -> ./inet/services  

また、 /etc/inet/services と /etc/services はどう違うのでしょうか? 編集するのは前者の方でよいのでしょうか?
cat コマンドで見ると同じ内容のようですが?  

よろしくお願いします。

補足日時:2008/01/10 08:31
    • good
    • 0

私はwindowsにvnc-4_1_2-sparc_solaris.tar.gzを落とした後、


WinSCP3というフリーソフトを用いてsolarisへ転送しました。ffftpというフリーソフトでもいけると思います。

>ダウンロードした後にファイル名にgzが無くなっている
tarコマンドでいきなり解凍できるのではないでしょうか?
tar.gzならば、gunzipコマンドでtarファイルに解凍後、tarコマンドで再び解凍という流れでした。

CDを使う場合、solarisマシンにCDを入れた後、solarisにて、(ちなみに、solarisではマウント不要)
% cd /cdrom/cdrom0
で、CDドライブのルートディレクトリに移動できると思います。

この回答への補足

ご回答ありがとうございます。
ファイルをSolarisに転送するためにいろいろ試しました。Ethernet ケーブルでSolarisとつないでPingも通る状態にしてから、rcp, scp,またはftpなどもやってみましたがだめでした。今度WinSCP3も試して見たいと思います。
結局、またCDを何度も焼きまくって試したのですが、最終的にCDでファイルを持っていくことができました。何故他のCDがだめだったのかよく分かりませんが、最後には教えていただいた、% cd /cdrom/cdrom0 でCDのファイルを確認できました。

Ethernet ケーブルで転送できなかったのはSolaris側からRefuseされているからだと想像するのですが、どうすればそれを確かめて、直すことが出来るのでしょうか?

解凍に関しては、gunzipで無事にtarになったのですが、今度は、tar –xvf vnc-4_1_2-sparc_solaris.tar を実行したのですがエラーが出てだめでした。
いろいろ試して v のオプションをなくして実行したところうまくいきました。
調べてみると皆さんtar –xvf のコマンドで実行されているみたいなのですが、同じSolarisでなぜ私の場合はうまくいかないのか分かりません。これは私のSolarisに問題があるのでしょうか? インストールの時は、分からないので全部入れたつもりだったのですが。。。

ともかく、# ./vncinstall /usr/local/bin を実行してやっと、前回教えて頂いた、/etc/inet/servicesと/etc/inet/inetd.confを編集するところまで来たのですが、今、必死になってviエディタを最低限使えるように努力しているところなのです。Cat コマンドでどういうファイルか見るだけ見たのですが、vi /etc/inet/services やvi /etc/inet/inetd.conf とやると画面がもともとあったアウトプットとごちゃごちゃになって混ざってしまい、カーソルが教科書どうりに動いてくれず、ファイルをむちゃくちゃにしてしまうのではないかという恐怖で、前に進めません。
サーバを12月中に完成しなければならなかったのにVNCのインストールさえも完了できなくて大変あせっています。
/etc/inet/servicesと/etc/inet/inetd.conf の編集の仕方についてもう少し詳しく教えて頂けないでしょうか?
または、せめて編集後のファイルがどうなっているべきなのか全部は無理でも、前後の分も含めて見本を見せて頂けないでしょうか。

どうかよろしくお願いします。

補足日時:2008/01/05 08:48
    • good
    • 0

私はvnc-4_1_2-sparc_solaris.tar.gzを用いてsolarisにインストールしました。


解凍後、vnc-4_1_2-sparc_solarisディレクトリ内のvncinstallを実行。
# ./vnc-4_1_2-sparc_solaris/vncinstall /usr/local/bin /usr/local/man
これで、solarisへvncがインストールされるはずです。
あとは、/etc/inet/servicesと/etc/inet/inetd.confを編集(vncの設定、使用ポート番号の指定など)した後、solarisを再起動。
あと、vncを使うということは、windowsから遠隔操作するのでしょうか?
その場合、windowsクライアントにvnc viewerをインストールしなければなりません。

この回答への補足

早速アドバイスありがとうございます。
初歩的な質問ばかりで申し訳ありません。
vnc-4_1_2-sparc_solaris.tar のファイルをどうやってPCからsolarisに持っていくのがベストな方法なんでしょうか?
また、ダウンロードした後にファイル名にgzが無くなっているのは何故なのでしょうか?
現在solarisはコンソールケーブルでPCとつながっているだけです。
solarisにはCD-ROMとEthernetポートがありますが、Ethernetはまだ設定していません。solarisインストール時に仮のIPを入れておきました。

仮にCDから持っていく場合、 CDの正しい焼き方というのがあるのでしょうか?上記4種類全部焼いて試しましたがコマンドが悪いのかCDが悪いのか、または両方ともだめなのか、うまくいきませんでした。

おっしゃるとおり、最終的にはWindowsから遠隔操作のために使います。Windowsは少しは分かるので、まずはsolarisから解決していければと願っています。

よろしくお願いします。

補足日時:2007/12/29 01:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!