FreeBSD/Samba3

Samba3.0系

livconvにパッチを当ててEUC-JP-MSを使えるようにする。
Windows の全文字をシフトJIS(cp932) と日本語EUC(eucJP-ms) で扱えるようになります。

環境

FreeBSD 6.0
samba-3.0.20

まずはPortsからインストールする。

> cd /usr/ports/japanese/samba
> su
> make clean
===>  Cleaning for libiconv-1.9.2_1
===>  Cleaning for gettext-0.14.5
===>  Cleaning for gmake-3.80_2
===>  Cleaning for libtool-1.5.20
===>  Cleaning for pkgconfig-0.20
===>  Cleaning for popt-1.7
===>  Cleaning for jpeg-6b_3
===>  Cleaning for png-1.2.8_2
===>  Cleaning for tiff-3.7.4
===>  Cleaning for perl-5.8.7
===>  Cleaning for openldap-client-2.2.29
===>  Cleaning for cups-base-1.1.23.0_5
===>  Cleaning for gnutls-1.0.24_1
===>  Cleaning for libgcrypt-1.2.2
===>  Cleaning for libgpg-error-1.1
===>  Cleaning for ja-samba-3.0.20b,1

> su
# make install
syslogにログを吐きたい場合
# make WITH_SYSLOG=yes install

EUC-JP-MSを使えるようにする(libiconvにパッチを当てて再インストール)

# iconv -l|grep EUC
EUC-JP EUCJP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE CSEUCPKDFMTJAPANESE
CN-GB EUC-CN EUCCN GB2312 CSGB2312
EUC-TW EUCTW CSEUCTW
EUC-KR EUCKR ISO-IR-149 KOREAN KSC_5601 KS_C_5601-1987 KS_C_5601-1989 CSEUCKR  CSKSC56011987
EUC-JISX0213

▼一度libiconvをアンインストール

# cd /usr/ports/converters/libiconv
# make deinstall
# make clean

▼パッチを取得しパッチを当てる

# make WITH_EXTRA_PATCHES=yes install

▼パッチが当たった状態でインストールできたか確認。

# iconv -l | grep EUC|grep MS
EUC-JP-MS EUCJP-MS EUCJP-OPEN EUCJP-WIN 
  • 設定ファイル/usr/local/etc/smb.confを修正
    display charset = CP932
    unix charset = EUC-JP-MS
    dos charset = CP932
    この3行を追加する。

/etc/rc.confを修正し起動

# vi /etc/rc.conf
ここの#を外す。
---------------修正-----------------
nmbd_enable="YES"
smbd_enable="YES"
---------------修正-----------------

# /usr/local/etc/rc.d/samba.sh start

Sambaのアカウント追加

例:matsuiを追加の場合

# /usr/local/bin/smbpasswd -a matsui
(パスワード設定入力)

一括登録

ユーザを既に登録しているならば、Sambaユーザを一括して登録できます。

mksmbpasswd.sh < /etc/passwd > /etc/samba/smbpasswd

起動

# /usr/local/etc/rc.d/samba start

Sambaのゴミ箱機能

[homes]
   comment = Home Directories
   path = %H/samba ← 追加(/home/ユーザー名/sambaをホームディレクトリにする)
   browseable = no
   writable = yes
   各ユーザ専用のごみ箱機能追加(ここから)
   ※ファイル削除時に自動的にごみ箱へ移動されるようにする
   vfs objects = recycle ← ごみ箱の有効化
   recycle:repository = .recycle ← ごみ箱のディレクトリ名(/home/ユーザ名/.recycle)
   recycle:keeptree = no ← ごみ箱へ移動時にディレクトリ構造を維持しない
   recycle:versions = yes ← 同名のファイルがごみ箱にある場合に別名で移動
   recycle:touch = no ← ごみ箱へ移動時にタイムスタンプを更新しない
   recycle:maxsize = 0 ← ごみ箱へ移動するファイルのサイズ上限(0:無制限)
   recycle:exclude = *.tmp ~$* ← ここで指定したファイルはごみ箱へ移動せずに即削除する
   各ユーザ専用のごみ箱機能追加(ここまで)

[public]
   comment = Public Stuff
   path = /home/samba
   public = yes
   writable = yes
   only guest = yes
   共有ディレクトリのごみ箱機能追加(ここから)
   ※ファイル削除時に自動的にごみ箱へ移動されるようにする
   vfs objects = recycle ← ごみ箱の有効化
   recycle:repository = .recycle ← ごみ箱のディレクトリ名(/home/ユーザ名/.recycle)
   recycle:keeptree = no ← ごみ箱へ移動時にディレクトリ構造を維持しない
   recycle:versions = yes ← 同名のファイルがごみ箱にある場合に別名で移動
   recycle:touch = no ← ごみ箱へ移動時にタイムスタンプを更新しない
   recycle:maxsize = 0 ← ごみ箱へ移動するファイルのサイズ上限(0:無制限)
   recycle:exclude = *.tmp ~$* ← ここで指定したファイルはごみ箱へ移動せずに即削除する
   共有ディレクトリのごみ箱機能追加(ここまで)

プリンター共有を無効

   load printers = no ← 追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合
   disable spoolss = yes ← 追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合

ドットファイルを隠す

これで、ドットファイルを隠しファイルとして扱うのですが・・・
Windowsのすべてのファイルを表示するだと、結局表示されてしまいます。

hide dot files = yes

こうすると、うまくドットファイルは隠してくれます。

veto files = /.*/