# Samba機能詳細
− WindowsNTとの機能比較 −

SambaはUNIXマシンをWindows95/98やWindowsNT（およびDOS/Windows3.1/OS2のLANMANクライアント）のファイル・サーバ／プリント・サーバにすることができるオープンソース ソフトです。
ここではSambaの機能をWindowsNT/Windows2000と比較して紹介します。

＊注） Sambaは通信プロトコルにNBT（NetBios over TCP/IP）を使用し、下位プロトコルはTCP/IPになります。 NetBEUIやIPX/SPXを使ってWindowsマシンと通信することはしません。

関連パラメータには、該当機能に関連するSambaのsmb.confパラメータをあげています。

### WindowsNTと同等のSambaの機能

- ファイル・サーバ機能
  共有ごとに使用できるユーザを制限できます。
  関連パラメータ：invalid users , valid user
- プリント・サーバ機能
  共有プリンタごとに使用できるユーザを制限できます。
  Windows95/98に対し、プリンタ・ドライバの自動インストールができます。
  関連パラメータ：invalid users , valid user , printer driver , printer driver file , printer driver location
- クライアント機能
  UNIXマシンからWindowsの共有ファイルにアクセスしたり、共有プリンタに印刷することができます。
  UNIXからWindowsのプリンタに印刷する場合、プリンタドライバ（フィルタ）はUNIX側に必要です。
  UNIXからWindowsのプリンタ・ドライバを使って印刷することはできません。
  - Windowsに接続されているプリンタがポストスクリプトなら、UNIX側で作成したPSデータをそのまま印刷できます。
  - Windowsに接続されているプリンタがESCPage(EPSON)やLIPS(CANON)などのポストスクリプト以外の場合は、印刷可能なデータはUNIX側で作成する必要があります。
  - UNIX側に適切なプリンタドライバ（フィルタ）がなく、Windowsのプリンタ・ドライバしかない場合、UNIX側でPSデータをPDFファイルに変換し、Windows側のAcrobatで印刷するという手もあります。

  関連コマンド： smbclient , smbmount , smbsh

- ドメイン・サーバ機能
  Windows95/98に対し、ドメイン・ログオンを提供します。
  Windows95/98に対し、ログオン・スクリプトを実行できます。
  複数のSambaサーバで１つの認証サーバが利用できます。
  関連パラメータ：domian logons , logon script , password server
- ドメイン・クライアント機能（Samba2.0以降の新機能）
  WindowsNTドメインにSambaサーバをメンバ・サーバとして追加することができます。
  ユーザ認証がすべてNTのドメインコントローラで行えるのでパスワードの２重管理が必要ありません。
  NTドメインにユーザを追加した場合、自動的にSambaユーザを追加する機能もあります。
  三浦広志氏によるNTのユーザ・グループとUNIXのユーザ・グループをマッピングさせるシェルも公開されています。
  関連パラメータ： security=domain , password server , add user script
- WINSサーバ機能
  WINS(Windows Internet Name Service)サーバになることができます。
  関連パラメータ：wins support
- ブラウズ・マスタ機能
  ブラウズ・リストを保持し、Windowsマシンにネットワーク・コンピュータ一覧を提供します。
  関連パラメータ：domain master , local master , preferred master , os level
- サーバの別名登録
  通常はUNIXのホスト名がネットワーク・コンピュータ一覧に表示される名前になりますが、一つのマシンに複数の名前をつけてネットワーク・コンピュータ一覧に表示させることができます。
  関連パラメータ：netbios aliases , netbios name

### WindowsNTにはないSambaの機能

- ファイル・サーバ機能
  WindowsNTでは共有名に＄をつけると隠し共有になりますが、Sambaでは任意の共有名を隠し共有にできます。
  関連パラメータ：browseable
- ユーザ・ホーム機能
  共有の表示時に、クライアントのユーザ名を共有名としてマッピングして表示する機能です。
  たとえば、yamadaというアカウントでSambaマシンをアクセス（ネットワーク・コンピュータをクリック）した場合、UNIX上の/home/yamadaが共有名yamadaとして表示され、また、suzukiというアカウントでSambaマシンをアクセス（ネットワーク・コンピュータをクリック）した場合はUNIX上の/home/suzukiが共有名suzukiとして表示されます。
  これによってユーザごとの専用のディレクトリを提供し、他人のディレクトリをアクセスするのが防げます。
  関連パラメータ： [homes]セクション
