はじめに

sambaはactive directoryや、Windowsネットワークやドメインの機能を再現する方向で開発が進んでおり、smbpasswordが廃止されたり、winbinddが利用されたりと、動作させるための仕組みや、設定方法がだいぶ変わってきています。
その結果、samba 3.xの頃に書いた、この導入ページが全く役に立たなくなってしまいました。

ということで、このページではsamba4をFreeBSD上で誰でもアクセスできるようにする最低限の設定方法について説明します。
Windowsネットワークやドメインコントローラなどとの連携については、他所のページを見てください。

「libiconv」のビルド

samba 4.xでも、samba 3.xと同じくファイル名等に日本語を扱う際に、iconvと呼ばれる外部機能を利用します。

インストールはportsを利用して行います。
portsの取得および展開方法については、「最新のportsを取得して展開する」を参照してください。

portsの展開が完了した後、下記手順で「libiconv」をmakeし、インストールします。

「libiconv」のインストール
$ cd /usr/ports/converters/libiconv
$ make config-recursive
$ make install clean

設定画面が表示されるので、「EXTRA_PATCHES」にチェックを入れてからOKを選択してください。
Samba 4.xでは、ファイルシステムの文字コード変換にlibiconvを利用しています、上記のようにすることにより、Windows上での日本語フォルダ/ファイル名が正しく表示されるようになります。

完了後、下記方法で「libiconv」が正しくインストールされているか確認してください。

「libiconv」の動作確認
$ iconv -l | grep EUCJP-MS

「EUCJP-MS」が表示されれば、libiconvは正しくmake、インストールされています。

「samba 4.x」のビルド

次に、samba 4.x本体をportsからmakeします。

「samba 4.x」のビルド
$ cd /usr/ports/net/samba41
$ make config-recursive
$ make install clean

途中、make時のオプションを選択する画面が表示されますので、必要なものを適宜チェックしてください。

「smb4.conf」の設定

次に、samba 4.xの設定ファイルである「smb4.conf」を編集します。
FreeBSDでは「smb4.conf」は「/usr/local/etc/」に格納されていますので、エディタで下記の通り編集してください。

「smb4.conf」の設定
[global]
   workgroup = kishiro.local
   server string = Samba Server (FreeBSD)
   security = user
   hosts allow = 192.168.0.
   interfaces = 192.168.0.11/24
   map to guest = Bad User
   guest ok = yes
   guest only = yes
   guest account = nobody
   load printers = no
   log file = /var/log/samba4/log.%m
   max log size = 50
   dns proxy = no 
   unix charset = CP932
   dos charset = EUCJP-MS
   create mask = 600
   directory mask = 700
   printing = bsd

[share]
   comment = Shared Directories
   path = /home/share
   browseable = yes
   writable = yes

[global]セッションでは、すべてのセッションで共有される設定を記載します。
「workgroup」はこのsamba 4.xサーバが参加するワークグループを、「server string」はWindowsのネットワークコンピュータ上で表示されるsamba 4.xサーバの説明を記述してください。

「security」は、samba 4.xのファイルの共有方法についての設定です。
samba 4.xでは、誰でもパスワード認証なしにアクセスできる「security=share」の設定がなくなっています。
「security=share」の代替としては、「security=user」かつ「map to guest=Bad User」の組み合わせがあります。
この設定では、ユーザ認証でコケたユーザは、guestにマップされるようになります。
このため、UNIXユーザやsambaユーザの設定をせずとも、従来の「security=share」の設定時と同じ使用感でsambaを利用可能になります。

尚、guestにマップするにはゲストアカウントを有効にする設定「guest ok=yes」が必要ですので、ご注意ください。

尚、smb4.confの設定が正しいかどうかを検証するツールとして「testparm」があります。
引数等は特に不要ですので、起動時にエラーが出る場合に使ってみてください。

起動に必要なディレクトリの作成

samba4では、動作時にユーザ管理DBやログなどをいくつかのディレクトリに保存して管理します。
portsからインストールした直後の状態では、これらのディレクトリは存在せず、ディレクトリがないままsamba4を起動しようとするとエラーで終了するため、以下の通り必要なディレクトリを作成します。

samba4の動作に必要なディレクトリの作成
$ mkdir -p /var/db/samba4/private
$ mkdir -p /var/log/samba4

「/var/db/samba4/private」にはユーザ管理用のDBが、「/var/log/samba4」にはログファイルが格納されます。

「rc.conf」の設定

最後に、システムの起動時にsamba 4.xが自動的に起動するよう、「/etc」に格納されている設定ファイル「rc.conf」に下記の記述を追記します。

「rc.conf」の設定
samba_server_enable="YES"

samba 3.xの時(「samba_enable="YES"」)と違い、「samba_server_enable="YES"」ですので注意してください。
この設定により、システム再起動時にsamba 4.xが自動的に起動するようになります。

変更履歴

2014/12/01

・ビルドの説明のキャプションが誤って「samba 3.xのビルド」となっていたのを修正。
ご指摘頂いた方、ありがとうございました。

2014/11/14

・タイトルが誤って「【FreeBSD】Windowsとファイルを共有する (samba 3.x)」となっていたのを修正。

2014/06/05

・samba4のログ格納先のディレクトリをportsデフォルトの「/var/log/samba4」変更。

2014/05/27

・samba4の起動に必要なディレクトリの作成ついて追記。


あなたの探し物は見つかりましたか?
まさにこれだ
参考になった
ちょっと違う
これじゃない

何かメッセージがあればお願いします

このメッセージを非公開にする

ご注意

・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。


まさにこれだ
9 (90%)
参考になった
1 (10%)

【まさにこれだ】 Good JOB! (2020/02/16 Sun 20:51:16)