Samba

Samba （サンバ） は、マイクロソフトのWindowsネットワークを実装した自由ソフトウェア。
Linux、Solaris、BSD、macOSなどのUnix系オペレーティングシステム (OS) を用いて、Windowsのファイルサーバやプリントサービス、ドメインコントローラ機能、ドメイン参加機能を提供する。

1992年、アンドリュー・トリジェルによって最初のバージョンが開発され、後にGPL v2にて公開された。
3.2系からはGPL v3へ移行した。

 特長 
Sambaは12のサービスと12の通信プロトコルの実装で、CIFS、NetBIOS over TCP/IP (NetBT)、SMB/CIFS、DCE/RPCのほか、MSRPC、NetBIOSネームサーバ (NBNS) として知られるWINS サーバ、NT ドメインログオンを含めた NT ドメインプロトコルスイート、セキュアアカウントマネージャ (SAM) データベース、ローカルセキュリティ認証 (LSA) サービス、NTプリントサービス (SPOOLSS)、そしてバージョン3では（ケルベロス認証とLDAPに対応した） Active Directoryへのドメイン参加機能が含まれている（AD参加機能によってUNIX/Linux上でのユーザ管理が不要になる）。

大雑把には、UNIX機をクライアントあるいは共有ファイルサーバとしてWindowsネットワークへ参加させる機能の他、Windows NT 4.0サーバの機能と、バージョン3では一部Windows 2000 / 2003サーバの機能を持つ（例えば、VSS:ボリュームシャドウコピー機能など）。本家のWindows Serverと異なり、本体価格やサーバに接続するクライアント分のライセンスClient Access Licenseのことであるコストなどが一切不要であることや、アクセス権の指定など一部機能は本家を上回る部分もあるため、官公庁、大学、大企業を中心にSambaを導入する例も増えている。また、Mac OS X v10.6.8まではSambaの機能によって、Windowsネットワーク環境でのファイル共有やドメイン参加を実現していた。しかし、SambaのライセンスがGPL v3に移行しAppleがOSに添付できなくなったことにより、Mac OS X Lionからは取り去られ独自実装のsmbdに置き換えられている。

 名前の由来 
Sambaという名前は、Windowsで使用されているネットワークファイルシステム「SMB (Server Message Block)」に、2つの母音を入れて作られている。Sambaはもともと「smbserver」と呼ばれていたが、SMBserverの商標をもつSyntaxTotalNET Advanced Serverという製品などを販売している。から登録商標であるとの通告があったため、名前が変更された。S, M, B が含まれる単語を探し、Samba が選ばれた。次点の名前は、salmonberry であった。

 主な機能 
 ファイルサーバ 
共有フォルダと呼ばれるサーバ側の空間に、ファイルを格納する機能。NASとしての機能を果たす。

アクセス権を設定できるため、特定のユーザに同じファイルを提供するといった用途が実現できる。
ACLをサポートする環境なら、ユーザやグループ毎に細かくアクセス権を指定することも可能。
Windowsサーバと比べて、「$」で終わる共有名でなくても隠し共有にできる利点がある。（隠し共有…共有名の検索やリストアップを行っても画面に現れないが、正しい名前を指定すればアクセスできる共有フォルダ）

 プリントサーバ 
Windowsクライアント向けのプリントサーバ機能。

共有プリンターの提供やプリンタドライバの配布を行う。

 Windowsドメインコントローラ 
Windows NT 4.0サーバで提供される機能で、NT ドメインと呼ばれるネットワーク領域内で、ユーザやクライアントコンピュータの管理を行う機能。Samba 2.2から提供された。

ユーザアカウントやコンピュータアカウント、アクセス権などの情報を中央集権的に管理し、ユーザ認証やシングルサインオンなどのサービスを提供する。
 プライマリドメインコントローラ (PDC)  ユーザアカウントやコンピュータアカウントなどの、データの原本を持つコンピュータ。
 バックアップドメインコントローラ (BDC)  PDCのデータのコピーを持つコンピュータ。
