samba.confの作成

samba.conf = 最重要ファイル

といっても過言ではないくらい、このファイルが中核を担います。
とりあえずサンプルファイルをベースに作成しました。



サンプルの smb.conf はソースディレクトリの下の examples の下にあります。
これを /usr/local/samba/lib にコピーします。
 
#  cp samba-2.0.6/examples/smb.conf /usr/local/samba/lib

このファイルが、

  • Windows 側にどのフォルダを公開するか
  • プリンタはどうするか
  • パスワード認証の方法

  • などを設定しています。

    私は samba-2.0.5 の日本語版のサンプルファイルを下に変更を加えたものを使っています。
    それを以下に紹介します。

    重要であると思われるパラメータは説明を載せておきますので、クリックしてください。
    基本的な設定なら、これくらいで十分と勝手に思ってます。
    (というか詳しいことが分からないだけです。むずかしいんですもの。)
    mule smbhost@mydomain.jp
    #======================= 全体的な設定 ==================================
    [global]

    # workgroup = NT ドメイン名、またはワークグループ名
       workgroup = Mygroup

    # server string は、NT の解説フィールドと同等
       server string = Our Samba Machine

    # もしプリンタのリストを、個々に設定するのではなく、自動的にプリンタの
    # リストを読み込む場合は、これを設定する必要があります。
       load printers = yes

    # printcap ファイルの場所を指定したい場合
       printcap name = /etc/printcap

    # バーストファイルの抑止
       print command = lpr -r -h -P%p %s

    # ゲストアカウントが必要な場合は、このオプションのコメントを外してくださ
    # い。nobody 以外を使用する場合は、/etc/passwd にこのユーザを登録する必
    # 要があります。
    ;  guest account = pcguest

    # 接続しているマシンごとに独立したログを残すことを指定します。
       log file = /usr/local/samba/var/log.%m

    # ログファイルのサイズに上限をもうけています。
       max log size = 50

    # セキュリティモード
       security = user
       encrypt passwords = yes
       password level = 8

    # ほとんどの場合、このオプションを設定することで、より良い性能を得ること
    # ができるでしょう。詳しくは Speed.txt やマニュアルページを参照してくだ
    # さい。
       socket options = TCP_NODELAY 

    # WINS Server - Samba の NMBD コンポーネントに、WINS クライアントになる
    # ように指定する。
    # 注意: Samba は WINS サーバにも WINS クライアントにもなることが
    # 可能だが、同時に両方になることはできない。
       wins server = xxx.xxx.xxx.xxx

    # DNS Proxy - Samba に対して、NetBIOS ネームを DNS 経由で解決するかどう
    # かを指定する。1.9.17 でのシステム初期値は yes であるが、1.9.18 で no 
    # に変更された。
       dns proxy = no 

    # 日本語ユーザ用
      client code page=932
      coding system=cap

    #============================ 共有の定義 ==============================
    [Folder1]
      comment = Common Folder 1
      force user = smbuser
      path = /samba/folder1
      delete readonly = yes
      public = no
      writable = yes
      printable = no 
      write list = @users
      create mode = 0777
      mangled names = yes
      mangle case = no
      case sensitive = no
      default case = lower
      preserve case = yes
      short preserve case = yes
    #============================ プリンタの定義 ==============================
    [printers]
      comment = All Printers
      path = /usr/local/samba/printer
      browseable = no
      printable = yes
      writable = no
      create mode = 0777
    [lp]
      comment = New Color PS Printer
      printer name = lp
      path = /usr/local/samba/printer
      printable = yes
      writable = yes
      create mode = 0700
    [lp-old]
      comment = OLD Monochrome PS Printer 
      printer name = lp-old
      path = /usr/local/samba/printer
      printable = yes
      writable = yes
      create mode = 0700
     


     
    workgroup = Mygroup

    トップ    △戻る

    このパラメータは、Windowsにおけるどのワークグループにサーバーが所属するかを表すものです。
    自分達のマシンが所属する場所にしておけばいいでしょう。


    server string = Our Samba Machine
    トップ    △戻る

    SambaマシンをWindowsで詳細表示したときに、コメントとして表示される文字列を表します。
    そのマシンの特徴を表す文字列にしておけばいいでしょう。


    load printers = yes
    トップ    △戻る

    Sambaでプリンタを公開する場合、このパラメータを yes にします。
    これを no にすると、プリントサービスは一切使用しない状態になります。
    その場合、ファイルサーバとしてのみ活用できるでしょう。


    printcap name = /etc/printcap
    トップ    △戻る

    プリンタを公開する場合、printcap の場所を指定します。
    通常は /etc/printcap で問題ないと思われます。とくに別のファイルを指定しなくてはならない場合以外は。


    print command = lpr -r -h -P%p %s
    トップ    △戻る

    プリンタの設定です。通常は必要ないのかもしれませんが、うちの研究室では、
    print command = lpr -r -h -P%p %s
    がないと、一回の印刷につき、一枚ずつ余計な用紙が出てくるのでこのようにしてあります。


    security = user
    encrypt passwords = yes
    トップ    △戻る

    この2つに関しては、SambaとWindowsの共存で一番大きなパラメータと言えるのではないでしょうか?
    詳しい説明はこちらをご覧ください。
    簡単に言うと、パスワード認証を行う際、このパラメータがないと、

  • Windows NT4.0 + SP3以上
  • Windows 98
  • Windows 2000

  • からパスワードが正しく送れないことになります。

    client code page=932
     coding system=cap
    トップ    △戻る

    これは日本語を使用する場合に必要になります。
    詳しく意味はわかりません。勉強不足です。すみません。
    けど必要なパラメータであることは確かです。


    force user = smbuser
    トップ    △戻る

    これはセキュリティ管理がやりやすくなるので入れています。
    どういうことかというと、まずSambaに対して有効なユーザで利用許可をもらった後は、すべてのSamba上の行動が
    force user で設定されたユーザのものになるということです。
    もちろんこの場合、Sambaで公開されているフォルダに smbuser というユーザの使用権がなくてはいけません。
    これは非常にお薦めです。あとで絶大な効果を発揮します。


    path = /samba/folder1
    トップ    △戻る

    公開するフォルダの位置を指定します。
    この場合、/samba/folder1Folder1 という名前でWindows側に公開するという意味です。
    ここにSambaで使用するユーザの使用権限がないと意味がありません。


    mangled names = yes
      mangle case = no
      case sensitive = no
      default case = lower
      preserve case = yes
      short preserve case = yes
    トップ    △戻る

    大文字・小文字混在のファイルが作成された場合の扱いです。
    これは Samba1.9.18 とかのころから同じ設定にしています。
    きっと今のバージョンではここまでいくつも書かなくてもいいようになっているのかもしれません。


    path = /usr/local/samba/printer
    トップ    △戻る

    ここはSamba経由で印刷するときのプリンタスプールの場所を指定しています。
    うちの研究室では、forece user で samba のセキュリティを統一しているので、
    そのユーザ専用のスプールを作成したかったというのがあり、このような設定にしています。
    このような設定にする場合、必ずこのフォルダを作成しておく必要があり、
    かつパーミッションをしかるべき設定にしなくてはなりません。



    とまあこのような感じでうちの研究室では問題なく稼動しています。
    詳しいパラメータの意味は、こちらをごらんください。
    ドキュメントの日本語訳です。すばらしいサイトです、ここは。

    さて、現在のままでは、まだ使用可能な状況ではありません。
    ユーザー認証と言う問題が残っているからです。
    次でそれを解説します。