日経Linux 2000年 3月号 挑戦Linux
「SambaによるWindowsファイルサーバ構築」

日本Sambaユーザ会
小田切 耕司(三菱電機)
高橋 基信(NTTデータ)
野 賢一朗(Project BLUE)

はじめに

ご存じな方も多いと思いますが、Samba(サンバと読みます)はLinuxなどのUNIXマシンをWindowsのファイルサーバにするオープンソースソフトウェアです。

はじめ日経Linux編集の方から「Sambaを使った異機種間ファイル共有」についてコラムを執筆してくれと依頼されたのですが、現在のSambaはUNIXとWindowsを接続するためのツールではなく、「Windows NT Server を置換するためのWindowsファイルサーバです。」ということでこのタイトルで執筆することになりました。

例えば、UNIXで一般的なNFS(ネットワークファイルシステム)は、Windowsファイルサーバとしての必須機能であるOLE 32ビットロッキングをサポートしていないため、UNIX - Windows間のデータ交換程度にしか使用できず、機能や性能面でWindows NT Server を置換することは不可能なのです。

では、なぜSambaでファイルサーバを構築するのがいいのでしょうか?

答えは簡単です。Windows NT Serverと違ってソフトウェアのライセンス費用がまったくかからなくなるからです。

日本Sambaユーザ会の紹介

ここで簡単に日本Sambaユーザ会を紹介したいと思います。

日本Sambaユーザ会(略称:Samba-JP) http://www.samba.gr.jp/

1999年11月12日に「Sambaの研究開発、国際化および普及促進を図る」「 Sambaに関する情報の収集と公開、技術移転の促進」「会員相互および外部との技術的・人間的交流を図る」ためにユーザ会が発足しました。

個人ユーザを対象とした一般会員はもちろん、企業やユーザ団体を対象にした賛助会員も随時募集していますので、よろしくお願いします。

今回は、このユーザ会のメンバであり、Samba日本語版の開発プロジェクトを進めているコアメンバによって、「SambaによるWindowsファイルサーバ構築」方法を解説したいと思います。

今回の解説は、ユーザ会が開発を進めているSamba日本語版をベースに解説します。
もちろん、ソースおよびバイナリパッケージは、本誌付録CD-ROMに収録されていますので、これを使うことを前提に解説します。


Samba日本語版とは

Samba日本語版は、オリジナルに対して以下の改良が加えられており、初心者に大変使いやすいものとなっています。

現在の日本語版のバージョンは、2.0.5aJP2です。(オリジナル英語版は、2.0.6です)

最新版は、日本Sambaユーザ会のページ http://www.samba.gr.jp/samba_japan/ で公開していますので、ぜひチェックをお願いします。


Sambaのインストール

それでは、Samba日本語版のインストールをしましょう。

ここでは、RedHat/Turbo Linux に則したインストール方法を紹介します。
(もし、RPMが提供されないディストリビューションをお使いの方は、資料*を参考にしてインストールしてください)。

 Sambaはインストール時に標準で入っていることが少なくないのですが、今回は、すでにSambaがインストールされている場合も、Samba日本語版に置き換えてしまいましょう
(以下の作業は root になって行うものとします)。

まずは、念のためインストールされているSambaを削除します(図*)。

$ su -
Password: ********** <-----パスワードを入力します
# rpm -qa | grep samba    <-----インストールされているSambaのパッケージをリストし、すべて削除します
# rpm -e samba-client     <----- Linuxによってパッケージの種類は異なります。
# rpm -e samba
# rpm -e samba-common     <----- Linuxによってパッケージの種類は異なります。
# rpm -e smbfs     <----- Linuxによってパッケージの種類は異なります。

次に、本誌のCD-ROMに入っているSambaのインストールします(図*)。

# mount /dev/cdrom /mnt/cdrom
# cd /mnt/cdrom/samba/redhat/  <---お使いのディストリビューションにあわせて設定してください。
# rpm -ihv samba-common            <----- Linuxによってパッケージの種類は異なります。
# rpm -ihv samba-client                <----- Linuxによってパッケージの種類は異なります。
# rpm -ihv samba

これで、Samba日本語版のインストールは終了です。

バイナリパッケージが無いときのインストール方法

