たこさんのメモ書き

Linuxの設定/構築のメモを残すのが主体です。
わからないこと、あれこれたくさん。

あらためて、Ubuntu10.04でsambaサーバー構築

2011-09-30 23:25:29 | Ubuntu
前回のsamba導入と設定で、Ubuntuからファイルの退避ができた。
次は、Ubuntu側を整備しなおし、Windows7へ退避させたファイルを再度戻すことにする。
そのために、ハードディスクの容量を見直して空き容量を確保してから、改めてUbuntuをいちからインストール。そしてsambaを導入しファイルサーバー化するという手順を考えた。

まず、Ubuntu10.04をクリーンインストール。すると、以前の8.04からのアップグレード環境よりも動作が早いようだ?

次に、Synapticでsambaを導入。このバージョンは3.4.7。

そして、つまづいていたsambaの設定に入る。
設定の概要は、
・共有するディレクトリは/var/samba/shareにする。ホームディレクトリの共有はしない。
・Windows7からの共有ディレクトリへのアクセスは、パスワードを使わずにできるようにしたい。
・さらに、ファイルやフォルダの作成もできるように。
・今回は、Windows7でコマンドプロンプトを使わないでも共有ができるようにする。

以上の機能を実現するために、設定ファイル/etc/samba/smb.confを修正する。修正点は以下。

#====Global Settings=======
[global]
##Browsing/Identification##
workgroup = WORKGROUP
 #この部分はデフォルトで記述されている。
 #Windows7の設定でも、ワークグループの名前をworkgroupにしておくこと。

##Networking##
interfaces = 127.0.0.0/8 eth0
 #例文の";"をアンコメントした。

###Authentification###
security = share
 #この記述で、Ubuntuサーバーへのアクセスがパスワード不要になる。
 # = user だと、Ubuntuサーバー上でsambapasswdコマンドを用いて、アクセスするユーザーのパスワードを設定しておく必要がある。

#====Share Definitions======
 #最終行に以下を追加した。
 #この部分が、共有するディレクトリを指定する。
[share]
comment = Ubuntu File Server Share
path = /var/samba/share
browsable = yes
guest ok = yes
read only = no
create mask = 0755

以上でsmb.confの修正は完了。
ただし、Ubuntu側で、/var/samba/shareのディレクトリを作成し、その持ち主をnobody、グループをnogroupとしておく。
$ sudo mkdir /var/samba/share # オプション-pがいるかも。
$ sudo chown nobody.nogroup /var/samba/share

参照:Ubuntu 10.04,10.10Server版にSambaサーバーを導入

以上を行ったあとで、sambaをリスタートする。
$ sudo /sbin/initctl restart smbd #sambaのプログラムであるsmbdを再起動する。

LANでつながっているWindows7側の操作は、エクスプローラーを立ち上げ、コンピュータ>ネットワークを見ると、コンピュータ名のところにUbuntuサーバー名のアイコンが表示される。
このアイコンをクリックすると、共有ディレクトリ「share共有」が見える。
このディレクトリに入ると、フォルダやファイルのコピーや作成も可能。


sambaサーバーを設定中

2011-09-29 00:08:46 | Ubuntu
ATOMで作った自作機Ubuntu10.04のハードディスクが満杯近くになってきたので、ファイルをどこかへ退避させたい。ちょうど、Windows7のノートPCを入手したので、Ubuntuのファイル群をWindows7へ(いったん)移動させ、Ubuntuマシンは改めて自宅サーバーとしての活用方法を探ることにする。

ファイルの移動については、UbuntuとWin7マシン同士でLANを組み、Ubuntuをファイルサーバーに、Win7をクライアントにする形で、迅速にコピペができたらいいなあ。と考えた。

Ubuntuマシンはデスクトップ機として使っているが、ここにsambaを導入し、sambaマシンとして動かすことにした。
sambaのインストール自体は、synapticを使って簡単にできた。
ただし、設定が一苦労だったので、概要をメモする。

googleで「samba 設定」とやると大量の記事がヒットする。それらには、設定ファイルである/etc/samba/smb.confの記述例も記載されており、大変重宝する。しかし、ユーザーごとにマシンの環境は異なる。特にWindows7については、以前のバージョンのwindowsとは挙動が異なることが報告されているようだ。内容については、複雑なので詳細割愛。

自分が行った設定は、googleや書籍「Debian GNU/Linux ネットワーク構築ガイド」でえられた例文を参考にしたもので、かなり基本的なものだと考えている。
しかし結果として、Windows7とUbuntuはつながらず(pingは互いに通っているのでネットワークは組めているのだが)、共有を指定したディレクトリが見えない。Ubuntu、Windows両方からだ。

ログをあたったところ、
sambaのログは、/var/log/samba/log.smbd および、 /var/log/samba/log.nmbdなど(他にも、sambaディレクトリ配下にいろいろある)。
/var/log/samba/log.nmbdを参照すると、以下のエラーログが頻発するのを発見した。
XXXX@yyyy:~$ nmblookup -B 192.168.X.251 '*'
querying * on 192.168.x.251
Packet send failed to 192.168.X.251(137) ERRNO=Operation not permitted
name_query failed to find name *

エラーの内容は、クライアントであるWindows7のIPアドレス(192.168.X.251)へパケットを送って通信しようとしているが、権限がないのでできない、ということのようだ。

Sambaが動作しないときの診断方法(日本sambaユーザ会)」を参考に、原因と対策を探ることにした。
これの診断チェックリストは18あり、それを1から順番にたどっていくこととされている。
すると、(7)nmbdの動作確認 までは正常に動作しているようだが、(8)コンピュータ名による名前解決 からうまくいかない。
もっとも、LANの環境はDNSサーバーを動かしてはいないので、名前解決はうまくいかないのは当然かもしれない、と思っていた。
しかし、Windowsマシンのエクスプローラー画面(?)にサーバーであるUbuntuマシンのアイコンを表示させるためには、名前がわからないとうまくいかない、のかも。

そこで、他のサイトも参照に、winsの設定(sambaサーバーにwinsサーバーの役目を持たせることと、Windows側の設定)を行う。
さらに、文字化け防止のため、日本語JISの表示にsambaを対応させる設定も追加。

しかしそれでも接続はできず、試行錯誤を繰り返す。
動かないのは、Linux側からのブロードキャストと、Windowsからコマンドプロンプトで行うnbtstatコマンド。

結果として、うまく行かないチェックの部分は飛ばして試していると、(16) Windowマシンからnet useコマンドを実行 のところはうまく動作した。
これを行うと、Windows7のエクスプローラー画面にネットワークフォルダが出現。「homes(\\server)(X:)」として、空き領域3.9GB/36.9GBが表示された。

結局、LANを組んでsambaを起動するとファイル共有が自動的に完成するのは無理だったが、Windowsのコマンドプロンプトから、
<実行例>c:> net use x: \\BIGSERVER\TMP
を実行することで解決した。

何だか中途半端な結果だが、ファイルの移動はできたので良しとする。
ファイル移動は、毎秒4~7MBの速度だった。9GBの画像ファイル群が約30分で移動。
構築さえできれば、ファイル共有は便利だということを実感。