DOMAIN MEMBER.txt の記載通りに作業してもドメインに参加できない
KB番号 | J0067 |
最終更新日 | 2002/06/02 |
作成者 | たかはしもとのぶ |
最終更新者 |
対象
この文書は、以下のプロダクトに付いて説明したものです。
- Samba 2.2.2 以降
現象
Samba に付属している DOMAIN_MEMBER.txt に記載されている手順に従い、 nmbd、smbdを停止して、サーバーマネージャで「Windows NTワークステーションまたはサーバー」を指定してSambaマシンを追加してから、 Sambaマシン上で
smbpasswd -j DOMAIN -r PDC_NAME
を実行しても、
cli_net_auth2: Error NT_STATUS_NO_TRUST_SAM_ACCOUNT cli_nt_setup_creds: auth2 challenge failed modify_trust_password: unable to setup the PDC credentials to machine PDC_NAME. Error was : NT_STATUS_NO_TRUST_SAM_ACCOUNT. 2002/05/22 16:58:24 : change_trust_account_password: Failed to change password for domain DOMAIN. cli_net_auth2: Error NT_STATUS_NO_TRUST_SAM_ACCOUNT cli_nt_setup_creds: auth2 challenge failed modify_trust_password: unable to setup the PDC credentials to machine PDC_NAME. Error was : NT_STATUS_NO_TRUST_SAM_ACCOUNT. 2002/05/22 16:58:24 : change_trust_account_password: Failed to change password for domain DOMAIN. Unable to join domain DOMAIN.
のようなエラーが出力されてドメインに参加できません。
この時、-d4 オプションなどで、smbpasswd コマンドのデバッグレベルを4以上にしていると、
cli_net_auth2: srv:\\PDC acct:CLIENT$ sc: 6 mc: CLIENT char 547A0B91BD0F681 neg: 1ff
のように、sc という値が 6 になっていることが確認できます。 処理が正常に行なわれるためには、sc の値は 2 である必要があります。
原因
これは Samba 2.2.2 以降の仕様変更に、DOMAIN_MEMBER.txt が追随していないための問題になります。
ドメインに参加するための NetrServerAuthenticate ネゴシエーションでは、secure channel type に 2 (SEC_CHAN_WKSTA) を指定しなくてはなりません。
Samba 2.2.1a までは、 smbpasswd -j 時のこの値は 2 に固定でしたが、Samba 2.2.2 以降では、将来の BDC 機能サポートを見据えて、ROLE_DOMAIN_MEMBER の時のみ 2 で、それ以外の場合は 6 (SEC_CHAN_BDC) が指定されるように実装が変更されています。
ROLE_DOMAIN_MEMBER になる条件は、「security = SERVER | DOMAIN」で、「domain logons = no」の時のみです。しかし、DOMAIN_MEMBER.txt の記述に従って、設定を行なっていくと、smbpasswd -j コマンドを発行する時点では、「security = user」の場合があり得ます。この場合はドメインへの参加が失敗します。
対応策
Samba 2.2.2 以降でドメインに参加するには、事前に smb.conf を
[global] ... security = domain (server でも可)
のように修正してから smbpasswd -j コマンドを実行してください。
この技術情報は samba-jp:12909, sugj-tech:4601からの一連のスレッドの議論を元に作成されています。