- リモートアナウンス機能
  Windowsではセグメントをまたがったワークグループを構成できません。
  （ネットワーク・コンピュータ一覧に表示できない）
  また、別セグメントにある別ドメインをネットワーク・コンピュータ一覧に表示するには以下が必要となります。
  - ドメイン間で信頼関係を結ぶ
  - 別ドメインに所属するブラウズマスタになれるマシンを、同一セグメントに用意する

  Sambaは上記を行うことなく、リモートアナウンス機能を使って別セグメントにワークグループやドメインをネットワーク・コンピュータ一覧に表示することができます。
  関連パラメータ：remote announce

- ユーザ名マッピング
  Windows95/98はWindowsNTサーバにアクセスするときのユーザ名を変更することができません。
  Sambaはサーバ側でクライアントのユーザ名をマッピングして変更することができます。
  関連パラメータ：username map
- コマンド実行
  クライアントが共有に接続した時、または共有との接続を切断した時に、Sambaサーバ側でコマンドを実行することができます。
  関連パラメータ：preexec , postexec , root preexec , root postexec
- クライアント・ホストの制限
  共有ごとに使用できるクライアント（ホスト名）を制限できます。
  関連パラメータ：allow hosts , deny hosts
- クライアント毎、ユーザ毎に設定ファイルを用意可能
  クライアント毎やユーザ毎にアクセスできる共有名やそれぞれの設定を変更できます。
  関連パラメータ：include , config file
- QUOTA（ディレクトリ単位の容量制限）機能
  UNIX OSの拡張機能を使うとWindowsNT4.0では標準サポートされていないQUOTA（ディレクトリ単位の容量制限）機能がSambaで利用することが可能です。

### Sambaの制限事項およびWindowsNTとの相違点

- 日本語の扱い
  Sambaの設定ファイル smb.conf の一部 には、日本語は記述できません。
  また、日本語のユーザ、グループにも対応しておりません。
  具体的には、以下にしめすものに、日本語が使用できないということです。
  - コンピュータ名
  - ユーザ名
  - グループ名

  しかし、Sambaは、日本語共有名やファイル名（日本語ディレクトリ名）に対応しています。
  （ファイルの中身の漢字コード変換機能や改行コード変換機能は持っていません）
  加えて各国語に対応した複数のクライアント・コード・ページにも対応しています。
  例えば、UNIX側でEUCを使うシステムの場合、Sambaで日本語を使用するには以下のようにsmb.confを設定します。
  client code page=932 #　クライアント側でシフトJISを使うことを意味します。
  coding system=euc #　サーバ側でEUCを使うことを意味します。
  ＊注）サーバ側の漢字コードは、UNIX OSの設定に合わした方がいいでしょう。
  UNIX OSの設定がEUCなのに、Sambaでcoding system=sjis（シフトJISを使う）ことは避けましょう。
  日本語に対応していないUNIX OSを使用するときは、coding system=hexかcapを使用するようにしましょう。
  （capにするとCAPを使ってマッキントッシュとのファイル共有が可能になります）

  - OSがサポートしていない漢字コードを使用すると、バックアップ機能などで障害が起きる可能性があります。
  - OSがサポートしている漢字コードでも、すべてのコマンドや機能、ISVのS/Wが日本語をサポートしているとは限りません。
    運用形態をよく考えてコードを設定しましょう。
  - サーバ側の漢字コードでEUCを使う場合、クライアントのすべてのシフトJISコードがマッピングできるとは限りません。
    外字などが使用できないことがあります。
    （その場合は、サーバコードでHEXまたはCAPを使用しましょう）

  関連パラメータ：client code page , coding system

- ドメイン・サーバ機能
  PDC（プライマリ・ドメイン・コントローラ）にしかなれません。
  BDC（バックアップ・ドメイン・コントローラ）にはなれません。
  WindowsNTをBDCにすることもできません。
  現在まだWindowsNTに対するドメイン・ログオンは提供されていません。
  （ただし、ベータ版レベルでは提供されています）
  関連パラメータ：domian logons , logon script
- WINSサーバ機能
  プライマリのWINS(Windows Internet Name Service)サーバにだけなることができます。
  別な（WindowsNTやSambaの）WINSサーバと（プッシュとプル）同期をとることはできません。
  同一セグメントに複数の（Sambaによる）WINSサーバを置くことはできません。
  関連パラメータ：wins support
