Table of Contents
この章では、3.xシリーズのリリースの間に行われた変更の詳細な記録を提供する。この時点で、 このシリーズはGNU GPLバージョン2でライセンスされる3.0.xとGNU GPLバージョン3でライセンス される Samba 3.2.xシリーズがある。
Sambaは常時発展しているソフトウェアで、リリース間で明確な違いがある時もある。それらの 変更点のいくつかは、公式のMicrosoftパッチとアップデートによるセキュリティか機能の更新の 結果、Microsoft Windows ネットワーククライアントによって使われるプロトコルの変更の結果に よってもたらされる。特に、Sambaそれ自身の内部操作に影響するものについては、Sambaは そのような変更に追従しなければならない。
使用しているSambaのバージョンに、明確に言及している、以下のどのような節をも参照して ほしい。一般的に、新しいリリースに適用されるすべての変更は、それ以降のリリースにも 適用される。例えば、Samba3.0.23における変更は、3.0.25を含むそのあとすべての新しい リリースに適用される。Samba 3.2.xは3.2.0固有の変更が適用される前に、Samba 3.0.25から オリジナルが分割された。3.0.xシリーズの機能が特に無効にされていないのならば、 3.2.xシリーズの動作は、それ以前のパターンに沿うと推測できる。
Samba-3.0.25の既定値の動作は、おおよそSamba-2.2.xと同じであるべきである。smb.conf
ファイル中に新しいパラメーターpassdb backendが定義されていない
場合の既定値の動作は、encrypt passwords = Yesと
smbpasswd
データベースを使う、Samba-2.2.xの既定値の動作と同じに
なる。
なぜ、動作がおおよそSamba-2.2.xと同じであるべきであると言うのか? なぜならば、Samba-3.0.25は、結果として異なったプロトコルコードパスを取るかもしれない ネイティブなユニコードをサポートするような、新しいプロトコルを使うことが出来るからである。 そのような環境における新しい動作は、古いものとは正確に同じではない。うれしいことに、 ドメインとマシンSIDはアップグレードにおいて保存される。
もしも、Samba-2.2.xがLDAPを使っていて、LDAPデータベースを更新する時間がないならば、
smb.conf
ファイル中でpassdb backend = ldapsam_compat
を指定する。その他の点に関しては、動作は多かれ少なかれ同じであるべきである。
その後、Samba-3互換のLDAPバックエンドに切り替える時間があるとき、pdbedit
を使って古いLDAPデータベースを新しいものに移行することは可能である。
The pdbeditコマンドを参照のこと。
新機能のうち代表的なものは以下の通り:
Active Directoryのサポート。このリリースはメンバーサーバーとしてADS realmに参加でき、 LDAP/Kerberosを使ってユーザーの認証が出来る。
ユニコードのサポート。Sambaはネットワーク上でUnicodeを使えるようになり、 マルチバイトとユニコード文字セットを扱うための、よりよい基盤を内部にもつ ようになった。
新しい認証システム。内部の認証システムはほとんど書き換えられた。変更の多くは 内部的なものであるが、新しい認証システムはとても自由に設定できる。
新しい、ファイル名の短縮システム。ファイル名短縮システムは完全に書き換えられた。 内部データベースは、恒久的に短縮マップを格納する。
新しい“net”コマンド。新しい“net”コマンドが追加された。 Windows中の“net”コマンドと幾分似ている。結局、たくさんある他の ユーティリティ(たとえばsmbpasswd)を“net”中のサブコマンドで 置き換えることを計画している。
Sambaはネットワーク上でNT形式のstatus32コードで通信できるようになった。 これはかなりエラーハンドリングを改善する。
よりよいWindows 200x/XP印刷サポート。Active Directory中にプリンター属性を 公開することを含む。
SIDからUID/GIDマッピングをLDAPディレクトリに格納する事による、 分散Winbindアーキテクチャの新規サポート。
Samba文書構造の大規模な更新。
既定値のWindows 2003セキュリティ設定との互換を取るために、サーバーと クライアントにおけるSMB署名の完全なサポート。
さらに多くの改良がある!
この節には、Samba-2.2.xシリーズからSamba-3.0.25を含むまでのsmb.conf
の変更の
簡単な一覧がある。
新規、あるいは変更されたパラメーターについての完全な説明は、smb.conf(5)のマニュアル ページを参照のこと。
Sambaのアップデートあるいはアップグレードをするときはいつでも、Sambaの配布セット の一部である、WHATSNEW.txtというファイルを読むことを強く推奨する。 このファイルは、Sambaのwebサイトの、 右側のカラム、Current Stable Releaseの下で、Release Notesを クリックして入手してもよい。
アルファベット順で、以下はSamba-2.2.xから3.0.35で削除されたパラメーターの一覧である。
admin log
alternate permissions
character set
client codepage
code page directory
coding system
domain admin group
domain guest group
enable rid algorithm
enable svcctl
force unknown acl user
hosts equiv
ldap filter
min password length
nt smb support
post script
printer admin
printer driver
printer driver file
printer driver location
read size
source environment
status
strip dot
total print jobs
unicode
use rhosts
valid chars
vfs options
winbind enable local accounts
winbind max idle children
wins partners
以下の新しいパラメーターは、Samba 3.0.25までにリリースされたものである(機能毎にグルーピング:)
リモート管理
abort shutdown script
shutdown script
ユーザーとグループアカウント管理
add group script
add machine script
add user to group script
algorithmic rid base
delete group script
delete user from group script
passdb backend
rename user script
set primary group script
username map script
認証
auth methods
ldap password sync
passdb expand explicit
realm
プロトコルオプション
add port command
afs token lifetime
client lanman auth
client NTLMv2 auth
client schannel
client signing
client use spnego
defer sharing violations
disable netbios
dmapi support
enable privileges
use kerberos keytab
log nt token command
ntlm auth
paranoid server security
sendfile
server schannel
server signing
smb ports
svcctl list
use spnego
ファイルサービス
allocation roundup size
acl check permissions
acl group control
acl map full control
aio read size
aio write size
dfree cache time
dfree command
ea support
enable asu support
fam change notify
force unknown acl user
get quota command
hide special files
hide unwriteable files
inherit owner
hostname lookups
kernel change notify
mangle prefix
map acl inherit
map read only
max stat cache size
msdfs proxy
open files database hash size
set quota command
store dos attributes
use sendfile
usershare allow guests
usershare max shares
usershare owner only
usershare path
usershare prefix allow list
usershare prefix deny list
usershare template share
vfs objects
印刷
cups options
cups server
force printername
iprint server
max reported print jobs
printcap cache time
ユニコードと文字セット
display charset
dos charset
UNIX charset
SIDからUID/GIDへのマッピング
idmap backend
idmap gid
idmap uid
username map script
winbind nss info
winbind offline logon
winbind refresh tickets
winbind trusted domains only
template primary group
LDAP
ldap delete dn
ldap group suffix
ldap idmap suffix
ldap machine suffix
ldap passwd sync
ldap replication sleep
ldap timeout
ldap user suffix
一般的な設定
eventlog list
preload modules
reset on zero vc
privatedir
acl group control (新しい既定値は No, 廃止されるパラメーター)
change notify timeout (スコープが変更)
dos filemode (既定値で無効に)
dos filetimes (既定値で有効に)
enable asu support (既定値で無効に)
enable privileges (既定値で有効に)
encrypt passwords (既定値で有効に)
host msdfs (既定値で有効に)
mangling method (既定値でhash2を設定)
map to guest
only user (廃止)
passwd chat
passwd program
password server
restrict anonymous (整数値)
security (新しくadsが追加)
strict locking (既定値でautoに)
winbind cache time (5分に増加)
winbind enum groups (既定値で無効に)
winbind enum users (既定値で無効に)
winbind nested groups (既定値で有効に)
winbind uid (idmap uidのために廃止に)
winbind gid (idmap gidのために廃止に)
winbindd nss info
write cache (廃止)
Samba-2.2.xシリーズからの主要な動作の変更点は、この節に記述してある。現在の
Sambaリリースのサポート期間中に行われた変更に関連する詳細情報を得るためには、
各Sambaリリースに同梱されるWHATSNEW.txt
を参照してほしい。
インストール、第一章, 第一章に、Samba-3データファイルに関連する、 その配置とサーバー移行、アップデートとアップグレードにおいて保持しなければ ならない情報があるので、参照してほしい。
Samba-3にアップグレードする前に、存在している${lock directory}/*tdbをバックアップ する事を忘れないでほしい。もしも必要ならば、Sambaはオープンされているように データベースをアップグレードする。Samba-3から2.2へのダウングレードか、 最新版のSamba-3より前のバージョンへの変更は、サポートされない手順である。
古いSamba-2.2.xのtdbファイルは次のテーブル で説明されている。
Table 35.1. Samba-2.2.xのTDBファイルの説明
名前 | 説明 | バックアップ必要? |
---|---|---|
account_policy | ユーザーポリシーの設定 | yes |
brlock | バイトレンジファイルロック情報 | no |
connections | クライアント接続情報 | no |
locking | 一時ファイルロックデータ | no |
messages | smbdによって生成されたメッセージの一時的な記憶場所 | no |
ntdrivers | プリンター毎のドライバー情報を格納 | yes |
ntforms | プリンター毎のフォーム情報を格納 | yes |
ntprinters | プリンター毎のdevmode設定情報を格納 | yes |
printing/*.tdb | 印刷サービス毎に作成されたlpqコマンドからのキャッシュされた出力 | no |
registry | 読み取り専用のSambaレジストリスケルトンで、winreg RPC経由で種々の データベーステーブルをエクスポートする機能を提供する。 | no |
sessionid | その他のセッション情報のための一時的なキャッシュ。 | no |
share_info | 共有のACL設定。 | yes |
unexpected | どのプロセスもリッスンしていないパケットの受信用。 | no |
winbindd_cache | NT4かADSドメインから受信した識別情報のキャッシュ。 | yes |
winbindd_idmap | SIDからUNIXのUID/GIDへの新しいIDマップテーブル。 | yes |
以下の問題はSamba-2.2とSamba-3の間で、特定のインストール状態におけるSambaの動作の 変更点として知られている。
操作がWindowsドメインのメンバーの場合、Samba-2.2は、もしもUIDがgetpwnam() 呼び出し経由で得られなかった場合、“guest account”に、リモート DCによって認証された任意のユーザーをマップする。Samba-3は、 “NT_STATUS_LOGON_FAILURE”というエラーメッセージで接続を 拒否する。Samba-2.2の動作を再度確立するための現時点での回避策はない。
Samba-2.2で制御されたドメインにマシンを追加するとき、 “add user script”はマシン信頼アカウントのUNIX識別子を 作成するのに使われる。Samba-3では新しい “add machine script”という、この目的のために指定しなければ ならないスクリプトを導入している。Samba-3は、 “add machine script”がない場合に、 “add user script”を使うように切り替える事はしない。
Samba-3に移動するときにSamba管理者が知っておくべきいくつかの新しい変更が ある。
暗号化されたパスワードは、Windowsクライアントをそのまま使える事との
相互運用性を向上させるために、既定値で有効になった。これは、(a)
Sambaアカウントは各ユーザー毎に作成する必要があるか、(b)
“encrypt passwords = no”を明示的に smb.conf
中で定義する
必要があるということである。
ネイティブなWindows Kerberos 5とLDAPプロトコルを使う、Active Directory ドメインとの統合のための、新しいsecurity = ads オプションの包含。
Samba-3は、認証方法を複数設定できる機能(auth methods)
と、アカウント格納バックエンドを複数設定できる機能(訳注:現在は無効)
(passdb backend)がある。詳細は、smb.conf
マニュアル
ページとアカウント情報データベースを参照して
ほしい。両方のパラメーターが妥当な既定値を仮定している間、Sambaの動作を実際に
どの値が正しくさせているかを理解する必要があることはありえる。
smbpasswd
の特定の機能は、新しいsmbpasswd
ユーティリティ、net
ツールと新しいpdbedit
ユーティリティの間で分割された。詳細は、それぞれのマニュアルページを参照のこと。
この節では、Samba/LDAP統合に影響する新しい機能の概要を説明する。
新しいオブジェクトクラス(sambaSamAccount)が古いsambaAccountを置き換える ために導入された。この変更は、他のベンダからの属性を破壊するのを防ぐための、 属性の変更を支援する。LDIFファイルを新しいスキーマに変更するための変換 スクリプトがexamples/LDAP/convertSambaAccountにある。
$
ldapsearch .... -LLL -b "ou=people,dc=..." > old.ldif$
convertSambaAccount --sid <DOM SID> --input old.ldif --output new.ldif
<DOM SID>は以下を、Samba PDC上で、rootで動かすことで入手できる。
$
net getlocalsid <DOMAINNAME>
Samba-2.x下では、ドメインSIDは以下を実行することで得られる:
$
smbpasswd -S <DOMAINNAME>
古いsambaAccount
スキーマは、
ldapsam_compat
passdb バックエンドを指定することで
引き続き使っても良い。しかし、sambaAccountと関連する属性はスキーマ
ファイルの歴史的セクションに移動済みで、もしも必要な場合、使う前に
コメントアウトしなければならない。sambaAccount
に対するSamba-2.2オブジェクトクラスの定義は、Samba-3の
samba.schema
ファイル中では変更されていない。
他の新しいオブジェクトクラスとそれが使うものは以下の通り:
sambaDomain
必要に応じて
ユーザーとグループのRIDを割り当てるために使われるドメイン情報。
もしもidmap UID/GIDの範囲が設定され、“ldapsam”
passdbバックエンドが選択された場合、属性は
“ldap suffix”ディレクトリエントリ中に、
自動的に追加される。
sambaGroupMapping は、posixGroupとWindowsのグループ/SID との間で関連づけを行うためのオブジェクト。これらのエントリは “ldap group suffix”中に格納され、 “net groupmap”コマンドによって管理される。
sambaUNIXIdPool
“ldap idmap suffix”エントリ中に自動的に作成され、
次に有効な“idmap UID”と“idmap GID”
を格納している。
sambaIdmapEntry
SIDとUNIXのUID/GID間でのマッピングを格納するオブジェクト。
これらのオブジェクトは必要に応じてidmap ldapモジュールにより
作成される。
以下の新しいsmb.conf
パラメーターは、
passdb backend = ldapsam://...
が指定された時に
特定のLDAPクエリを指示するのを支援するために追加された。
ldap suffix ユーザーとコンピューターアカウントを検索するのに使用。
ldap user suffix ユーザーアカウントを格納するのに使用。
ldap machine suffix マシン信頼アカウントを格納するのに使用。
ldap group suffix posixGroup/sambaGroupMappingエントリの位置。
ldap idmap suffix sambaIdmapEntryオブジェクトの位置。
もしも、ldap suffix
が定義されていた場合、これは残りの
subsuffixパラメーターに追加される。この場合、smb.conf
中のサフィックスの
記述順序は重要である。常時、他のものよりも前に、
ldap suffix
を記述すること。
Sambaのsmb.conf
解析の制限により、引用符でドメイン名を囲ってはいけない。
Samba-3はidmapサブシステムにもLDAPバックエンドをサポートしている。以下の オプションは、Sambaにidmapテーブルを、ディレクトリサーバー onteroseの ou=Idmap,dc=quenya,dc=org部分に格納する事を指示する。
[global] |
... |
idmap backend = ldap:ldap://onterose/ |
ldap idmap suffix = ou=Idmap |
idmap uid = 40000-50000 |
idmap gid = 40000-50000 |
この設定では、UID/GID名前空間を複数のサーバー上で共有するWinbindの利用が 出来るようになり、Samba-2.2で存在していた、NFSとの相互運用の問題を 解決する。