あなたの使用しているLinux用のバイナリパッケージがない場合は、以下に注意して自分でSambaをソースからコンパイルする必要があります。

以下に簡単にコンパイル手順を述べます。

��RPMの作成

# tar xvzf samba-2.0.5aJP2.tar,gz              <----ファイルの解凍
# cd samba*/package                            <----該当OSのディレクトリが無いか調べます。
# cd RedHat                                            <----これはRedHatの例です。
# sh makerpms.sh                                  <----RPMを作成します

��Linuxカーネル2.0でのコンパイル
もし、Linuxカーネルが2.0系でsmbmountがコンパイルエラーになったら以下を実行します。

# cd /usr/src/redhat/BUILD/samba*/source
# ./configure --prefix=/usr --libdir=/etc --with-lockdir=/var/lock/samba
    --with-privatedir=/etc --with-swatdir=/usr/share/swat --with-smbwrapper
    --with-automount --with-quotas --with-pam
# make all smbwrapper install

�� RPMのインストール
上記�,慮紂�/usr/src/redhat/RPMS/i386/にうまくRPMが作成できたら、以下を実行します。

# rpm -ivh samba*

�� Samba日本語版のインストール
上記��の後、RPMをいれてもSWATが日本語化されていなかった時のみ、以下を実行します。

# cd /usr/src/redhat/BUILD/samba*/source
# make  install

Sambaの設定

Samba日本語版が正しくインストールできると以下のような日本語版SWAT(Samba Web 管理ツール)を使って、簡単に設定が可能になります。

起動方法は、 http://Sambaサーバ名:901/ です。

しかし、SWATはWindows版のMSIEかNetscapeで使用するようにしてください。
決して、Linux版のNetscapeなどを使用するのは止めましょう。
理由はNetscapeにバグがあって、設定を変更するとsmb.confが壊れてしまうからです。
VineLinuxなどの一部のNetscapeは更新しても大丈夫のようですが、Linuxではドキュメントの参照程度にしましょう。

もし、SWATが動かない場合は以下を確認下さい。

  1. /etc/servicesの確認
    以下のエントリがあるか確認し、なければ追加します。
    swat 901/tcp
  2. /etc/inetd.confの確認
    以下のエントリがあるか確認し、なければ追加します。 (/usr/sbin/swatがあることを確認)
    swat stream tcp nowait.400 root /usr/sbin/swat swat
  3. inetd に HUP を送信
    inetd をリスタートする為に, inetd のプロセスに HUP を送信します。
    kill -HUP  (inetdのプロセス番号)
cp samba-2.0.5aJP2/packaging/RedHat/samba.pamd /etc/pam.d/samba

SWATの表紙

Sambaの設定は画面の上部にある以下のアイコンをクリックして行います。

アイコン 内容
home.gif (1881 バイト) SWATの表紙です。

日本語の説明や技術資料を簡単に見ることができます

globals.gif (1613 バイト) Samba全体の設定を行う[GLOBAL]セクションの設定ができます。
セキュリティ モードもこの中で設定します。
shares.gif (1590 バイト) 共有フォルダ毎の設定ができます。
ユーザホーム機能を提供する[homes]セクションもここで設定します。
printers.gif (1987 バイト) プリンタ共有の設定をします。
プリンタ共有全体を提供する[printers]セクションもここで設定します。
status.gif (2582 バイト) Sambaデーモンの起動・終了ができます。
誰が共有ファイルをアクセスしているか、表示されます。
ユーザのセッションを強制切断することが可能です。
viewconfig.gif (1485 バイト) smb.confの内容を表示します。
passwd.gif (1427 バイト) ユーザの追加・削除、パスワードの変更などを行えます。

まず、表紙にある「導入編」にあるドキュメントは、必ず目を通しておいて下さい。

セキュリティモードの決定

Sambaの設定は、smb.conf (Linuxの場合は、通常 /etc/smb.conf )を(SWATやテキストエディタを使って)編集することで行いますが、これに先だってまず以下の4つのセキュリティ モードから1つを選ぶ必要があります。

みなさんセキュリティモードは決まりましたか? では、実際の設定に移ります。

では、「全体設定 [GLOBALS] 」アイコンをクリックして、設定を開始しましょう。

