Samba

最終更新日時:2011-11-25 00:00:00
その他UNIX系

Samba は UNIX 系のマシンで Windows 互換なファイルサーバを実現するオープンソースなアプリケーションです。
もっと具体的に書くと、Samba をインストールすることによって、Windows 上のネットワークコンピュータに UNIX マシン上のディレクトリを出現させ、そのディレクトリ以下のファイルをあたかも Windows のファイルであるかのように操作することが可能です。
また同様に、UNIX マシン上で設定済みのプリンターを Windows 上から使用することも可能にします。
さらに、Windows上の共有領域をUNIX上から参照することも可能にします。

インストール


samba-2.2.8a-ja-1.0 の例です。
※samba-3.xでもほぼ同様です。samba-3.2.xでは日本語版は無い模様

まず、アーカイブを日本 Samba ユーザ会 からダウンロードして、展開します。

 % bzip2 -dc samba-2.2.8a-ja-1.0.tar.bz2 | tar xvf -
 % cd samba-2.2.8a-ja-1.0


あとは お決まりの方法で make します。

 % cd source
 % ./configure
 % make
 % su
 # make install 


設定


Samba の設定ファイルは smb.conf という名前で、デフォルトでは /usr/local/samba/lib に置きます。
1から作るのは大変なので、examples/smb.conf.default をコピーし、これを編集します。
編集内容はたくさんあるので省略(/_\;)
smb.conf.default のコメントを見ながら編集していけば問題ないでしょう。
一通り編集が終わったら、/usr/local/samba/bin/testparm を使用して Samba の設定をテストをすることが出来るので、これを実行してみます。

起動方法


Samba には メインのプログラム smbd と、名前解決のためのプログラム nmbd があり、これら2つのプログラムを実行します。
以下の例ではデーモンとして2つのプログラムを実行します。

 # smbd -D
 # nmbd -D


これを rc.local あたりに書いておいて起動時に実行させても問題無いのですが、example/svr4-startup/samba.server にスタートアップ用のスクリプトが用意されているので、これを参考にしてスタートアップ用のスクリプトを作成して/etc/rc.d/init.d に設置し、起動時に実行されるよう設定します。

ライブラリパスについて


samba-3.2では共有ライブラリが分離されたらしく、samba/lib以下に配置され、通常の設定では参照できませんので、以下のようにライブラリパスを追加します。

 # echo "/usr/local/samba/lib" > /etc/ld.so.conf.d/samba.conf 
 # ldconfig


SELinuxについて


Samba は SELinux が有効な環境下では正常に動作しないようです。

共有領域のディレクトリにアクセスすると開けない旨表示が行われ、Samba のログにこんなのが出ていたのですが、、、、

 canonicalize_connect_path failed for service share, path /project/share/xxx


SELinux を無効にすると正常に動作しました。

お問い合わせは 掲示板 にて。