ドメインメンバ  PDC の認証を受けたコンピュータや、そのコンピュータを利用するユーザ。
ドメインメンバ（利用者側）からは、PDCとBDCは同じ機能を提供しているように見える。
BDCはバックアップの機能を提供しているため、ドメイン内に存在しなくても構わない。同じドメイン内にPDCとBDCが両方存在している場合、ドメインメンバは原則としてBDCにサービスの提供を依頼する。

Samba はPDC / BDCの機能を提供することができ、NT ドメイン内にメンバとして参加することもできる。ただし、WindowsサーバとSambaではアカウント情報の同期の取り方が異なるため、同じドメイン内でWindowsサーバのPDCとSambaのBDCを運用すること、或いはその逆はできない。（なおバージョン3からユーザやグループなどの属性を保持したまま、NT 4.0ドメインからSambaドメインへの移行がサポートされた。）

 Active Directory ドメインメンバ 
Windows 2000サーバ以降から提供されるActive Directoryドメインへのドメインメンバとしての参加機能。Samba 3から提供された。

Active Directoryは前述のNT ドメインに代わるもので、既存のネットワーク技術を応用して構成されている。ユーザアカウントなどの管理情報をLDAPディレクトリサービスに格納し、認証機構にケルベロス、名前解決にDNS、管理情報の配布やコピーにTCP/IPのみを使用する。

 Active Directory ドメインコントローラー 
2012年12月にリリースされたSamba 4よりActive Directoryドメインのドメインコントローラー機能がサポートされている。

 smbclient 
UNIX側からWindowsやSambaの共有フォルダに接続するためのクライアントソフトウェア。

標準的なコマンドラインプログラムFTPのような操作で、共有フォルダに接続し、ファイルを操作することができる。

 libnss_wins 
Name Service SwitchへWINSサーバーと137/udpのブロードキャストを使ったホスト名解決を行うライブラリの提供。

 バージョン履歴 
Samba 3.0までの歩みは「Sambaの10年」を参照。

リリース日バージョンメンテナンス期限(EOL)概要SambaをActive Directoryドメインメンバにして、Windows Active Directoryドメインに参加できる。Unicodeサポート。N/A3.2に向けての開発ブランチ。GPL2からGPL3にライセンス変更。IPv6のサポート。ファイルサービスの従来の最大1,024バイトというパス名、および最大256バイトのファイル名という制約がなくなり、ホストOSで設定した値までの文字列が扱えるようになった。クラスタサポートや管理ツールが強化。Samba 3とSamba 4ソースコードの両方を含む最初のリリース。デフォルトではSamba 4のビルドは無効。SMB2の実験的サポートを含む最初のリリース。SMB2を完全にサポートする最初のブランチ。SMB2.1のサポート。SambaをActive Directoryドメインコントローラにして、Windows Active Directoryドメインに完全に参加できる 。SMB3のサポート。Btrfsベースのファイル圧縮、スナップショット、 winbind統合。新しいロギング機能、SMB3.1.1のサポート。非同期フラッシュリクエスト。NTLMv1が既定で無効に、バーチャルリストビュー(VLV)、さまざまなパフォーマンス改善。マルチプロセスNetlogonのサポート。Samba ADとMIT KerberosPython 3のフルサポート。preforkプロセスモデルの改良。SMB1が既定で無効に。Python3.6以降が必要。新VFSインターフェースの導入。新VFS。server multi channel supportが既定で有効に。～2023年9月samba-dcerpcdの導入。証明書の自動登録。～2024年3月SMB1プロトコル無しで構成可能。RBCD(リソースに基づくドメイン間の制約付き委任)をサポート。DNSリスニングポートがカスタマイズ可能。～2024年9月SMBサーバーのパフォーマンス向上。samba-toolのメッセージ機能を更新。新しいwbinfoオプション。

 脚注 

 関連項目 
 Server Message Block (SMB)
 Windows Internet Naming Service (WINS)
 Active Directory

 外部リンク 

 日本Sambaユーザ会

Category:ネットワークソフト
Category:オープンソースソフトウェア
Category:Cでプログラムされた自由ソフトウェア