Windowsの最近のブログ記事

2015年1月13日

samba を複数起動する

ちょっと事情がありまして、1台のサーバーで samba サーバーを複数起動する方法を調べてました。

ネットワークインターフェイス毎に1台のサーバーでそれぞれ別の SMB ファイルサーバーサービスを提供したいなどに便利です。

まずは、すでに起動している samba の設定ファイルとは別の smb.conf を用意します。

# cp -ar /etc/samba/smb.conf /etc/samba/smb_srv2.conf 

新しく作成した設定ファイルの内容を変更します。まずは、ネットワーク周り。interfaces、host allow、bind interfaces only、socket address などを公開したネットワーク向けに明示的に設定します。

interfaces = 192.168.1.123/24
bind interfaces only = yes
socket address = 192.168.1.123
hosts allow = 127. 192.168.1.0/24
log file = /var/log/samba/log_srv.%m

smb ports = で別のポートを指定するのもいいかもしれません。

次に、認証関係。このままでは、デフォルトの samba サーバーと同じユーザー認証情報をみてしまうので追加の samba サーバーが別のユーザー DB を持てるように、passdb の位置を新たに指定します。

passdb backend = tdbsam:/var/lib/samba/private/passdb_srv2.tdb

smb.conf の Share Definitions セクションを追加の samba サーバー用に設定したら pdbedit でユーザーを追加します。-b オプションで DB タイプとそのパスを渡すことで、デフォルトの samba サーバーとは別の db に操作が可能です。

# pdbedit -b tdbsam:/var/lib/samba/private/passdb_srv2.tdb -a -u USERNAME

ここまできたら、一度起動してみます。

# smbd -D -s /etc/samba/smb_srv2.conf

確認

# netstat -antp | grep smb
tcp        0      0 192.168.0.200:445            0.0.0.0:*                   LISTEN  4336/smbd
tcp        0      0 192.168.1.123:445            0.0.0.0:*                   LISTEN  14669/smbd

192.168.1.123:445 が samba_srv2 です。クライアントから、192.168.1.123 へ SMB で接続し、さっき追加したユーザーでログインできることが確認できればOK。

右に出ているプロセスID でいったん samba_srv2 を停止。

# kill -9 11454

samba の起動スクリプトをコピーして samba srv2 向けのものを作成するといいと思いますが、一時的な利用なので今回はここまで。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちWindowsカテゴリに属しているものが含まれています。

前のカテゴリはVirtualizationです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。