パラメータはたくさんでてきますが、今回は紙面の関係上、重要なパラメータだけを解説します。

(SWATは、最初重要なパラメータまたはデフォルト以外を設定しているパラメータを表示します。
「詳細表示」ボタンを押すことですべての設定可能パラメータを表示させることができます)

全体設定 [Global]

基本オプション

Sambaの所属する(あるいはクライアントへ応答する)ワークグループ名/ドメイン名を指定します。
Windowsクライアントで指定するものと同じワークグループ名/ドメイン名を指定しましょう。

例: workgroup = EIGYO1

「ネットワークコンピュータ一覧」で詳細表示した時、「サーバの説明」と「プリンタの説明」に表示する文字列を指定します。

文字列の中の%v は Samba バージョン番号と置換され、%h は ホスト名に置換されます。

既定値: server string = Samba %v

例: server string = Samba %v on %h Linux

このオプションは、Samba サーバが複数のインタフェイスを持つ(つまり、LANカードが2枚以上刺さっているマシンなど)場合にやSambaが正しくサブネットマスクを認識できない時に指定します。

複数のネットワーク・インターフェースを、IP アドレス/ネットマスクのペアのリストで指定します。ネットマスクはビット・マスク、またはビット長となります。

セキュリティ オプション

先に説明したセキュリティ・モードを指定します。

暗号化されたパスワードを使用するかどうか、指定します。

Windows NT 4.0 SP3 以降やWindows98,Winodws2000,アップデートの適用されたWindows95では暗号化パスワードが必要になりますので、必ずyesとしましょう。

暗号化パスワードはLinuxの場合、通常 /etc/smbpasswd (または、smb passwd fileで指定したもの)に格納します。

チューニング オプション

性能のために以下を指定することをお薦めします。
(バッファサイズ8KBはWindows NT Serverと同じ値です)

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

ファイル名の取扱オプション

WINSオプション

セグメントが複数ある場合やマシンの台数が10台以上ある場合は、できる限りWINSサーバを設置しましょう。
Windows NT Serverがあれば、それをWINSサーバにしましょう。
なければ、SambaマシンをWINSサーバにしましょう。

WINS(Windowsインターネット名前サービス)サーバ(自身以外)のIPアドレスを指定します。

必要なパラメータを入力したら、「設定」ボタンを押して確定します。


共有フォルダの設定方法

 それでは、実際にファイル共有の設定をしてみましょう。

SWATを開き、「共有設定」のボタンを押します。
次に新規の共有名を入力し、「新規共有作成」のボタンを押すとパラメータの入力画面が出てきます。
ここでは、例として共有名を「企画」としておきましょう。

共有設定 [Share]

基本オプション

共有名のコメント(説明)を記述します。

通常のSambaでは、ここに日本語は使用できません。
Samba2.0.5aJP2だけが、日本語を使用できます。

例: comment = 企画の共有フォルダ

このパラメータは、ユーザがアクセスするディレクトリを指定します。

例: path = /home/kikaku

セキュリティ オプション

コンピュータ一覧表示オプション

net view コマンドの出力や「ネットワーク コンピュータ」の共有一覧にこの共有を見せるかどうか指定します。

ユーザホーム機能を提供する[homes]の場合は、browseable = Noとします。

既定値: browseable = Yes

パラメーターの詳細は上に示したとおりです。これにあわせて今回は、以下のように設定しようと思います。

[企画]
comment = 企画の共有フォルダ
path = /home/kikaku
read only = No

 これらの入力が終わったら、「設定変更」のボタンを押してください。
これで、Linux側の /home/kikaku が Windows 側に共有されることになります
(当然ながら、Linux側に /home/kikaku というディレクトリが必要です)。
この設定では、Sambaのアカウントを持つどのユーザーにもこの「企画」という共有を読み書きできるようになっています(※1)。

(※1) Linux側で書き込み可能のパーミッションが設定されている必要があります。


共有プリンタの設定方法

Sambaサーバで共有プリンタを使うには、まずLinux上でプリンタを使用できるようにする必要があります。

/etc/printcapに設定を記述してもいいですが、今回は初心者向けということで RedHat系でよく使われるprinttoolを使った方法を紹介します。

