Sambaの最近のブログ記事
SambaのTDBファイルには、永続的に利用するファイルと、一時的なキャッシュのファイルがある。
TDBファイルをクリーンアップしてよいかどうかは、ソースのstate_path()、lock_path()、cache_path()のどの関数でディレクトリ名を取得しているかで判別できる。
state_path()でdb_open()しているTDBファイルは削除してはダメ。
http://lists.samba.org/archive/samba-technical/2004-December/038250.html
こんな問題があるなんて、普通の人は気づかないと思う...。
しかもクラスタソフト導入の時だけとか...。
Samba4のRPMパッケージを作ってみたところ、最近の変更にmake installが追随できていなかったので、パッチを登録。無事commitされた。
LinuxからWindowsに用意されたコマンドを実行したかったので、winexeを使ってみた。
http://eol.ovh.org/winexe/
最新版をビルドしてみると、samba4.0.0tp4のソースを利用していた。
実質的にはsmbclientの亜種みたいなものだった。使い方もそっくり。
$ winexe -U tatsuya //hostname "ipconfig /all" | iconv -f cp932 -t utf-8
コマンドの実行結果は当然ShiftJISなので、Linux上で正常に表示しようと思うと、文字コード変換が必要なのが玉に傷。
でも、これなら、いろいろ改造できそうだ。
http://msdn.microsoft.com/en-us/library/ee442092(PROT.13).aspx
CIFSプロトコルの仕様書が公開された模様。
http://wuhai.wordpress.com/2008/11/13/ngroups_max/
RHEL系はRHEL4以降で65536まで利用可能。
Solaris10は最大32というのがSambaを使うときは厳しい。
Windows Server 2008R2は、中身的にはWindows 7と同等なので、Sambaドメインに参加させるときは、Windows 7と同じような手順が必要となるみたい。
http://lists.samba.org/archive/samba-technical/2009-September/066829.html
Windows 7をSambaドメインに参加させたとき、「DNSのプライマリサフィックスが見つからない」みたいなメッセージが出る。
で、Windows7のDNS プライマリサフィックスを変更するために、結局レジストリを修正すればよいらしい。
http://lists.samba.org/archive/samba/2009-September/150492.html
昔のSamba(3.0.24ぐらいまでかな)は、sambaPwdMustchange属性に、パスワードの有効期限が書かれていた。
これは、パスワードを変更するたびに、アカウントポリシーと合わせて計算された結果が記録されていた。そのため、ユーザーがパスワードを変更しないと、パスワードの有効期限を更新することができなかった。そのため、管理者がパスワードの有効期限のポリシーを変更しても、パスワードを変更しないユーザーには新しいポリシーが適用できなかった。
そのためかどうか分からないけど、最近のsambaは、「sambaPwdLastChangeの値 + パスワードポリシーの有効期限」が、パスワードの有効期限として扱われるようになっている。
そのため、sambaPwdMustChangeは使われなくなった。
ということで、下記にあるように、PDC(3.0.24) + BDC(3.0.35)みたいな構成にしていると、パスワードの有効期限の処理に問題が出てしまうので、ドメインコントローラーのsambaのバージョンは合わせましょうというお話。
http://lists.samba.org/archive/samba/2009-September/150256.html
ちなみに、古いsmbldap-toolsあたりも、このあたりの処理がsambaPwdMustChangeを利用するようになっていて、最新のsambaと組み合わせるとうまく動作しなかったりしたはず。
Samba 3.3.4でldapsam:editposix機能を確認するためにいろいろテストしていたところ、以下のエラーに遭遇。
# /opt/osstech/bin/net sam provision
Checking for Domain Users group.
Adding the Domain Users group.
[2009/07/16 06:24:18, 0] lib/smbldap.c:smb_ldap_setup_conn(626)
ldap_initialize: Bad parameter to an ldap routine
いろいろ調べた結果、passdb backendをダブルクォートで囲んでいると発生することが判明。
NG: passdb backend = ldapsam:"ldap://127.0.0.1"
OK: passdb backend = ldapsam:ldap://127.0.0.1
これは普通の人は気づかないと思う...。バグかなぁ。
Samba 3.3.4に追加で必要なWindows 7用パッチ
http://gitweb.samba.org/?p=samba.git;a=commit;h=1f05472b9a27861f8e4b9b60410890b920f9d359
http://gitweb.samba.org/?p=samba.git;a=commit;h=41f9e61d7c8c106a98792e9009bbecf5edfcebe9
http://gitweb.samba.org/?p=samba.git;a=commit;h=0da133101ab149b074ab369d819fc48b7c95bf71
これらが無いと、レジストリをRequireStrongKey = 0に設定しないと、ドメイン参加はできるけど、「このワークステーションとプライマリ ドメインとの信頼関係に失敗しました」となり、ドメインログオンできない。
ということで、Samba 3.3.5、Samba 3.2.12からはたぶんWindows 7対応(レジストリの追加が2箇所必要)ということになるのかな。
Samba 3.2.10には、Windows XP SP2などがドメインログオンできない問題が含まれてしまった様子。手元の環境でもVista SP1がドメインログオンした直後に、いつのまにかドメインログオフしてしまって使えない状態になる現象が発生していたので、怪しいと思っていた...。
https://bugzilla.samba.org/show_bug.cgi?id=6263
パッチはできたようなので、パッチを当てるか、3.2.11まで待った方が良さそう。
http://news.samba.org/releases/3.0.23c/
ということで、とりあえずCentOS4用のパッケージをビルド中。
ビルドに時間がかかるので、BLOGも更新。
