smb.confのtips

sambaを載せたマシンをWINSクライエントにしたい

 9/25日現在最新の1.9.16p2からWINSクライエント機能がつきました.この機能を有効にするためにはsmb.confの[global]セクションに

   wins support = no
   wins server = IPaddress_of_WINSserver
を付け加えればよいです.
 言う間でもないですが,WINSクライエントになったらばWINSサーヴァ機能を使うことは出来ません.  

共有資源をマウントしたマシンにwelcome messageを出したい

messageを送るには

 まずはsambaを使ってms-networkを使ってメッセージを送る方法の解説をしましょう.
 このためには当然ながらまずクライエント側がメッセージを受け取る準備をしておく必要があります.WindowsNTならば"messager service"と言うサーヴィスが動いている必要があり,Windows95ならば"winpopup.exe"というアプリが常駐している必要があります.
 その上でsambaからそれらクライエントマシンにメッセージを送るには,smbclientを"-M"オプションとともに使います.具体的には以下のように実行します.

smbclient -M 相手のマシン名 < メッセージを記述したファイル名
 すると「メッセージを記述したファイル」の内容が「相手のマシン名」で指定したクライエントに転送されます.smbclientは特に漢字コード変換はしてくれないので,メッセージに日本語を含めたい場合はファイルをあらかじめSJISで書いておく必要があります.

 後はこれを共有資源をマウントしたときにマウントしたマシンに送るように起動できればいいわけです.と言うことで以下で共有資源をマウントされたときにプログラムを起動する方法を解説します.

共有資源をマウントされたときにプログラムを実行するには

 これにはsmb.confで"preexec"キーワードを指定します.このキーワードで指定したコマンドがマウント時に自動で実行されます.

実例

 しかしこれを読んでいる方は要はどうしたらいいかということこそを知りたいでしょうから,それを解説します.
 以下に/usr/share/pubディレクトリを"public"という資源名で共有させて,それをマウントした時に/usr/share/pub/.messageというファイルの内容をクライエントに転送する,という設定にする場合のsmb.confの例を示します.

[public]
    Comment = Public Server
    Browseable = Yes
    Read Only = Yes
    Public = Yes
    Hide Dot Files = Yes
    Path = /usr/share/pub/
    preexec = sh -c '/usr/local/samba/bin/smbclient -U %h -M %m < /usr/share/pub/.message'&
 smbclientの-Uオプションはメッセージの送信元のユーザ名を指定するものです.smbdは大概nobodyというユーザ権限で実行されているので,preexecで実行された場合にはメッセージの送信元が"nobody"になってしまうのです.これでは具合が悪いので,どのマシンからのメッセージか分かるように"%h"マクロ(これはsambaの機能です)でユーザ名の代わりにホスト名を使うようにしています.


色々技術メモページに戻る
石田 翼のホームページに戻る

ISHIDA Tsubasa <tbs-i@mtg.biglobe.ne.jp>
Last modified: Sun Apr 16 20:30:06 JST 2000