printtoolを使うには、Linuxに(GNOMEやKDEのような)X-Windowシステムをインストールする必要があります。
そうすれば、プログラムメニューに「コントロールパネル」や「プリンタ設定」がありますので、それを起動しましょう。

もし、見つけられなければ、ktermなどから、 printtool と入力すると以下のような画面が起動するはずです。
(Linuxによっては、以下のメニューは日本語かもしれません)

printtool1.gif (4327 バイト)

新規にプリンタの作成する場合は、「Add」ボタンを押します。
マシンのパラレルポートにつながったプリンタの場合は、以下の「Local Printer」をチェックします。

printtool2.gif (2521 バイト)printtool3.gif (3584 バイト)

Sambaで使うプリンタに「Input Filter」は指定しては、いけません。
(設定にプリンタの型番や種類、Linuxのプリンタドライバは必要ありません)

「Suppress Headers」は、印刷セパレータを使いたい時にチェックをはずします。

以下にこれによって、生成される /etc/printcap の内容を載せます。
printtoolがない環境では、以下を /etc/printcap に記述してください。
(2行目以下の左側空白はタブでないと印刷できないので注意下さい。)
もちろん、その場合は、スプールディレクトリは自分で作成する必要があります。

lp:\
    :sd=/var/spool/lpd/lp:\
    :mx#0:\
    :lp=/dev/lp0:

ネットワーク上にある lpr (lpd)プリンタを使用する時は、以下のように「Remote Unix (lpd) Queue」をチェックします。
(ここでは、プリンタにネットワークカードを指したり、プリンタボックスに接続するネットワークプリンタを想定しています)

printtool4.gif (2605 バイト)printtool5.gif (8678 バイト)

「Remote Host」には、プリンタのホスト名かIPアドレスを、「Remote Queue」には、キュー名(lpが一般的です)を指定します。
ローカルプリンタと同様に「Input Filter」は指定しては、いけません。

以下にこれによって、生成される /etc/printcap の内容を載せます。
printtoolがない環境では、以下を /etc/printcap に記述してください。
(2行目以下の左側空白はタブでないと印刷できないので注意下さい。)

lp0:\
    :sd=/var/spool/lpd/lp0:\
    :mx#0:\
    :rm=lp9200sx:\
    :rp=lp:

printtool6.gif (4819 バイト)

上記は、ローカルプリンタとリモートプリンタを設定した例です。

