このページでは、2001年7月にLinuxを初めて導入した私が、Windows 2000とファイル共有できるまでを紹介します(このページを作成後、Windows XPでも同様の手順で共有できることを確認しています)。初めて触れる作法に新鮮な感動を覚えながら、少しずつ設定を進めて参ります(ちょっと大袈裟)。Windowsのネットワークについては設定経験があり、Linuxは初めて…という方が対象です。
(IA-32版Red Hat Linux 7.1導入時のメモ)
SMB(Server Message Block)プロトコルを用いるクライアントが、サーバのファイルシステムやプリンタにアクセスできるような仕組みを提供するプログラム群のことだそうです。基はUNIX向けに開発されたものだけど、今ではLinuxをはじめ、OS/2など他のホストに実装され、LANサーバ、NTサーバの機能を持たせることが可能なんだそうです。
この場に限って言えば、我が家のWindowsネットワークにSambaをインストールしたLinux(for PlayStation 2)を仲間入りさせることで、PlayStation2をサーバ、他のWindows機をクライアントとして、実に快適な環境が構築できる…のだと思います。
SambaはNBT(NetBios over TCP/IP)を使うので、下位プロトコルはTCP/IPだそうです。NetBEUIやIPX/SPXではWindows機と通信できないそうです。
[UP]
まずは、物理的にネットワークを構築しなければなりません。我が家の場合はすでに数台のWindows機とMacintoshをHUBで繋いだLAN環境がありますから、単純にPlayStation2をHUBに追加するだけです(このページの一番下の図参照)。
DHCPを使わずIPアドレス固定にしています。
172.25.0.1 : BBルータ: Gateway(FTTH) 172.25.0.2 : 5号機 172.25.0.3 : 6号機 172.25.0.4 : 4号機 172.25.0.5 : Macintosh 172.25.0.6 : 7号機(メイン機) 172.25.0.7 : 2号機 172.25.0.8 : PlayStation2(自宅 Web サーバ/ファイルサーバ) 172.25.0.100 : バックアップ用 ISDN ルータ(MN128-SOHO SL11)
内訳はこんな感じです。
メイン機のWindows 2000からコマンドプロンプトを使ってpingを撃ってみます。Windows 9xの場合はMS-DOSプロンプトですね。
蛇足ですが、これは潜水艦が位置確認のために撃つソナーにちなんで「ピンを撃つ」と呼ばれています(正式名称はPacket INternet Groper)。

PlayStation2に向けてpingを撃ったところ
[naom@ps2 /]$ ping 172.25.0.6 PING 172.25.0.6 (172.25.0.6) from 172.25.0.8 : 56(84) bytes of data. Warning: time of day goes back, taking countermeasures. 64 bytes from 172.25.0.6: icmp_seq=0 ttl=128 time=619 usec 64 bytes from 172.25.0.6: icmp_seq=1 ttl=128 time=375 usec 64 bytes from 172.25.0.6: icmp_seq=2 ttl=128 time=367 usec 64 bytes from 172.25.0.6: icmp_seq=3 ttl=128 time=365 usec 64 bytes from 172.25.0.6: icmp_seq=4 ttl=128 time=364 usec --- 172.25.0.6 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/mdev = 0.364/0.418/0.619/0.100 ms [naom@ps2 /]$
逆にPlayStation2からWindows 2000機に向けて撃ったところ。ずっと続くので、適当にCtrl+Cで止めます。
[UP]
Samba自体はLinuxのCustomインストール時にチェックを付けたから入っているハズ…というわけで <smb.conf> の書き換えです。
(ここではemacsを使います)
# emacs smb.conf
とりあえずBack spaceは使わないということと、Ctrl+Xに続きCtrl+S(C-x C-sと表記する作法らしい)でファイル保存、C-x C-cで編集終了ということだけを学び、サンプルを参考に書き換えてみます。
[global]セクションのWORKGROUPを、すでに構築してあるワークグループに変更するのを忘れずに。
設定例は下のほうにあります。
# cd /etc # cat passwd | /usr/bin/mksmbpasswd.sh > /etc/smbpasswd # smbpasswd root # new SMB passwd: (パスワード入力) # Retype new SMB passwd: (パスワード入力) # password changed for user root # samba start
これが何度やっても参考にした様々なサイトに書かれた状態にはならないんですよねぇ…。Windowsでのファイル共有も設定してあったのですが。
結局は自分が間違えていただけなのですが、このとき「これはきっと他に原因があるに違いない」と思い、色々調べていました。
まずは、Linuxをインストールしたときに、どのバージョンのSambaがインストールされたのかを調べてみました。というのも、2.0.6以前のバージョンではWindows 2000から共有かけると正常に動作しないという情報を得たからです。
# rpm -qa | grep samba samba-2.0.7_ja_1.3-1 samba-client-2.0.7_ja_1.3-1 samba-common-2.0.7_ja_1.3-1
Sambaがインストールされているかどうかを調べているところです。
samba-2.0.7_ja_1.3-1(Samba 2.0.7日本語β版)
ちゃんと入っているし…。
どうも原因がわかりません。
[UP]
で、またまた色々調べていたらSWATという便利なものがあることを知りました。
これは、Webブラウザを使って複雑なsmb.confの設定を行えるものです。
/etc/servicesに「swat 901/tcp」という行を追加するらしいですが、これも最初から書かれているようです。901はポート番号ですが、1024以下で他で使っていないものであれば何でも良いそうです。
使い方は簡単!
http:// Linux(for PlayStation 2)のIPアドレス :901/
これをお手持ちのブラウザのアドレス欄に入力するだけです。

