DOMAIN MEMBER.txt の記載通りに作業してもドメインに参加できない

提供:Samba-JP
ナビゲーションに移動検索に移動
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からの一連のスレッドの議論を元に作成されています。