実はこれでもうできたも同然です。SWATの「プリンタ設定」で以下を設定すればOKです。
(プリンタ毎の設定は通常必要ありません。きめ細かな設定が必要な時のみプリンタ毎に設定して下さい。

なぜなら、OS(の/etc/printcap)に設定してあるすべてのプリンタを、Sambaで公開する設定の「load printers = yes」はデフォルトなので通常指定する必要はないからです。

[printers]
path = /var/spool/samba      # このディレクトリは、chmod 777(rwxrwxrwx)に しておきます
writeable = no
guest ok = yes
printable = yes

Sambaの起動

SWATを使って設定がうまくいったら、引き続いて、Sambaを起動しましょう。

SWATの状態表示(STATUS)ページを開いて、smbd (ファイル共有デーモン) と nmbd (ネームサービスデーモン) を立ち上げます。

動作確認をして問題がなければ、毎回手動で立ち上げるのは大変ですから、次回起動時からはSambaが自動的に立ち上がるように設定しておきます。

Red Hat Linux/Laser5 Linux/Vine Linux /Turbo Linuxの場合は以下のコマンドで行います。

/sbin/chkconfig --add smb

Sambaの起動スクリプトが /etc/rc.d/init.d/smb にあることを確認下さい。
もしなければソースのパッケージディレクトリから、smb.init ファイルをコピーします。


Sambaユーザの作成

次は、ユーザーの設定をします。

Sambaのユーザーは、Linuxのユーザー設定とともにSamba独自の設定が必要となります。

● 既存LinuxユーザーをSambaユーザとして登録

まずは、既存のLinuxユーザー設定をそのままSambaの設定に移行してみましょう。

# mksmbpasswd.sh < /etc/passwd > /etc/smbpasswd
# chmod 600 /etc/smbpasswd

但し、この設定は /etc/passwd に記述してあるユーザーをSamba側にエントリされるだけでパスワードは、また個別に設定しなくては行けません。

Sambaユーザーのパスワードの設定はsmbpasswd を用いておこないます。
(例は、hamanoというユーザのSambaのパスワードの設定をしています)

# smbpasswd hamano
New SMB password:        <-----パスワードを入力
Retype new SMB password: <-----再度パスワードを入力
Password changed for user hamano.

rootなどのシステムアカウントをSambaに接続させたくないときは、/etc/smbpasswd からユーザ行を削除しましょう。

● Linuxユーザーの登録

新しくSambaユーザを登録するには、まずLinuxのユーザーを登録する必要があります。

これは、Sambaに限った設定ではなく、一般的なユーザーの登録方法です。
GUIのツール(linuxconfなど)もしくはコマンド(図*)で設定してください。
この設定は、/etc/passwdに格納されます。

# /usr/sbin/useradd -m hamano

● Samba側のユーザー設定

Linuxのユーザーを登録してから、以下のようにSambaユーザを登録します。

# smbpasswd -a hamano
New SMB password:        <-----パスワードを入力
Retype new SMB password: <-----再度パスワードを入力
Added user hamano
Password changed for user hamano.

 


Windowsクライアントの設定

ここまで、一通り Samba サーバ側の設定を行ないましたので、次に Windows95/98/NT クライアント側の設定について解説します。

とはいえ、基本的に Samba であることによる特別な設定は一切不要です。
既にクライアントを導入している場合は、基本的に何ら設定を変更することなく Samba サーバへのアクセスが可能です。

ただし、Samba サーバにアクセスするには、各クライアントに TCP/IP がインストールされていることが必要です。
最近は少なくなりましたが、現在のネットワーク環境で TCP/IP を利用していない場合は、Samba サーバにアクセスすることは出来ません。

PRTCL95.GIF (12709 バイト)

Samba サーバの設定で新規にワークグループを構築した場合は、図x0 のようにワークグループ名を先程設定したものにあわせます。
Windows NT でも同様にワークグループ名を変更してください。

Windows95/98の設定例
MSNETW2.GIF (11447 バイト)

WindowsNTでの設定例
WGRPNT1.GIF (14665 バイト)

(注1)
Samba サーバを既存のワークグループに参加させた場合は、クライアント側では何も設定する必要はありません。

(注2)
実際には Samba サーバにアクセスするためには、必ずしもワークグループ名が同一である必要はありません。
例えば WINS 等で名前解決が出来ていれば UNC名(\\サーバ名\共有名)を直接指定してアクセスしても構いません。

再起動後「ネットワークコンピュータ」アイコンをクリックすると、Samba サーバが確認できると思います。
なお、図x-1 のように、最新の Samba 日本語版では、コンピュータ名や共有名に日本語(半角カナは不可)を指定した場合でも、正しく表示されるようになっていますので、既存環境との親和性が更に高まっています。

x-1-256.gif (6709 バイト)

更に共有フォルダアイコンをクリックすると、設定によってパスワードを求められたり、図x-2 のように、そのまま内部を見られたりするはずです。
図-x2 を御覧になれば分かるように、クライアントからは Windows マシンにアクセスしているのか、Samba サーバにアクセスしているのかは全く分かりません。
x-2-256.gif (6639 バイト)x-3-256.gif (9489 バイト)

Sambaのプリンタをクライアントから使用するには、(Linux側にプリンタドライバは必要なく)クライアント側にプリンタドライバが必要です。

プリンタを設定するには、「ネットワークコンピュータ」からSambaマシンをクリックして、現れるプリンタアイコンをダブルクリックするだけでインストールが開始されます。
プリンタドライバの場所を聞いてきますので、プリンタに付属していたものやインターネットで最新のWindows用のものをダウンロードして使用して下さい。


ユーザホーム機能の使い方

共有の表示時に、クライアントのユーザ名を共有名としてマッピングして表示する機能です。

たとえば、yamadaというアカウントでSambaマシンをアクセス(ネットワーク・コンピュータをクリック)した場合、UNIX上の/home/yamadaが共有名yamadaとして表示され、また、suzukiというアカウントでSambaマシンをアクセス(ネットワーク・コンピュータをクリック)した場合はUNIX上の/home/suzukiが共有名suzukiとして表示されます。
これによってユーザごとの専用のディレクトリを提供し、他人のディレクトリをアクセスするのが防げます。
userhome.gif (9267 バイト)

smb.conf設定例(1)

(Linuxに登録した)Sambaユーザ名とWindows(にログオンする時の)ユーザ名が1対1で対応する場合

[global]
security = USER
encrypt passwords = Yes
# SWATの「全体設定」で指定します。
# security = DOMAINまたはSERVERでも構いません
[homes]
comment = %U さん専用の共有です
valid users = %S     
read only = No
browseable = No
# SWATの「共有設定」でhomesという共有を作成します。
# 日本語は、Samba2.0.5aJP2でないと使用できません
# 該当ユーザ以外はアクセスさせない
# 更新可能にします
# homes共有を見せずに、ユーザホームを見せます

smb.conf設定例(2)

(Linuxに登録した)Sambaユーザ名とWindows(にログオンする時の)ユーザ名が1対1で対応しない場合

[global]
security = SHARE
encrypt passwords = Yes
# SWATの「全体設定」で指定します。
# security = SHAREでないと共有設定のusernameは使用できません
[homes]
comment = %U さん専用の共有です
username = %S
only user = Yes
read only = No
browseable = No
# SWATの「共有設定」でhomesという共有を作成します。
# 日本語は、Samba2.0.5aJP2でないと使用できません
# 共有名とユーザ名をマッピングさせます
# 該当ユーザ以外はアクセスさせない
# 更新可能にします
# homes共有を見せずに、ユーザホームを見せます

上記の設定では、「\\sambaサーバ名\ユーザ名」で、Windows 95/98からログインしたものと違うユーザで接続できます。


SambaをNTドメインに加える

企業内ネットワークで Samba サーバを利用するときは、既存の Windows ドメインの一部として、クライアントに Samba サーバであることを感じさせずに運用を行なっていきたいところだと思います。

Samba 2.0 以降では,NT Workstation のようにWindowsドメインに参加することが可能になりました。
ドメインに参加することで、認証を Windows ドメインに統合して、よりシームレスな運用が可能になります。
それでは実際に設定方法を見ていきましょう。

まず下準備として Windows NT Serverの "サーバマネージャ"(svrmgr.exe) を使ってSambaマシンをWindows NT WorkstatonとしてWindowsドメインに追加しておいて下さい。
その後 Samba マシン上でドメイン参加の手続きを行ないます。
この作業は SWAT では行なえませんが、SWAT の "ホーム" から参照できる DOMAIN_MEMBER.txt に詳しく書かれていますので、併せてご一読ください。
参加するドメインの名前が DOMAIN , PDC のコンピュータ名が DOMPDC の場合の具体的な作業内容は図x1 に示した通りです。

図x1: ドメインへの参加 (#はrootユーザのプロンプトです)

# /etc/rc.d/init.d/smb stop <-- Samba サーバの停止
# smbpasswd -j DOMAIN -r DOMPDC
smbpasswd: Joined domain DOMAIN. <-- 成功したときに表示されるメッセージ

事前に忘れずに Samba サーバを停止させておいてください。
また、-r オプションでは、必ず PDC のコンピュータ名(上記の例では DOMPDC)で PDC を指定出来る必要があります。
良く分からない方は、PDC のコンピュータ名と IP アドレスを /etc/hosts に記述しておいてください。

成功すると /etc に DOMAIN.LENA.mac というファイルが出来ているはずです。
これを確認したら、図x2 のように security パラメータを DOMAIN にして、Samba サーバを起動します。
起動に成功すれば,晴れて Samba もドメインのメンバです。

Samba サーバをドメインのメンバにしたことで、ドメインにログオンしたユーザであれば Samba サーバにもシームレスにアクセスできるようになりました。
そこで更に一歩進んで、Samba サーバ上でのアカウントのメンテナンスを自動化する方法を解説します。
一例として図x3 のようなスクリプトを /usr/local/sbin に作成し、更に図x4 のように、add user script と del user script パラメータを設定しましょう。

smb.confの設定

[global]
add user script = /usr/local/sbin/smb-useradd.sh %u
delete user script = /usr/local/sbin/smb-userdel.sh %u

/usr/local/sbin/smb-useradd.sh の例

#!/bin/sh
/usr/sbin/useradd -m $1
mkdir ~$1/public_html                # これは、ApacheのためのWebホームディレクトリです

(注1) add user script パラメータは security = server でも設定可能です
(注2)NTのユーザグループとLinuxのグループをマッチングさせたい方は、以下を参照下さい。
http://plaza22.mbn.or.jp/~momokuri/samba/index-j.html 

/usr/local/sbin/smb-userdel.sh の例

#!/bin/sh
/usr/sbin/userdel -r $1

これで、NT ドメインにアカウントがあるが、Samba サーバにはアカウントがないユーザで NT ドメインにログオン後、Samba サーバにアクセスしてみましょう。
図x5 のようにホームディレクトリが表示されると思います。
実は、add user script を設定すると、ドメインで認証されているにも関わらず、Samba サーバに存在しないユーザでアクセスがあったときに、add user
script で指定したスクリプトを実行してユーザを自動的に作成することが出来るのです。
del user script は、同様にユーザがドメインに存在しなくなったときに自動的に消去するためのスクリプトです。
これらを活用することで、NT ドメイン上でのユーザの追加/ 削除のみで、Samba サーバ上に自動でユーザの作成/ 削除を行なうが可能になり、管理コストが大幅に削減されると思います。


SambaによるWindowsドメインコントローラの構築

Sambaは Windows 95/98 に対して、Winodwsドメインコントローラとして機能することが可能になっています。
企業などで、これから NT ドメインを採用すべきか検討を行なっている場合には、Samba サーバによるドメインコントローラの構築も現実的な選択肢ではないかと考えます。なお、記事の執筆時点ではまだリリースされていませんが、3月頃にリリース予定の Samba 3.0 では、NTのドメインコントローラ機能も正式にサポートされる予定です。

まず、SWATの「全体設定」で smb.conf を設定して下さい。

[global]
security = USER
encrypt passwords = Yes
domain logons = Yes
domain master = yes
wins support = yes
local master = yes
preferred master = yes
os level = 65
workgroup=
ドメイン名
logon script=%U.bat
# [全体設定]
# セキュリティモード
# 暗号化パスワード設定
# ドメインコントローラ設定
# ドメインマスタブラウザ設定
# WINSサーバ設定

次に「共有設定」で[netlogon]共有を作成し、以下のように設定します。

[netlogon]
path = /home/samba/netlogon
writeable = no
guest ok = yes
# ログオンスクリプトを格納する共有の作成

動作確認のために、Windows クライアント上で 図x7のようなログオンスクリプトを記述し,Samba サーバの [netlogon] 共有に配置しておきましょう。
Windows クライアントの側では,[コントロールパネル] - [ネットワーク]- [Microsoft ネットワーククライアント] のプロパティを図x8のように設定してください。
MSNET1.GIF (14290 バイト)
また NT ドメインでの設定と同様に、[コントロールパネル] -[パスワード] の"ユーザ別の設定" タブで,図x9ように,ユーザ別の設定" をチェックしておくことで、ユーザプロファイルの利用も可能です。
設定を行なったら、Windows クライアントをリブートして下さい。
リブート後起動したら,設定したドメインにログオンして下さい。
ログオンスクリプトが動作すれば、設定は正しく動いています。
Samba サーバが複数台ある時は、一台のサーバをドメインコントローラとして設定し、残りのサーバは security パラメータを server にして、認証サーバとしてドメインコントローラの Samba サーバを指定すれば、NT ドメイン環境のように、一度認証を受ければ、すべての Samba サーバにアクセスできるようになります。


最後に

Sambaについてもっと知りたい方は、日本Sambaユーザ会のWebページ( http://www.samba.gr.jp/ )をぜひご覧下さい。

Samba-JPメーリングリストもいくつか運営されており、初心者の方も安心して参加できます。

もちろん、上級者向けSamba日本語版開発プロジェクト メーリングリストもあり、開発に参加することもできます。

では、メーリング リストでお待ちしています。(^_^)/~~~


日本Sambaユーザ会

小田切 耕司(三菱電機)
高橋 基信(NTTデータ)
野 賢一朗(Project BLUE)