Samba3

  • Sambaの設定は頑張ればホビーユースには十分。
    • 設定ミスると丸見えとかアクセス拒否なので、ちょっとめんどくさい。
    • やっぱり最低限しか書いていないので、後は直感と自己責任で。
    • Active Directory連携機能があるが、有効なのか不明。。。
  • 動作テスト環境
    • Turbolinux 10 server
    • Turbolinux 11 server
    • CentOS 5.5/5.6
      • yum install samba3x samba3x-swat
    • CentOS 6.x
      • yum install samba samba-swat samba-client
    • CentOS 7.x (Samba4)
      • yum install samba samba-client
      • SWATはSamba4で廃止されました。
  • Samba4についてはまとめ直しました。

SWAT(設定 Web インタフェース)の設定と起動

  • xinetd で swat を許可
    • vi /etc/xinetd.d/swat
      disable = no
      only_from = 127.0.0.1 192.168.1.0/24
      • only_from をお忘れなく。
      • only_from でローカルのIP帯域のみ allow する。
        サブネットマスク表記はビット数表記 (/24) しか許可されておらず、
        マスク表記 (/255.255.255.0) はエラーで有効にならない。
      • only_fromを 0.0.0.0/0 してiptablesで絞った方がお利口かもしれない。
  • swat の hosts.allow 許可を追加
    • vi /etc/hosts.allow
      swat : ALL
      • 気持ち悪ければ ALL ではなくて 127.0.0.1 192.168.1.0/255.255.255.0 と書けばいい。
        こちらはマスク表記
      • 最近は hosts.allow は見ていないから設定しなくても良い模様
  • xinetd 再起動
    • /etc/init.d/xinetd restart
  • Sambaの自動起動設定
    • chkconfig smb on
    • chkconfig nmb on
    • chkconfig winbind on

SWATでの簡単な設定方法

  • GLOBAL
    • workgroup
      • ワークグループの名前
    • netbios name
      • ホスト名
    • server string
      • ホスト名のコメント
      • samba3_1.png
  • interfaces
    • このインタフェース以外は使わなくなる(はず)
      lo とか eth0 とか。IPアドレス&マスク表記指定でも行けるらしい。
  • hosts allow
    • このホストしかアクセスできなくなる
      interfaces と何が違うのかよく分からない。
    • とりあえず気持ち悪いから
      interfaces = lo, eth0
      hosts allow = 127.0.0.1, 172.27.0.0/16
      を設定しているけど、どうなんだろう。。。
  • os level
    • ローカルマスタ(ワークグループをとりまとめるホスト)のレベル
      数字を大きくすればすべてのマシンに勝つことになり、ローカルマスタになれる。
    • 常時起動させておくならば 99 ぐらいを指定しておけばいい。
    • マシンが起動しているはずなのにワークグループが表示されないとか、ホストが見えないとか
      そういうときにローカルマスタとなる柱を立てておけば、結構正常に動くようになってくれる。
  • PASSWORD
    • ローカルマシンのパスワード管理
      • Sambaは独自のユーザリストを持つことになる。(/etc/samba/smbpasswd)
        そのユーザを作ったりパスを変更する。
      • とりあえず最初は誰もいないので、適当なユーザを作っておく。
      • 標準では Linux の passwd に存在するユーザしか登録できない。
        パスワードは同期されないので、適当でも良い。
        個人的な理由で smbfs というアカウントを作って、共有フォルダ関連をひとまとめにしている。
    • 下のリモートマシンの〜はなんだかよく分からん。LDAPとかそっちの?
  • SHARES
    • ファイル共有の選択
      • 共有フォルダの名前がリストアップされている。
        選んで ファイル共有の選択 を押すと設定できる。
      • デフォルトで /home が設定してあるけど危なすぎるから消してしまえ〜。→削除ボタン
      • 新しく作るときは ファイル共有の作成 に共有フォルダ名を入力してクリック
    • (基本オプション)
    • comment
      • 共有フォルダのコメント(上のエクスプローラ画面の comment)
    • path
      • サーバー内のどのディレクトリを共有フォルダとして公開するか。
    • (セキュリティ オプション)
    • valid users
      • この共有フォルダを許可する Sambaユーザ
    • read only
      • yes(読み込み限定)にしたら意味がないので No にしておく。
    • hosts allow
      • この共有フォルダを許可するホスト
      • 省略すると GLOBALS で指定した hosts allow になる。
    • force user / force group
      • Sambaユーザに与える実際の Linuxユーザ名。
      • 指定しない場合は SmbGuest になる(と思う)
      • バグ?
        force user だけ公開するディレクトリの linux ユーザ名に指定し、 force group は指定していない。
    • (印刷オプション)
    • show add printer wizard
      • プリンタの追加 を表示させるか。ウザいなら No で。
      • バグ? No でも表示されている。

Tips

  • なにかいろいろ

ゴミ箱機能

  • /etc/samba/smb.conf
    [home]
        vfs objects = recycle
        recycle:repository = .recycle
        recycle:keeptree = yes
        recycle:touch = yes
        recycle:versions = yes
        recycle:maxsize = 0
        recycle:exclude = *.tmp *.temp *.o *.obj ~$* *.~??
        recycle:exclude_dir = /tmp|/cache
        recycle:noversions = *.doc *.xls *.ppt
    • vfs objects = recycle で有効化
    • recycle:repository
      • ゴミ箱ディレクトリの場所
    • recycle:keeptree
      • ディレクトリ構造を維持してごみ箱に移動する
    • recycle:versions
      • 同名のファイルがごみ箱にある場合、別名(「Copy #x of ファイル名」)で保存する
    • recycle:touch
      • ファイルがごみ箱に移されたときに、ファイルのアクセス日を変更する
    • recycle:maxsize
      • ごみ箱に移動するファイルの上限(byte)
    • recycle:exclude
      • ごみ箱に移動しないファイル名
    • recycle:exclude_dir
      • ごみ箱に移動せず即座に削除するディレクトリ名
  • 定期的にゴミ箱ディレクトリ内を削除しないととんでもない状態になる。
    • crontab -e
      20 6 * * 0 rm -rf /home/smbfs/.recycle/* > /dev/null

Windowsファイル共有のフォルダをマウントする

smbmount //Machine/SharedFolder /MountPosition \
  -o username=USERNAME,password=PASSWORD,\
  uid=UID,gid=GID,fmask=644,dmask=755,\
  codepage=cp932,iocharset=euc-jp
  • USERNAME/PASSWORD は 共有フォルダ 側のユーザ名とパスワード
  • UID/GID は マウントする側の Linux ユーザとパスワード
    • 指定しなかった場合は mount したユーザの権限になる。
  • 最近では smbmount は廃止され、mount -t cifs に統合されている模様
    • パーミッション指定 fmask=644,dmask=755 したにも関わらずパーミッションがおかしくなるようだったら、fmask, dmask の代わりに file_mode, dir_mode を使う。

CUPSエラーを抑制する

  • 最近のSambaはCUPSのエラーをよく残す
    [2010/10/26 19:04:51,  0] printing/print_cups.c:cups_connect(103)
      Unable to connect to CUPS server localhost:631 - Connection refused
  • ログが汚くなるので抑制したい
    • /etc/samba/smb.conf
      printing = bsd
      • なにやら printing = cups が指定されていると、何が何でも CUPS サーバを探しに行くことが原因らしい。

添付ファイル: filesamba3_1.png 218件 [詳細]