- 暗号化パスワードの問題
  SambaはWindowsNTと同様に平文パスワード（plain text password）と暗号化パスワード（encrypt password）の両方で認証することができますが、暗号化パスワードはUNIXのpasswdファイルと互換性がないため、別々に管理しなければなりません。
  しかし、この不便を補完するためにUNIXとのパスワード同期機能や平文パスワードから暗号化パスワードへの移行機能が提供されています。
  関連パラメータ：security , encrypt passwords , unix password sync , update encrypted
- 大文字と小文字の問題
  WindowsNT/95/98も表示に関しては、ファイル名の大文字小文字の区別がありますが、アクセス時には区別がありません。
  ですから、同一ディレクトリにABCというファイルとabcというファイルを作成することはできません。
  ところが、UNIXには正確な大文字小文字の区別があるため、同一ディレクトリにABCというファイルとabcというファイルを作成することが可能です。
  Sambaサーバにこうしたファイルを作成したり、アクセスするとき予期できない結果になることがあります。
  関連パラメータ：mangle case , case sensitive , default case , preserve case , short preserve case
- １６ビットプログラムのための８．３形式の短いファイル名の問題
  Windowsは１６ビットプログラムのために８．３形式の短いファイル名と255バイトまでの長いファイル名をファイルシステム(FAT,NTFS）に保持しています。（ファイル作成時に決めて、２つを保存）
  ところが、UNIXのファイルシステムは長いファイル名しか保持しないため、Sambaは１６ビットプログラムのために８．３形式の短いファイル名をアクセス時に自動生成してクライアントに返します。（これをName Manglingといいます）
  このため、似たような長いファイル名が複数あるとSambaはこれを正しく区別できないことがあります。
  （クライアントから短い名前でアクセスした時、間違ったファイルを返すことがあります）
  関連パラメータ：mangled names , mangle case , case sensitive , default case , preserve case , short preserve case
- プリント・サーバ機能
  WindowsNTに対しては、プリンタ・ドライバの自動インストールが現在できません。
- ファイル保護機能（セキュリティ）
  各共有に対するファイル保護機能（セキュリティ）は、SambaとWindowsNTで、ほぼ同等でホスト（クライアント）名に対する制限がかけられる分Sambaの方が有用でなのですが、ファイル単位の保護機能ではWindowsNTの方が細かく設定できます。
  （ただし、NTFSを使用した場合のみで、FATを使用した場合ではファイル単位のセキュリティはありません）
  Samba上のファイルも、プロパティで（Samba 2.0.4より）セキュリティ・タブが利用できますが、「所有者(owner)」「グループ(group)」「それ以外(other)」の３種類でしか制限できません。
  関連パラメータ： security mask , directry security mask
- ファイル属性の取り扱い
  Windowsではファイルに「読み取り専用」「隠しファイル」「アーカイブ」「システム」といった属性がありますが、UNIXにはこうした属性はありません。
  また、UNIXでは．（ドット）で始まるファイルが隠しファイルとなるのが一般的です。
  SambaにはUNIXの特定ファイルをWindowsのファイル属性にマッピングする機能があります。
  これらを正しく設定すれば、ファイルのプロパティで属性を表示したり、設定したりできます。
  関連パラメータ：alternate permissions , hide files , hide dot files , map archive , map hidden , map system
- 隠しファイルの取り扱い
  WindowsNTサーバにマッキントッシュ・サービスを設定するとMacintoshとWindowsでファイル共有などができるように、UNIXマシン上でCAP （ Columbia AppleTalk Package: http://www.cs.mu.oz.au/appletalk/cap.html ）とSambaを動作させると、MacintoshとWindowsでファイル共有することができます。
  こうした場合、WindowsNTではMacintoshのリソース・フォーク・ファイルなどが見えないのですが、UNIX上では見えてしまいます。
  こうしたファイルをSambaではクライアントから隠すことができます。
  関連パラメータ：hide files , veto files
- ファイル所有者の取り扱い
  Windowsの場合、ディレクトリの下にファイルを作成すると誰でもアクセスできる属性がつくか、上位のディレクトリの属性を引き継ぐのですが、UNIXの場合ファイルは作成者が所有者になるため、セキュリティの取り扱いが異なってしまいます。
  Sambaは、共有ファイルの所有者を作成者に関係なく固定ユーザ (グループ) に設定できます。
  関連パラメータ：force user , force group
- Windows管理ツール
  WinodwsNTサーバに付属する「ドメイン・ユーザ・マネージャ」「サーバ・マネージャ」「WINSサーバ・マネージャ」はSambaサーバに対しては利用できません。

小田切 耕司
一部改定2000.5.10 三浦広志
http://www.samba.gr.jp/