UR建築研究所UR建築研究所boxAC総合計画AC総合計画 face UR Architectural LabboxAC Integrated Planning
headline
corner
■Samba

LAN内のPCにPC-UNIXをインストールして、何はともあれインストールしておくアプリケーション、もしくはファイルサーバーとしても用途の多いのがこのSambaではないでしょうか。また、Windows2000サーバーを導入するよりもうまくすると随分ローコストでほぼ同等の機能を持つファイルサーバーを立ち上げる事ができます。

■Sambaの特徴

PC-UNIXをインストールしたPCをWindowsマシンとネットワークで接続しただけでは、例えばpingコマンド等を使ってお互いに相手のマシンがネットワーク上に存在する事を確認する事はできても、フォルダを共有設定したWindowsマシン同士のように、簡単にファイルをやり取りする事はできません。SambaはUNIXシステム上のファイルを、ネットワーク上のWindowsクライアント同士と同じように、「ネットワークコンピューター」から読書きできるようにする為のアプリケーションです。また、プリンタをSamba経由でWindowsクライアントから共有できるようにしたり、ドメインコントローラーの機能も提供するので、Windowsクライアントマシンからは、ネットワークコンピューター上に存在するWindows2000サーバーとほぼ同じ様に振る舞うサーバーコンピューターとして利用する事ができます。

ではなぜファイルサーバーやドメインコントローラーが必要なのでしょう。例えばあるファイルが手元以外のPCに保存してあるとすると、そのファイルを読込む為には当然そのPCは起動していなければいけません。起動していなかった場合、すぐ隣にある場合は大して手間でもないかもしれませんが、少し離れた場所にある場合は、その都度立上げるのはいかにも手間がかかってしまいます。また、クライアント毎にバラバラのルールでファイルを管理していると、似たような物を重複して作成してしまっていたり、探すにも手間がかかったりします。
業務上必要なファイルを常時起動しているサーバー上で一括管理しておく事で、ファイル管理のルールも決めやすくなりますし、使いまわしの効くファイルは共有もしやすくなります。

ドメインコントローラーはログオンするユーザーアカウントを一括管理するしくみで、サーバー側で設定されたアカウントで、どのクライアントからもログオンする事ができるようになり、Windows NTや2000の場合でも、クライアント毎にアカウントを設定しておく必要がなくなります。
そしてサーバー側で一括管理されたユーザーだけが共有ファイルを利用できるようにしておく事で、情報の安全性も高まりますし、合理的でもあります。
またドメインコントローラーにログインすると、サーバー側に用意されたログオンスクリプトが、クライアントで実行されます。ログオンスクリプトとは、プログラムでもBATファイルでもいいのですが、例えばログオンする度に社内報がオープンされるようにしたり、サーバーと時刻合せをしたり、といった使い方ができます。

■Sambaのインストール

この原稿執筆時点での日本語最新版はsamba-2.2.2-ja-1.1.tar.gzです。

  • コンパイル、インストール (以下、% # はシェルのプロンプトを表す)

% tar xvzf samba-2.2.2-ja-1.1.tar.gz
% cd samba-2.2.2-ja-1.1/source
% ./configure
% make
% su
Password: ********
# make install

  • 設定ファイルを用意する。

/usr/local/samba/lib/smb.confを用意します。

smb.confの例
[global]
workgroup = WORKGROUP
netbios name = Samba
server string = Samba Server
encrypt passwords = Yes
min passwd length = 3
unix password sync = Yes
log file = /var/log/samba/log.%m
max log size = 500
socket options = TCP_NODELAY
coding system = euc
logon script = startup.bat
logon path = \\%N\profiles\%U
domain logons = Yes
os level = 65
preferred master = Yes
domain master = Yes
dns proxy = No
wins support = Yes

[homes]
comment = Home Directories
read only = No
browseable = No

[netlogon]
comment = logon scripts
path = /var/samba/netlogon
guest ok = Yes

[profiles]
comment = user profiles
path = /home/profiles
read only = No
guest ok = Yes

  • ログオンスクリプト用ディレクトリを用意

# mkdir -p /var/samba/netlogon
# chmod 755 /var/samba /var/samba/netlogon

  • 移動プロファイル用ディレクトリを用意

# mkdir /home/profiles
# chmod 777 /home/profiles

  • ログオンスクリプトを用意

/var/samba/netlogon/startup.batを用意する。

ログオンスクリプトの例
net time \\candy /set /yes
rundll32 url,FileProtocolHandler http://www.yahoo.co.jp

  • 起動するには、rootになって

# /usr/local/samba/bin/smbd -D
# /usr/local/samba/bin/nmbd -D

システム起動時にsambaも自動で起動するには、/etc/rc.d/rc.local (Linux)に

if [ -f /usr/local/samba/bin/smbd ]; then
    /usr/local/samba/bin/smbd -D
    /usr/local/samba/bin/nmbd -D
fi

を追記する。(FreeBSDの場合は、/etc/rc.local)

  • ユーザーアカウントの作成

sambaではUNIXのシステムアカウントを作成し、更にそれをsambaにも登録しなければいけません。yamadaというアカウントを作成するとして、まずシステムアカウントを作成します。

Linuxの場合
# /usr/sbin/useradd yamada
# passwd yamada
Changing password for user yamada
New UNIX password:********
Retype new UNIX password:********
#

FreeBSDの場合
# pw useradd yamada -h 0
passwd: ********
#

sambaにアカウントを登録する
# /usr/local/smaba/bin/smbpasswd -a yamada
New SMB password: ********
Retype new SMB password: ********
# /usr/local/smaba/bin/smbpasswd -e yamada
User yamada enabled.
#

  • マシンアカウントの作成

WindowsNT/2000/XP からドメインログオンをする場合、samba側に、ログオンするPCのマシンアカウントの作成が必要です。(Windows95/98/MEは不要です。)
PCの名前がblueの場合

Linux編
# /usr/sbin/useradd blue$ -d /dev/null -s /
# smbpasswd -a -m blue$

FreeBSD編
# pw useradd blue$ -d /dev/null -s /
# smbpasswd -a -m blue$

  • クライアントの設定
Windows98

「コントロールパネル」→「ネットワーク」を開いて、「現在のネットワークコンポーネント」の中から「Microsoft ネットワーククライアント」のプロパティを開く。
「Windows NT のドメインにログオンする」にチェックを付けて、「Windows NT ドメイン」にsmb.conf中でworkgroup = に指定した名前を入力する。

Windows NT

管理者でログインし、「コントロールパネル」→「ネットワーク」を開いて、「識別」タブの「変更」ボタンをクリックする。
「次のメンバー」の中で「ドメイン」にチェックを付けてドメイン名を入力する。

Windows 2000

管理者でログインし、「コントロールパネル」→「システム」を開いて、「ネットワークID」タブの「プロパティ」ボタンをクリックする。
「次のメンバー」の中で「ドメイン」にチェックを付けてドメイン名を入力する。

  • SWATの設定

sambaではsmb.confの設定を変更したり、アクセス状況をチェックしたりするWEBインターフェース-SWATが標準で添付されています。

/etc/services に次の行を追加する。

swat    901/tcp

/etc/inetd.conf に次の行を追加する。

swat  stream  tcp   nowait.400   root /usr/sbin/swat swat

inetdのPIDを調べる

# ps -ax | grep inetd
*** ?       S    0:00 inetd

inetdを再起動する。

# kill -HUP ***              (***はinetdのPID)

■関連リンク