我が家の場合は図のようになります。
認証ウィンドウが開きますから、「root」で入ります。他のユーザー名でも入れますが、設定の変更はできません。
すると、Linux(for PlayStation 2)のHDDにカリカリとアクセスし、下のような画面が出てきます。
ページに掲載するために横幅を縮めています。

はい。今まで知りたかったことが、ここに全部書いてありますね。
[UP]
最初からこれでやれば簡単でした。でも、SWATを使うと、それまでに自力で書き上げた設定が全部無しになってしまうので注意して下さい。あと、SWATはあくまでsmb.confの書き換えだけを行うものですから、ブラウザから設定した後はSambaを再起動しましょう。再起動もSWATの「動作状況」メニューからできるので便利です。
設定例 coding systemはeucにしておいた方が良いそうです。
# Samba config file created using SWAT # from 172.25.0.6 (172.25.0.6) # Date: 2001/10/18 03:25:17 # Global parameters [global] coding system = euc client code page = 932 workgroup = WORKGROUP netbios name = PS2 server string = Samba %v encrypt passwords = Yes map to guest = Bad User socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 os level = 1 dns proxy = No guest account = smbguest [homes] comment = %U's Home directory writeable = Yes [printers] comment = All Printers path = /var/spool/samba printable = Yes browseable = No [naom] comment = %U's Home directory path = / writeable = Yes
workgroupにWORKGROUPを、netbios nameにPS2を設定してみた
(※我が家の場合です)
上の設定例は、「デフォルトと違う部分のみ」表示されています。
私は、上記の通り[naom]という新しい共有を作成し、メイン機のWindows 2000からのみLinux(for PlayStation 2)上のすべてのファイルを触れるようにpathを「/」にしています。
[UP]
以上の設定を行うと、Windows 2000のネットワークコンピュータから見えるようになります。見えない場合はIPアドレスで検索してみて下さい。

「PS2」や「172.25.0.8」で検索すると…
ちゃんとsmb.confで設定した名前になっています
これを直接ネットワークドライブに割り当ててしまうと便利です。下の名前は我が家の場合ですので、それぞれのご家庭のマシン名に読み替えて下さい。

Linux(for PlayStation 2)サーバの共有エリアをドライブPとRに割り当てました。きちんとWindows 2000から見えていますね。
2002/08/20追記
上の「ネットワークドライブの割り当て」時に、「異なるユーザー名で…」を選び、rootで接続してしまうのも手です。個人利用では、この方がお手軽です。

Windows XPからrootで接続する例


普段はMOUふぁいらーを使っているため、見慣れたディレクトリ表示で確認してみます。あぁ、なんか、これがPlayStation2だってことを忘れそうですね。

というわけで、ひとまずLinux(for PlayStation 2)とWindows 2000でファイル共有できるようになりました。
[UP]

(2001/07/20)
[UP]