枕草子 (My Favorite Things)

【第120回】 Samba(1999年1月23日-25日)

暖かくて変な天気だ。正門脇のジュウガツザクラが狂い咲きしてしまったではないか。ぼくの記憶が確かならば,秋から冬にかけて一回咲いて散ったはずなのだが。花芽形成ってこんなに短期間で2回もできるのだろうか?

ZDNetに出ているIntelがPentium IIIからプロセッサに「チップID」を組み込むという話が世間では注目されているようだが,ぼくとしてはむしろ,セキュリティ強化思想のもう一つの軸として発表された,「プロセッサへの乱数生成機構の取り込み」の方が気にかかる。東芝のボードみたいな物理乱数生成なら素晴らしいんだけどなあ。Intelのサイトを探してみたが,見つからなかったので続報を待ちたいところである。

さて,今日はSambaの話である。ぼくは音楽のサンバも好きなのだが(まあ,天才Jobimの"One Note Samba"とか"Jazz Samba"なんて曲は普通Bossa Novaに分類されると思うし,ぼくはどっちかというとBossa Nova好きだといった方がよいのかもしれないのだけれど),ここでいうSambaは,萩原君のページに詳しい解説があるSambaであり,要はunix上でWindows及びunixのクライアントにファイルとプリンタを提供するためのサーバ/クライアントソフトである。unixに(Windows95/98から見て)Windows NTサーバのふりをさせるソフトと言っても良い。フリーで利用できるのが素晴らしい。これまでサーバ2号機にはSambaはインストールしていなかったのだが,2.0.0もリリースされたことだし,入れてもよかろうということになったわけだ。

手順としては,例によって工業技術院のRingサーバのsambaディレクトリから最新のsamba-2.0.0.tar.gzをダウンロードし,tar xvzfで展開し,cd samba-2.0.0/sourceしてから,.configureし,できたMakefileのFLAGS5のところで-DKANJI=\"euc\"と追加(日本語のファイル名をunix上で扱えるようにするため)してからmakeするだけでBuildは完了する。

あとはsuしてからmake installするだけでバイナリがインストールされるが,これだけでは設定ができていない。設定は,Makefileにあったように,/usr/local/samba/libsmb.conf(とlmhostsprinters.def)を作らねばならない。smb.confについては,cp ../examples/smb.conf.default /usr/local/samba/lib/smb.confして編集するのが簡単である。編集といっても,サーバにアカウントをもつユーザしか使えなくてよいならば,最低限するべきことは次の3つだけである。(1)[global]の中のworkgroupをhumecoと設定し,(2)hosts allow = 130.69.109. 127.とすることによってhumecoドメイン外からのアクセスを拒否するようにし,(3)[global]セクションの最後に,coding system = eucという行を追加する。後の二つのファイルは無いままでも取りあえず問題ないらしい。

後は,Makefileで指定してある共有管理用のロックファイルを置くディレクトリがないので,/usr/local/samba/varlocksというディレクトリをroot権限で作成するだけである。念のため,/usr/local/samba/binに入って./testparmとやったら無事に通った。これで設定は完了なので,あとは起動させればよい。/etc/inetd.confの最後の2行の最初の#を消して,smbdnmbd0のディレクトリが/usr/local/sbin/になっているのを/usr/local/samba/binに直して保存し,inetdにハングアップ信号を送るだけで無事にSambaは起動する。展開したsamba-2.0.0/docs/textdocsにあったWindows95用の設定文書を読むとクライアント側でも何かしなくてはいけないような気もするが,まあいいことにしよう。一応インストールはできたようである。

(24日追記)実は,これだけではプリンタを共有できないのだった。

/usr/local/samba/varにできたログを見ると,/usr/spool/sambaとかいう存在しないディレクトリをWindowsからのプリント用一時スプールに使おうとして失敗していたので(そんなディレクトリはないから当然である),/var/spool/sambaというディレクトリを属性777で作成し,そこをスプールに設定しなければならなかった(/usr/local/samba/lib/smb.confの[printers]セクションでpath = /var/spool/sambaとする)。

(24日追記その2)それでもまだ駄目だった。バナーを抑制し,スプールを適宜削除しながらプリントさせねば満足のいくプリントにはならないのだ。

つまり,FreeBSDのlprを使うのだから,希望の動作をさせるには,/usr/local/samba/lib/smb.confの[global]セクションで;printing = bsdとなっている下あたりに,print command = lpr -h -r -s -P%p %sという行を追加してやらねばならないのだった。これでSamba-2.0.0の設定は無事に完了した。(25日付記:大きなイメージファイルを印刷するためには,-sも必要だったので追加した)


前【119】(sendmail更新など〜老化を説明する仮説と道交法改正についての私感 ) ▲次【121】(性懲りもなく…(1999年1月29日) ) ●枕草子トップへ