|
日本 Samba ユーザ会 (Samba Users Group Japan)
Samba2.2詳細 〜 Windows NT/2000との機能比較2001/12/11 改定
ミラクル・リナックス株式会社
小田切 耕司 Sambaで何ができるか?
Samba(「サンバ」と読む)は、UNIXやLinuxマシンをWindows NT互換のファイルサーバ/プリント・サーバにする
オープンソース・ソフトウェアだ。
GPL (GNU General Public License)の元に有償/無償を問わず、自由に利用することができる。
製品分類としては、その使用するプロトコルからSMBサーバ製品と言われていたが、
最近はSMBの上位プロトコルを指すCIFS(Common Internet File System)サーバとして広く認識されている。
SambaやマイクロソフトのWindows製品以外のCIFSサーバとしては、
サン・マイクロシステムズのSun PC NetLink や
SyntaxのTAS(TotalNET Advanced Server),
IBM社のFastConnect, SCO VisionFSなどがある。
SambaはオーストラリアのAndrew Tridgell氏らによって1992年に開発された。
現在Sambaは、Andrew Tridgell氏やJeremy Allison氏らによってボランティアではなく、
専任の担当者によって、開発・サポートが行われている。
もちろん、日本人を含めた世界中のボランティアの方も多数参加しており、 Sambaの日本語化は日本Sambaユーザ会を中心に行われている。
ここでは、Sambaが備える機能を以下の3つに分類し、簡単に紹介してみよう。
ここでの紹介はSamba 2.2.2をもとに解説する。
(a) Windows NT/2000と同等のSambaの機能●ファイル・サーバ機能UNIX/Linux上にあるディレクトリを「共有」としてWindowsクライアントおよびSambaクライアントに公開できる。
Windows NT/2000サーバと同様に共有ごとに使用できるユーザを制限できる。 *注) 図2.Sambaが使用するプロトコル
*注)CIFSではNetBEUI,IPX/SPXは使用せずに、TCP/IPのみを使用する。 ●プリント・サーバ機能UNIX/Linuxに接続されているプリンタ「共有プリンタ」としてWindowsクライアントおよびSambaクライアントに公開できる。(図1参照) 最近のプリンタはネットワークプリンタとしてSambaやWindowsサーバを介さずにWindowsクライアント間で共有することが可能だが、Sambaを使ってプリンタを共有するメリットはWindows 95/98/NT/2000クライアントに対し、プリンタ・ドライバの自動インストールができることだ。 ●SMBクライアント機能UNIX/LinuxマシンからWindowsの共有ファイルにアクセスしたり、共有プリンタに印刷したりすることができる。 通常これはsmbclientコマンドを使用するが、Linuxの場合のみmount(内部はsmbmount)コマンドを使用して、Windows共有をLinuxのファイルシステムとしてマウントすることも可能である。 UNIXからWindowsのプリンタに印刷する場合、プリンタドライバ(フィルタ)はUNIX側に必要だ。 Windowsに接続されているプリンタがポストスクリプトをサポートしているなら、UNIX/Linux側で作成したPSデータをそのまま印刷できる Windowsに接続されているプリンタがESCPage(EPSON)やLIPS(CANON)などのポストスクリプト以外の場合は、印刷可能なデータはUNIX/Linux側で作成する必要がある。 UNIX/Linux側に適切なプリンタドライバ(フィルタ)がなく、Windowsのプリンタ・ドライバしかない場合、UNIX側でPSデータをPDFファイルに変換し、Windows側のAcrobatで印刷するという手もあるだろう。 ●PDC(プライマリ・ドメイン・コントローラ)機能Windowsクライアントに対し、ドメイン・ログオンを提供し、ログオン時にスクリプトを実行させることができる。 サポートするクライアントは、Windows 95/98/Me/NT 3.51/NT 4.0/2000/XP Professionalである。なお、Windows XP Home Edition はサポートされていないが、これは Microsoft 社が意図的にドメイン・ログオン機能を削除している為であり、Samba 側の問題ではない。 ●認証サーバの統合複数のSambaサーバで1つの認証サーバが利用できる。 ●ドメイン・メンバ機能WindowsドメインにSambaサーバをメンバ・サーバとして追加することができる。 ●WINSサーバ機能WINS(Windows Internet Name Service)サーバになることができる。 ●マスタ・ブラウザ機能ブラウズ・リストを保持し、Windowsマシンにネットワーク・コンピュータ一覧を提供する。LMB(ローカル・マスタ・ブラウザ)はWindowsマシンもSambaもなることが可能だが、DMB(ドメイン・マスタ・ブラウザ)はWindows 9x,Windows NT/2000 Workstation はなることができず、Windows NT/2000サーバとSambaだけが可能だ。
●サーバの別名登録通常はUNIX/Linuxのホスト名がネットワーク・コンピュータ一覧に表示される名前になるが、一つのマシンに複数の名前をつけてネットワーク・コンピュータ一覧に表示させることができる。 (b) Windows NT/2000にはないSambaの機能●隠し共有の扱いWindows NT/2000では共有名に$をつけると隠し共有になるが、Sambaでは任意の共有名を隠し共有にできる。 ●ユーザ・ホーム機能共有の一覧表示時に、クライアントのユーザ名を共有名としてマッピングして表示する機能。 たとえば、yamadaというアカウントでSambaマシンをアクセス(ネットワーク・コンピュータをクリック)した場合、UNIX/Linux上の/home/yamadaが共有名yamadaとして表示され、また、suzukiというアカウントでSambaマシンをアクセス(ネットワーク・コンピュータをクリック)した場合はUNIX/Linux上の/home/suzukiが共有名suzukiとして表示される。(図4参照)
これによってユーザごとの専用のディレクトリを提供し、他人のディレクトリをアクセスするのが防げる。 ●リモートアナウンス機能Windowsではセグメントをまたがったワークグループを構成できない。
Sambaは上記を行うことなく、リモートアナウンス機能を使って別セグメントにワークグループやドメインをネットワーク・コンピュータ一覧に表示することができる。 ●ユーザ名マッピングWindows 95/98/MeはWindows NT/2000サーバにアクセスするときのユーザ名を変更することができない。
●コマンド実行クライアントが共有に接続した時、または共有との接続を切断した時に、Sambaサーバ側でコマンドを実行することができる。 ●クライアント・ホストの制限共有ごとに使用できるクライアント(ホスト名やIPアドレス)を制限できる。 ●クライアント毎、ユーザ毎に設定ファイルを用意可能クライアント毎やユーザ毎にアクセスできる共有名やそれぞれの設定を変更できる。(図6参照)
●QUOTA(ユーザ/グループ単位の容量制限)機能UNIX/LinuxのQUOTA機能を利用することでWindows NTでは標準サポートされていないQUOTA(ユーザ/グループ単位の容量制限)機能がSambaで利用することが可能だ。(ただし、Windows 2000サーバではQUOTAをサポートしている) (c) Sambaの制限事項およびWindows NT/2000との相違点●NetBEUI,IPX/SPXは使用しない先にも述べたが、Sambaが使用するプロトコルはNBTのみのため、TCP/IPが組み込まれていないWindowsクライアントと接続することはできない。
逆にクライアントにNetBEUI,IPX/SPXが組み込まれていると問題が発生するので、これらは削除した方がいい。 ●日本語の問題Sambaは設定ファイル smb.conf にclient codepageでクライアント側で使用するコード(マイクロソフト漢字は932を指定)、coding systemでUNIX/Linux側で使用する漢字コードを指定することでリソース名として日本語を使用することができる。 smb.confの中にはcoding systemパラメータで指定した漢字コードを使って以下の日本語パラメータを記述できる。
もちろん、日本語ファイル名(日本語ディレクトリ名)にも対応している。 coding systemパラメータには、主に以下のものが使用できる。 ○sijis(シフトJIS)
Windowsが使用するものとほぼ同じコードのため、Windowsとの互換性が高い。 ○euc(拡張UNIXコード)
UNIX/Linux/FreeBSDで一番安全なコード体系である。 ○capCAPやNetatalkなどを使用してマッキントッシュとファイル共有する場合に使用する。 ○hex
ファイル名を16進変換して格納する。 ○utf8Unicode.org の定めた国際規格の UTF-8 エンコード形式。
「1文字」を1〜3バイトで表すが、日本語の場合は基本的に3バイトで表記される。 現状、日本語処理だけについていうとUTF8の利点は特にない。 利用している UNIX/Linux が UTF-8に対応していない場合は、ファイル名に表示できない文字が含まれるので、文字化けが発生したり、一部の UNIX 上のツールで問題が発生する可能性がある。 ファイル名に「\(0x5c)」が含まれる可能性もあるため、扱いに注意が必要となる。 最新のSolaris, HP-UX といった商用 UNIX では、日本語の文字コードとしてUTF-8
を利用することも可能だ。 こうした理由により、現状 UTF-8 をファイルシステムの文字コードとして利用している実績もほとんどない。 なお、Mac OS X ではファイル名のエンコーディング形式としてUTF-8
を利用しているが、文字集合としては Samba の UTF8 パラメータ どのcoding systemを使用するかはユーザの運用形態に合わせて選択すべきだが、OSがサポートしていない漢字コードを使用すると、バックアップ機能などで障害が起きる可能性がある。 *注)LinuxではSamba日本語版でEUCを使用するのが一番安全なので推奨する。 ●ドメイン・コントローラ機能SambaはWindowsドメインのドメイン・コントローラになることができる。しかし、PDC(プライマリ・ドメイン・コントローラ)にしかなれず、BDC(バックアップ・ドメイン・コントローラ)になれないし、SambaのPDCに対し、WindowsサーバをBDCとすることもできない。 ●WINSサーバ機能
プライマリのWINS(Windows Internet Name Service)サーバにだけなることができる。 ●暗号化パスワードの問題SambaはWindowsNT/2000と同様に平文パスワード(plain text password)と暗号化パスワード(encrypt password)の両方で認証することができるが、暗号化パスワード(MD4ハッシュ、LANMANハッシュ)はUNIXのpasswdファイル(MD5ハッシュ)と互換性がないため、別々に管理しなければならない。 しかし、この不便を補完するためにUNIXとのパスワード同期機能や平文パスワードから暗号化パスワードへの移行機能が提供されている。 ●大文字と小文字の問題
Windows 9x/NT/2000も表示に関しては、ファイル名の大文字小文字の区別があるが、アクセス時には区別がない。そのため、同一ディレクトリにABCというファイルとabcというファイルを作成することはできない。 ●16ビットプログラムのための8.3形式の短いファイル名の問題
Windowsは16ビットプログラムのために8.3形式の短いファイル名と255バイトまでの長いファイル名をファイルシステム(FAT,NTFS)に保持している。(ファイル作成時に決めて、2つを保存) ●ファイル保護機能(セキュリティ)各共有に対するファイル保護機能(セキュリティ)は、SambaとWindowsNTで、ほぼ同等でホスト(クライアント)名に対する制限がかけられる分Sambaの方が有用でなのだが、ファイル単位の保護機能ではACL(アクセス・コントロール・リスト)をサポートするWindows NT/2000の方が細かく設定できる。(ただし、NTFSを使用した場合のみ) Samba上のファイルもWindowsのエクスプローラで各ファイルのプロパティを使ってセキュリティ・タブが利用できるが、「所有者(owner)」「グループ(group)」「それ以外(other)」の3種類でしか制限できない。
現在ACLをサポートしたUnix/Linux OSの上でSambaもACLが利用できるようになったが、Linuxの場合OSがまだ標準でACLをサポートしていないため、まだ制限が残っている。 ●ファイル属性の取り扱い
Windowsではファイルに「読み取り専用」「隠しファイル」「アーカイブ」「システム」といった属性があるが、UNIXにはこうした属性はない。 ●隠しファイルの取り扱いWindows NT/2000サーバにマッキントッシュ・サービスを設定するとMacintoshとWindowsでファイル共有などができるように、UNIX/Linuxマシン上でNetatalkとSambaを動作させると、MacintoshとWindowsでファイル共有することができる。
こうした場合、WindowsNT/2000ではMacintoshのリソース・フォーク・ファイルなどが見えないが、UNIX/Linux上では見えてしまう。 また、Samba 2.2.1aからはユーザにアクセス権限のないファイルを見せなくするオプションも追加された。 ●ファイル所有者の取り扱い
Windowsの場合、ディレクトリの下にファイルを作成すると誰でもアクセスできる属性がつくか、上位のディレクトリの属性を引き継ぐのだが、UNIX/Linuxの場合ファイルは作成者が所有者になるため、ある人が作成したファイルを別な人が更新できないといったことが起きることがある。 ●Windows管理ツールWinodws NTサーバに付属する「ドメイン・ユーザ・マネージャ」「サーバ・マネージャ」「WINSサーバ・マネージャ」はSambaサーバに対しては利用できない。 ただし、一部の機能は参照機能だけ利用できるものもある。 小田切 耕司 |