Samba 3.2.0 リリースノート
Samba 3.2.0リリースノート(2008年7月1日)
(注:Web版のリリースノートではなく、MLで流れたフルバージョンのリリースノートを訳しています)
これは安定版 Samba 3.2.0の最初のリリースです。
SambaはGPL V3で頒布されるようになったことに留意してください。ライセンスのより詳細な条項については、本リリースノートと共に配布されているCOPYINGファイルを参照してください。
Samba 3.2.0における大きな拡張は以下の通りです:
- ファイルサービス
- いくつかのDCE/RPCインタフェースにおいて、IDLで生成された解析レイヤを用いるようになった
- パス名の最大長 1024 バイトの制約、ファイル名関連コンポーネントの最大256バイトの制約がなくなり、ホストOS の MAX_PATH の設定までの長さが扱えるようになった
- レジストリベースの設定機構が導入された
- CIFS UNIX Extension サポートが改善された
- ファイルサービスのクラスタリングが試行導入された
- サーバ、クライアントツール、ライブラリでIPv6がサポートされた
- 代替データストリームのxattr属性への格納がサポートされた
- サーバ、クライアントツール、ライブラリで、暗号化された SMB トランスポートがサポートされた
- Vista クライアントからの Kerberos 認証がサポートされた
- Winbind 機構と Active Directory 統合:
- Windows Server 2003 のクロスフォレスト、推移的な信頼関係及び一方向の信頼関係が完全にサポートされた
- pam_winbind および NSS 機構の検索機構の拡充により、userPrincipalName を用いたログオンがサポートされた
- NSS 呼び出しにおいて、ネストしたドメイングループのサポートが拡充された
- Active Directory の LDAP 署名ポリシーがサポートされた
- 新しい LGPL の Winbind クライアントライブラリ (libwbclient.so) が登場した
- Windows2008における、ドメイン間の信頼関係確立がサポートされた
- ドメイン参加(Join)
- ドメイン参加に関連するクエリをサポートする新しい NetAPI ライブラリ(libnetapi.so)と GTK+ を用いたドメイン参加 GUI のサンプルが同梱された
- リモートからのドメイン参加、削除がクライアント、サーバにおいてサポートされた
- Windows Server 2008 ドメインへの参加がサポートされた
- ユーザとグループ
- ローカルグループのマッピングテーブルについて、新規に ldb バックエンドがサポートされた
- 認証処理に関するセキュリティの規定値が向上した
- ユーザアカウント関連の問合せをサポートする NetAPI ライブラリが新たに同梱された
ライセンスがGPLv3になりました
Sambaチームは3.2とそれ以降のリリースについて、バージョン3のGNU一般公的利用許諾を適用することにしました。GPLv3は現在頒布されているSambaに適用しているGPLv2ライセンスの更新版です。 これは他のライセンスとの互換性を改善するために更新されたもので、21世紀のフリーソフトウェアが必要とすることに対してよりよく対応している更新されたバージョンのライセンスです。
オリジナルの通知は以下にあります。
http://news.samba.org/announcements/samba_gplv3/
認証に関するセキュリティ設定の既定値
LANMAN ハッシュのサポートは、クライアント、サーバともに無効になりました。 さらに、smbclient 等のクライアントユーティリティや libsmbclient ベース のアプリケーションにおいて、平文認証の要求も無効となっています。これは、 DOS、Windows 9x/Me、OS/2 を実行しているホストとのやりとりに影響します。
設定が変更されたパラメータの詳細なリストについては、「変更点」セクショ ンを参照してください。
レジストリ設定バックエンド
smb.conf による設定を補完するものとして、Samba をレジストリベースで設 定することが可能になりました。レジストリのみで設定を行う場合は「config backend = registry」を smb.conf の [global] セクションに記述することで、 この機能を有効にできます。併用する設定を行う場合は、「include = registry」 を記述することで、レジストリで設定した [global] セクションのパラメータ を取り込むことが可能となります。
新しいパラメータである「registry shares = yes」を smb.conf の [global] セクションに記載することで、レジストリから読み込んだ共有の定義を有効に することができます。この共有は、必要時にサーバによって読み込まれます。レジ ストリで定義された共有は、前述したレジストリに関するパラメータにより、 自動的に有効化されます。
レジストリに格納された設定は、「net conf」コマンドにより容易に管理する ことが可能です。
詳細な情報については、smb.conf(5) および net(8) のマニュアルページを参照してください。
なくなった機能
Pythonバインディングとlibmsprc共有ライブラリは公式なメンテナがいなくなったためにツリーから除外されました。
現在のkernelバージョン中では smbfsはもはやサポートされていないので、smbmountはこのSambaバージョンでは削除されました。その代わりにcifs(mount.cifs)を使ってください。 examples/scripts/mount/mount.smbfs に、smbmount や mount.smbfs の代わりに mount.cifs を呼び出すラッパーのサンプルがあります。
libsmbclientのAPI変更
libsmbclient の ABI の互換性維持および可読性を含めたコード管理の維持は 困難となってきています。ABI の互換性維持およびコードの保守性と拡張性維持と いう目的のため、API が拡張されることとなりました。
特に SMBCCTX コンテキスト構造体の各フィールドはユーザからの読み書きを サポートしなくなり、廃止される予定となりました。SMBCCTX コンテント構造体の メンバにアクセスしていたアプリケーションをリコンパイルすると、警告が出 力されます。
これは、新しいインタフェースに必要な細かい実装の変更を推進するため、意 図的に行われたものです。
大半のアプリケーションについては、これらの変更点の及ぼす影響は究めて小 さいものであると考えられ、多くのアプリケーションは変更の必要がありません。 一例を上げると、KDE (konqueror) が新しいインタフェースに移行するに際して 必要な変更は、1 つのファイル中のたった 4 行のみです。
アプリケーション側で手作業でコンテキスト構造体の値の変更や読み込みを行 う代わりに、この構造体の設定可能な各メンバに対して setter および getter 関数を発行することが可能です。smbc_option_get() および smbc_option_set() 関数も、setter および getter インタフェースへの移行 に伴い廃止予定となりました。setter および getter 関数は全て libsmbclient.h の以下のコメント部でドキュメント化されています。
Getters and setters for CONFIGURATION Getters and setters for OPTIONS Getters and setters for FUNCTIONS Callable functions for files Callable functions for directories Callable functions applicable to both files and directories
"deprecated"の警告を削除するために必要な変更例を示します。
/* Set the debug level */ context->debug = 99;
次のように変更してください。
smbc_setDebug(context, 99);
/* Specify the authentication callback function */ context->callbacks.auth_fn = auth_smbc_get_data;
次のように変更してください。
smbc_setFunctionAuthData(context, auth_smbc_get_data);
/* Specify the new-style authentication callback with context parameter */ smbc_option_set("auth_function", auth_smbc_get_data_with_ctx);
次のように変更してください。
smbc_setFunctionAuthDataWithContext(context, auth_smbc_get_data_with_ctx);
/* Set kerberos flags */ context->flags = (SMB_CTX_FLAG_USE_KERBEROS | SMB_CTX_FLAG_FALLBACK_AFTER_KERBEROS);
次のように変更してください。
smbc_setOptionUseKerberos(context, 1); smbc_setOptionFallbackAfterKerberos(context, 1);
変更点
smb.conf のパラメーター変更
パラメーター名 更新内容 デフォルト値 -------------- ----------- ------- administrative share 新規 No client lanman auth デフォルト値変更 No client ldap sasl wrapping 新規 plain client plaintext auth デフォルト値変更 No clustering 新規 No cluster addresses 新規 "" config backend 新規 file ctdb socket 新規 "" debug class 新規 No lanman auth デフォルト値変更 No ldap connect timeout 新規 2 ldap debug level 新規 0 ldap debug threshold 新規 10 mangle map 削除 min receive file size 新規 0 open files database hashsize 削除 read bmpx 削除 registry shares 新規 No smb encrypt 新規 Auto winbind expand groups 新規 1 winbind rpc only 新規 No
「include = registry」に新しく特殊な意味が追加されました。