Sambaとは、UNIX上でWindows NT Serverに相当する機能(SMBサーバ機能)を提供するフリーソフトウェアです。
UNIX上にSambaを導入することで、あたかもWindows NTに対するかのように、WindowsクライアントからUNIXマシン上のファイルやプリンタ資源を使うことが可能になります。また一部機能に制限がありますが、後に述べるようにWINSサーバやドメインコントローラとしての機能も備えています。
なおSambaと同様の機能を実現している商用のソフトウェアも存在します。代表的なものを以下に紹介します。
●Vision FS
http://www.tomen-g.co.jp/sco/product/vfs/vfs.htm
●TAS(TotalNet Advanced Server)
http://www.netfrontier.nissho-ele.co.jp/SYNTAX/main.htm
企業などでシステムを構築する際には、サポート面などの理由から商用ソフトを選択する場合が多いでしょう。しかし、SambaもSGIのIRIXでは正式サポートになりましたし、Linuxの各商用ディストリビューション上でも当然サポートされています。
今後はSambaの商用利用も広がっていくのではないでしょうか。
方 式 | Samba | 商用SMBサーバ | NFS |
---|---|---|---|
価 格 | 無 償 | クライアント台数分の SMBサーバのライセンス | クライアント台数分の NFSクライアントのライセンス |
必要な設定 | UNIXサーバへのインストールや設定 | 個別のWindowsクライアントへの NFSクライアントのインストール |
|
メリット | Windowsマシンにソフトを導入する必要がないのでコストや管理工数の削減につながる | 実績がある UNIXのスキルがあまり要求されない |
ところで、読者の皆さんの中にはすでにWindowsマシンにNFSクライアントパッケージを導入して、UNIXマシンとファイル共有を行なっている方も多いと思います。
WindowsマシンにNFSクライアントを導入するのと比べ、SambaなどのSMBサーバを導入するメリットは何でしょうか。表1に簡単にまとめてみました。
最大のメリットを一言で表現すると、やはり『Windows側に何も追加でインストールする必要がない』ことにつきるでしょう。
Sambaはsmbdとnmbdという2つのプロセスから構成されています(図1)。
smbdはWindows NTのServerサービスに相当し、ファイル/プリンタ共有機能を実現します。
一方nmbdはComputer Browserサービスに相当し、マスタブラウザへの名前の登録を行なったり、自分がマスタブラウザになって、NetBIOS名の名前解決を行なったりする機能を実現します。
その他、Sambaにはクライアント機能を提供するsmbclientやNetBIOS名の名前の問い合わせを行なうnmblookupなどのユーティリティも付属しています。
今回は誌面の関係で紹介できませんが、これらはMicrosoftネットワークのトラブルシューティングにも有用ですので、試しに使ってみることをお勧めします。
Sambaの総本山といえば、http://www.samba.org/からたどれる各国のミラーサイトですが、当然すべて英語です。
日本語のサイトでは、
●日本Sambaユーザ会(Samba Users Group Japan)
http://www.samba.gr.jp/
にて、Sambaのドキュメントの翻訳を中心にした活動を行なっています(図2)。
各種リソースへのリンクも充実しており、日本語のメーリングリストの案内もありますので、Sambaに興味を持った方は、ぜひご覧になってください。
以下では、自分で最初からインストールする方のために、簡単にインストール手順を説明します。
前述したhttp://www.samba.gr.jp/より、国内ミラーサイトへのリンクがありますので、そこからSambaのソースを入手してください。執筆時点での最新版は、「samba-2.0.3.tar.gz」です。この記事はsamba-2.x以上を対象にしていますので、FreeBSDなどのports(注03)などを使う場合は「Sambaのバージョンが2.0.0以上」であることを必ず確認してください。
Samba-2.0.0からはGNU autoconfに対応しましたので、インストールは図3のようにするだけで完了します。ただしRed Hat Linuxなどのように認証にPAMを使用している場合は、/etc/pam.d/sambaに図4のような記述を行なってください。
% gunzip -c samba-2.0.3.tar.gz | tar xvf -
% cd samba-2.0.3/source
% ./configure
% make
% su
Password:
# make install
auth required /lib/security/pam_pwdb.so nullok shadow
account required /lib/security/pam_pwdb.so
Sambaを構成するファイルはとくに指定しない限り、/usr/local/sambaにインストールされます。
したがって、以下の説明では/usr/local/sambaにインストールを行なっているものとして説明を行ないます。別のパスにインストールした場合は、適宜読み替えてください。また/usr/local/samba/binにはパスを通しておいてください。
なお、configure時に指定できるオプションはいろいろ用意されていますが、通常の使用目的ならあえて設定する必要はないでしょう。
とりあえず、インストールしたSambaを動作させてみましょう。
ただし、Sambaはsmb.confという設定ファイルがないと動作しません。以前のSambaに上書きインストールした場合以外は、自分でsmb.confを新規作成する必要があります。
よくわからなければ、図5のようなsmb.confを作成して、/usr/local/samba/lib/smb.confとして保存してください。
[global]
workgroup = <現在使っているドメイン/ワークグループ名>
server string = Samba %v ← サーバの説明
security = USER ← UNIX 上のパスワードファイルで認証をする
encrypt passwords = yes ← 暗号化パスワードを使用する
coding system = EUC ← 日本語を扱うための設定
client coding system = 932 ← 日本語を扱うための設定
wins server = <WINSサーバのIP> ← WINSサーバを使用している場合
[homes]
comment = %U's Home Directory
browseable = no
read only = no
保存したら、以下のようにしてSambaを起動できます。もちろん、現在すでにSambaが動作している場合は、まずそれらを終了させておいてください。
# /usr/local/samba/bin/smbd -D※OS起動時に自動起動する方法は、各OSの解説書などを参照してください。
# /usr/local/samba/bin/nmbd -D
なおsmb.confで行なった設定の結果は、testparmコマンドで確認することができます。スペルミスも図6のようにちゃんと指摘してくれますので、設定を変更したら、まずはチェックを行なうようにするとよいでしょう。
# /usr/local/samba/bin/testparm
Load smb config files from /usr/local/samba/lib/smb.conf
Unknown parameter encountered: "workgroupo"
Ignoring unknown parameter "workgroupo" ← workgroupoというスペルミスを指摘されている
Processing section "[homes]"
Loaded services file OK.
Press enter to see a dump of your service definitions
ここで [ENTER] キーを押すと, 現在の設定を出力する
続いてSambaがユーザ認証に使うパスワードファイル/usr/local/samba/private/smbpasswdの作成です。
これには、UNIXのパスワードファイルから変換して作成する方法と、新規に作成する方法がありますが、ここでは新規に作成する方法を紹介します。
まずは準備として図7のようにディレクトリを作成して下さい。
# mkdir /usr/local/samba/private
# chmod 600 /usr/local/samba/private
その後rootで
# smbpasswd -a <追加するユーザ名>
を実行すればOKです。
ただし、UNIX上に存在しないユーザを作成することはできません。また、すでにファイルに存在するユーザのパスワード変更もsmbpasswdを使って行なえます。
この状態で“ネットワークコンピュータ”アイコンをクリックすると、smb.confで設定したワークグループ/ドメインの中にSambaサーバのアイコンが表示されているはずです。
あとは、先ほどsmbpasswdコマンドで設定したユーザ名とパスワードで接続できます。
smb.confはSambaの動作を制御するファイルで、Sambaの設定の中核を担っています。
smb.confでは、非常に多岐にわたる設定を行なうことができますが、大半の設定はデフォルト値でも充分機能しますし、通常まず変更する必要がない設定もありますので、ここでは図5のsmb.confを元に設定が必要な部分についてのみ説明したいと思います。説明がない箇所は、“おまじない”だと思ってそのまま記入してください。
[global]セクションと[homes]セクションは、このsmb.confの設定だけでも十分使えると思います。
smb.confはセクションとパラメータで構成されています。セクションは“[ ]”で囲まれたセクション名で始まり、次のセクションの直前までが範囲になります。
一般のセクションには、ファイルまたはプリンタの共有リソースの設定を記述します。ただし、以下の3つのセクションだけは特殊セクションと呼ばれ、通常のセクションとは異なる機能を持っています。
●[global]セクション
Samba全体に関わる設定、および個々のセクションで、定義されていないパラメータの規定値を設定します。
●[homes]セクション
接続するユーザのホームディレクトリをファイル共有として設定する機能を定義します。
●[printers]セクション
printcapファイルに記述されたプリンタをプリンタ共有として設定する機能を定義します。
印刷に関する設定は3章(注04)で詳しく行ないますので、ここでは説明を省きます。また[homes]セクションは、通常“おまじない”通りの設定でOKですので、ここでは通常のセクションと[global]セクションに関する説明を行ないます。
図5のsmb.conf中には、“%v”や“%U”といった記述があります。これらはSambaが定義している変数です。
どういった変数があり、どのように定義されているかは、smb.conf(5)(注05)を参照してください。
Sambaがユーザを認証する方式は、いくつか用意されています。図5では「security = USER」という行で設定しています。これはUNIX上のパスワードファイルを使って認証を行なうということを意味しています。
securityパラメータに指定可能なオプションは「USER」以外に、「SHARE」「SERVER」「DOMAIN」があります。
「SHARE」はWindowsでいう“共有レベルのセキュリティ”に相当する機能を提供します。この設定はユーザ認証ができないという欠点があり、加えてSambaでの設定にもコツがいります。最近ではあまり使われないと思いますので、設定の詳細は割愛します。
「DOMAIN」という設定はSamba-2.xの新機能であり、後で詳しく述べますので、ここでは省略します。
「security = SERVER」にした場合は、外部のサーバに認証を依頼することになります。設定例は図8を参照してください。認証を依頼するサーバは、他のSambaマシンやWindows NTマシン(Workstation版でも可)を指定することができます。
この設定にした場合、smbpasswdファイルは不要になりますが、それでも認証されるユーザは、必ずUNIX上に対応するアカウントを持っている必要があります。つまり通常は『UNIXに存在しないユーザでSambaサーバにアクセスすることはできない』ということです。この点は注意してください。
[global]
security = SERVER
password server = NTSRV ← 認証を依頼するマシンのコンピュータ名(ホスト名ではないので注意)
Samba-2.xからは「map to guest」というパラメータを使うことで、認証されなかった場合でも指定したユーザとしての権限を与えることができるようになりました。
この機能は、Windows NTで“Guestアカウント”を有効にするようなものですので、使用するときは注意して扱ってください。
smb.conf中では日本語はサポートされていません。
たとえばセクション名に日本語を用いたり、「server string」パラメータに日本語でサーバの説明を書いても通常は文字化けしてしまいます(設定とクライアントの機種によっては正しく表示される場合もありますが)。
しかし、日本語ファイル名のサポートはSambaに含まれており、smb.confを適切に設定すれば日本語ファイル名をきちんと扱うことができます。したがって、共有名に日本語を使えない点さえ我慢してもらえば、英語表示に抵抗のある一般のユーザにも使ってもらえるでしょう。
通常の日本語対応UNIXは漢字コードとして“EUC”をサポートしていますので、図5のように「coding system」として“EUC”を指定します。なお、日本語をサポートしていないUNIXを使っていても、「coding system」として“HEX”か“CAP”を指定することでSambaで日本語ファイル名を扱うことが可能になります。
一例として、“表示.txt”という日本語ファイル名のファイルを保存したときにどのようなファイル名で保存されるかを図9に示しました。UNIX側でサポートしていない漢字コードを指定するとファイルを作成/削除できなかったり、UNIX側でコマンドを実行したときに問題が発生したりしますので、注意してください。
ただし、“HEX”と“CAP”は、ASCII文字だけを使ってファイル名を生成しますので、どんなUNIXでも使用できます。
% ls -1
XXXX:95╲:8e:a6.txt ← ASCII文字から構成されているCAP形式のファイル名
表示.txt ← EUCのファイル名。OSが対応しているので表示される
╲ヲ.txt* ← SJISのファイル名。文字化けしている
図5のsmb.confで構成されたSambaは、Microsoftネットワーク中ではクライアント的な役割を果たします。
この“クライアント的な役割”をきちんと説明するためには、“ブラウジング”に代表されるMicrosoftネットワークの機能と実装から説明しないといけないのですが、複雑怪奇なこと、とてもこの場で説明できるような単純なものではありません。
興味のある方は、Windows NTリソースキットなどで勉強してください(^_^;;
とりあえず実際に、会社の場合と自宅(SOHO)の場合という2つの状況を想定して、関連するパラメータの設定例を示します。
@会社の場合
会社ではすでにWindows NTマシンが導入されていると思います。
この場合、Sambaマシンはなるべく出しゃばらないほうが得策ですので、図5の設定のままで良いでしょう。
A自宅(SOHO)の場合
自宅(SOHO)でSambaを導入する場合、それまではワークグループ構成で使っているという場合がほとんどだと思います。
この場合は、Sambaに積極的に“サーバ的な役割”を演じてもらいましょう。図10のように設定してみてください。
ただし、複数のSambaサーバが存在する場合、“サーバ的な役割”を演じるマシンは“セグメントごとに1台だけ”に制限してください。
[global]※個々の設定の意味は、smb.conf(5)(注06)およびWindows NTリソースキットのネットワーキングガイドなどを参照してください。
os level = 33
domain master = Yes
preferred master = Yes
local master = Yes
wins support = Yes ← WINSサーバとして機能させる時に指定する
Windowsにはない機能として、ホスト単位でのアクセス制御の機能があります。
図11は192.168.10.xのホストからはアクセスを許可するが、192.168.10.1からのアクセスは禁止するという設定の例です。
このように、「hosts allow」と「hosts deny」パラメータを使うことでホスト単位でのアクセスを設定できます。ただし当然ですが、ここで接続を許可されても最終的にアクセスするにはユーザ認証が必要です。
[global]
hosts allow = 192.168.10.0/255.255.255.0
hosts deny = 192.168.10.1
ここまでは、[global]セクションの設定を見てきました。次は、共有ごとの設定を見ていきましょう。
共有については一般的な設定を例示するのはなかなか難しいのですが、ここでは図12のようなsmb.confの設定を例に説明します。
[global]
map to guest = Bad User
[homes]
comment = %U's Home Directory
read only = No
browseable = No
valid users = %S
[project1]
comment = Project1 space
path = /project1
writeable = Yes
create mask = 664
directory mask = 775
force group = project1
valid users = +project1
[pub]
comment = Archive directory
path = /mnt/pub
guest ok = Yes
guest only = Yes
guest account = ftp
writeable = Yes
企業内でSambaを使っていく場合、アクセス権の設定は避けて通れません。
Windows NTとUNIXではアクセス権の実装がかなり異なっていることもあって、NT Serverと同じようにはなかなか設定できません。一方で、Sambaにしか設定できない機能もあります。
これまであまりきちんと紹介されてこなかったと思いますので、すこし詳しく見ていきましょう。
Sambaの場合は、共有ごとに設定することもできます。設定方法は図11を参照してください。
図13の[share1]は読み込み専用。[share2]は書き込み可能に設定した例です。このように共有単位で読み込み専用にするか否かを制御できます。なおデフォルトは「writeable = no」です。
[share1]
writeable = no ← 読み込み専用(規定値)。他にも多数の同義語がある
[share2]
writeable = yes ← 読み書き可能。他にも多数の同義語がある
図14の[share3]は、「user1、user2およびusersグループ」からのアクセスは許可するが、「root、admおよびbinグループ」からのアクセスは許可しないという設定です。
[share4]のように「invalid user」だけを指定した場合、それ以外のユーザはすべてアクセスできるようになります。
[share3]
valid user = user1 user2, +users
invalid users = root adm +bin
[share4]
invalid user = ftp
図15の[share5]は、「ユーザguestとftp」は読み込み専用、「ftpadmin」には書き込みを許可する例です。ここでの設定は、前述した共有単位でのアクセス制限に優先します。
たとえば、「writeable = no」であっても、「write list」に記述されたユーザは書き込むことができます。
[share5]
read list = guest, ftp
write list = ftpadmin
最終的なアクセス権は、Sambaで設定したものにUNIX上でのアクセス権が加味されて決定されます。
たとえば「write list」に入っているユーザでも、UNIX上でそのユーザに書き込み権がないファイル/ディレクトリについては、書き込むことはできません。
一通りアクセス権について説明しましたが、以下では実際の適用例として図12の設定を説明します。
●homes共有
ユーザのホームディレクトリです。図12のようにすることで、他のユーザのホームディレクトリへの接続を制限します。
●project1共有
プロジェクト内の共有フォルダということで、「特定グループに属するユーザ」以外からのアクセスを禁止しました。
また、作成するファイルのデフォルトのアクセス権を変更して、「同じUNIXのグループに属するユーザ」であれば互いに他人の作成したファイルを編集できる設定になっています。
●pub共有
インストールイメージなどを格納するアーカイブフォルダということで、書き込みを禁止します。
また、UNIX上にアカウントがないユーザでも接続できるようにした上で、すべてのユーザが「ftpユーザ」の権限でアクセスするようにしました。
これで、一部のディレクトリのみを書き込み可能にするような設定も比較的簡単に行なうことができます。
ここまではアクセス権を中心に解説してきましたが、Sambaには以下のような機能のパラメータも用意されています。
前述した日本語Webページから、smb.confの日本語版も入手できますので、上記で解説したパラメータも含め、ぜひ一度smb.conf(5)(注07)を参照してください。
●シンボリックリンクの追跡の可否
wide links
●Visual Studioのサポート
dos filetime resolution、
fake directory create times
●DOSのファイル属性のサポート
map archive、map hidden、map system
●Quotaのサポート
まだ正式リリースではありませんが、configureで“--with-quotas”フラグをつけてSambaをコンパイルすることで、OSのQuota機能が利用できます。
同じUNIX上のファイルを、SambaとNetatalkやCAPで共用したいこともあると思います。
Sambaにはちゃんとこのための仕組みも備わっています。
NetatalkやCAPでは、日本語のファイルを図9の“CAP形式”というエンコードで保存します。
Sambaでこの形式のエンコードを扱うためには、[global]セクションで
coding system = CAP
と指定してください。
これでSambaでも“CAP形式”で日本語ファイル名を扱うようになりますので、WindowsとMacintoshの間で日本語のファイル名を共有することができます。
しかし、これではUNIX上で“CAP形式”のまま表示されてしまうため、こうしたファイル名をつけたファイルがUNIXで扱いにくくなります。しかも「coding system」パラメータは[global]セクションのパラメータですので、設定するとSamba全体に影響が及んでしまいます。
UNIX上での利便性をとるか、WindowsとMacintosh間の利便性をとるかをよく考えた上で設定してください。
NetatalkやCAPは「Macintoshファイル」をUNIX上に保存するときに、「リソースフォーク」と「データフォーク」という形にファイルを分けて別々に保存しています。
この「リソースフォーク」ファイルはユーザによって勝手に削除されると困りますので、通常は図16のように設定します。
なお、「delete veto files」にはバグがあり一部のOSではうまく動作しません。
必要な方は、http://samba.bento.ad.jp/pub/unoff-patch/2.0.3(注08)にあるパッチを適用してください。
[macshare]
delete veto files = yes
veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/
swatは「Samba-2.0.0」から導入されたツールで、Web経由でのsmb.confの編集を実現します(図17)。
Web経由での編集は非常に快適ですので、一度使ってしまうと手放せなくなるでしょう。
もちろん、ここまで述べてきた設定もすべてswat経由で行なうことができます。
ただし、Sambaの設定をリスト表示したり、必要な部分だけをとりあげて解説したりするには、smb.confファイルへの記述形式で説明したほうがわかりやすいため、本記事中ではswatからの設定方法は解説しません。
もっとも、smb.confの修正ができる方であれば、swatからの設定に迷うことはないでしょう。
swatは“inetd”から起動するので、図18と図19のように/etc/inetd.confと/etc/servicesに1行ずつ追加してください。
swat stream tcp nowait.400 root /usr/local/samba/bin/swat swat
swat 901/tcp
なお、ポート番号は901でなくても構いません。設定ができたら
http://sambaserver:901/
のようなURLでアクセスしてみましょう。パスワードダイアログが出てきますので、rootのアカウントとパスワードを入れてください。
正しく動作していれば、図17の画面が出てくるはずです。
swatでsmb.confを編集するとコメントなどはきれいに消されてしまいますので、必ずバックアップしておいてください。
ここまで、一通りSambaの設定を解説してきました。
Sambaの機能の多さに驚かれた方もいらっしゃると思いますが、これらのほとんどは以前からSambaがサポートしていた機能で、細かい機能強化はあるものの、とくに目新しいものではありません。
「Samba-2.0」から、新たにNT Workstationと同様にドメインに参加する機能が追加されました。ここではこの新機能について説明しましょう。
ここでは、「HOMESRV」というコンピュータ名のプライマリドメインコントローラ(以降、PDC)がある「HOME」というドメインに、「LENA」というSambaサーバを参加させる場合を例にとって説明します。
まず下準備として、Windows NTの“サーバマネージャ”を使って、Sambaマシンをドメインに追加しておいてください。そして、Sambaマシン上でSambaプロセスを停止してから以下のように入力します。
lena# smbpasswd -j HOME -r HOMESRV
“smbpasswd: Joined domain HOME.”と表示されれば成功です。ここで/usr/local/samba/privateに“HOME.LENA.mac”というファイルと“MACHINE.SID”というファイルができていることを確認してください。
次に、smb.confを図20のように修正します。
[global]
security = DOMAIN
workgroup = HOME ← 参加するドメイン名を指定
encrypt passwords = yes
password server = HOMESRV ← ドメインのドメインコントローラを指定
ここでSambaプロセスを起動してください。起動に成功すれば、晴れてSambaもドメインのメンバです。
現時点ではメンバになっても直接的なメリットはあまりないのですが、将来的にはドメインの情報を活用できるような機能が続々と登場してくると思います。
現在、ドメインに参加していないと機能しない設定には、ユーザの自動作成/削除を行なう「add user script」、「del user script」というパラメータがあります。誌面の具合で詳しく紹介できませんが、非常に面白い機能ですので、みなさんも試していただければと思います。
現在のSambaでも、Windows 95/98のログオンサーバとしてなら十分に機能します。
端末がWindows 95のみで、PDCとしてNT Serverを導入しようか迷っている環境はまだまだ多いと思います。NT Serverを導入する前にSambaを試してみてはいかがでしょうか。
ここでは、Sambaサーバを「HOME」というドメイン/ワークグループのログオンサーバとして構成します。
図21のように、smb.confを設定してください。また、動作確認のために図22のようなログオンスクリプトを記述し、Sambaサーバの[netlogon]共有に配置します。
[global]
workgroup = HOME ← ドメイン/ワークグループ名を記述する
security = USER ← SERVERも可能
encrypt passwords = yes ← ドメインコントローラの場合は必須
domain logons = yes
logon script = logon.bat ← ログオンスクリプトを指定する
logon drive = H: ← ドメインコントローラの場合、
ホームディレクトリをマウントするドライブ名を指定
os level = 33
domain master = Yes
preferred master = Yes
local master = Yes これらは図10を参照
[netlogon] ← ログオンスクリプトや固定プロファイルを配置するディレクトリ
comment = Net Logon Share
path = /usr/local/samba/lib/netlogon
writable = no
@echo logon script is executing...※Windowsのエディタなどで作成すること
@pause
Windowsマシンの側では、[コントロールパネル]‐[ネットワーク]‐[Microsoftネットワーククライアント]のプロパティを図23のように設定するとともに、[コントロールパネル]‐[パスワード]の“ユーザ別の設定”タブで、図24のように“ユーザ別の設定”をチェックします。これが終ったらマシンをリブートして下さい。
リブート後起動したら、設定したドメイン/ワークグループにログオンしてください。ログオンスクリプトが動作して、UNIX上のホームディレクトリに移動プロファイルが保存されれば、設定は正しく動作しています。
最後に、どうしても待ち切れないという方のために、SambaをPDCとして機能させる方法について紹介します。
ただし、このためにはSambaの開発中のソースコードを使用する必要があります。最悪の場合、クライアントのSAMファイルが破壊されて、再インストールを余儀なくされる可能性もありますので、あくまで自己責任のもとで行なってください。
なお、Windows NT側の設定はかなり駆け足で説明しています。Windows NT自体についての設定の詳細は、市販の参考書籍などをご覧ください。また、Sambaの本家のサイトにあるドメイン機能のFAQも併せてお読みください。
http://mirror.nucba.ac.jp/samba/docs/ntdom_faq/samba_ntdom_faq.html(注09)
などのミラーサイトから入手できます。
PDC機能を使うためには、正式にリリースされたソースではなく、開発者用のソースを入手する必要があります。
Sambaの公式ミラーサイトでは、Sambaがミラーされているディレクトリの中に、「cvs_current」というディレクトリがありますので、この下をダウンロードします。wgetなどを用いるとよいでしょう。
インストール自体は、通常のSambaと同様に行なって下さい。
インストールが完了したら、引続きsmb.confを修正します。以下では、「HOME」というドメインに「MISAKO」というマシンを参加させる場合を例にとって説明します。
まずはsmb.confの修正です。Windows 95/98の例と同様に図21、図22の設定を行なってください。
設定を行なったら、smbdプロセスを再起動してください。正しく設定が行なわれていれば、/usr/local/samba/privateに“DOMAIN.SID”というファイルができている筈です。
続いてドメインへコンピュータを追加します。ここでは「MISAKO」というマシンを登録する場合を例に説明します。
Sambaでは通常のユーザと同様に、まずUNIXにアカウントを追加してからそのアカウントをsmbpasswdファイルに登録する作業が必要です。詳細は図25を参照してください。
# useradd -s /bin/false misako$
# smbpasswd -m -a misako
/etc/passwdに登録するユーザ名は登録したいコンピュータ名の後ろに“$”をつけたものを登録しますが、smbpasswdに登録する時は“$”は不要なので注意してください。
またアカウント名以外のパラメータは一切使いませんので、悪用されないように適切に設定してください。
これでSamba側の準備は完了です。
Windows NT側で、いつもと同じ操作でドメインに参加してみましょう。設定がうまくいっていれば、『DOMAINドメインへようこそ』というダイアログボックスが出て、めでたくSambaがPDCのドメインに参加できるはずです。
さっそくリブート後ログオンしてみましょう。
無事にログオンできましたか?
うまくいくとログオン時にログオンスクリプトが実行されるので、ドメインに入っているという実感が湧くと思います。また、コマンドプロンプトを開くと、図21の「logon drive」で指定したドライブをカレントドライブとなっているはずです。
また、Windows NTでドメインにログオンすると、自分のマシンに対するAdministrataor権限がなくなってしまいます。
これは不便なので、とりあえず1回抜けて、“ドメインユーザーマネージャ”でログオンしたアカウントにAdministrator権限を与えてみましょう。
“ユーザの権利”で“ローカルログオン”にアカウントを追加しようとすると、図26のようにUNIX側のグループやアカウントが参照できるようになっていることに気づくと思います。
また、ドメインのアカウントで1回ログオフしているので、移動プロファイルが作成されています。ドメインのアカウントのUNIX上のホームディレクトリを見ると、図27のように、ちゃんと書き込まれていることがわかります。
% ls -l /home/user/profile/
total 740
drwxr-xr-x 2 user other 512 May 6 05:43 Cookies/
drwxr-xr-x 5 user other 512 May 6 05:43 Favorites/
drwxr-xr-x 3 user other 512 May 6 06:42 History/
-rwxr--r-- 1 user other 100 May 6 05:37 IELnkbak.ini*
-rwxr--r-- 1 user other 506 May 6 05:37 Internet Explorer Lnk.bak*
drwxr-xr-x 2 user other 512 May 6 05:43 NetHood/
-rw-r--r-- 1 user other 352256 May 6 05:44 NTUSER.DAT
-rwxr--r-- 1 user other 1024 May 6 05:44 ntuser.dat.LOG*
drwxr-xr-x 2 user other 512 May 6 05:43 Personal/
drwxr-xr-x 2 user other 512 May 6 05:43 PrintHood/
drwxr-xr-x 2 user other 512 May 6 05:43 Recent/
drwxr-xr-x 2 user other 512 May 6 05:43 SendTo/
drwxr-xr-x 2 user other 512 May 6 05:43 Templates/
drwxr-xr-x 6 user other 512 May 6 05:43 Temporary Internet Files/
drwxr-xr-x 5 user other 512 May 6 05:43 デスクトップ/
drwxr-xr-x 3 user other 512 May 6 05:43 スタート メニュー/
%
NT Serverには、ドメインを管理するツールがいくつか付属しています。
これらがSambaに対してどのように機能するかは、みなさんも興味があるところだと思います。そこでNT ServerをSambaのドメインに参加させ、ツールを起動してみます。
まず、“サーバーマネージャ”を起動した結果を図28に示します。「LOIRE」というSambaマシンが、ちゃんとPDCとして認識されているのがわかります。
ただし、[ファイル]メニューのドメインへのコンピュータの追加などは動作しません。つまり、表示は可能だが変更などはまだサポートされていないということのようです。
次に、“ドメインユーザーマネージャ”を起動してみます。図29のように、smbpasswdに登録されているユーザや/etc/groupに登録されているグループの一覧が見えるのがわかります。
また、ユーザのプロパティを見ると、図30のように、プロファイルのパスなどがきちんと設定されているのこともわかります。しかし、これらも表示のみで、変更はできませんでした。
今度はNT側の共有にアクセス権を付与してみましょう。図31のように一部表示の不具合はあるものの、Sambaドメインのユーザ/グループ情報が表示され、設定も可能でした。
以上、SambaのPDC機能について見てきました。まだα版のため一部機能に不具合がありますが、実装予定の機能は一通り見えてきたと思います。
現在のバージョンではまだまだ定常運用はお勧めできませんが、自宅でWindows NTを使っているなら、試しにSambaでドメインを組んでみてはいかがでしょうか。
以上、駆け足でしたが、Samba-2.xの新機能やちょっとこった使い方を紹介してみました。
今後のSambaの大きな機能強化としては、PDC機能のリリースとWindows 2000に実装される「Active Directory」への対応が挙げられます。
PDC機能は、今年末にリリース予定のSamba 2.1でリリースされるとアナウンスされています。これからSambaがどこまで進化していくか、楽しみです。
●日本Sambaユーザ会(Samba Users Group Japan):
http://www.samba.gr.jp/
●SAMBA Web Pages: [英文]
http://www.samba.org/