!== !== DOMAIN.txt for Samba release 2.0.7 26 Apr 2000 !== 寄稿者: Samba Team 更新日: December 4、1998 (John H Terpstra) 更新日: Apr 21, 2000 (Richard Sharpe) 翻訳者: 高橋基信 更新日: 2000/05/02 状態 : 最新 題名: ネットワークログオンと移動プロファイル (Network Logons and Roaming (Roving) Profiles) =========================================================================== 注意!: このドキュメントは誤りの訂正と、重要な新事項の追加を行なうため、 大幅に改定された。追加された記述の多くは、Using Samba からのものである。 (Richard Sharpe) ドメインとワークグループは、ネットワークブラウジングの観点からすると、 全く同じものである。違いはネットワークへのセキュアなログインアクセスを 提供する分散可能な認証のデータベースがドメインには備わっているところに ある。同様に、ドメインのログオンサーバから正しく認証されることで、 ユーザに異なったアクセス権を割り当てることも実現されている(NT Server や NT Server をベースにした他のシステムでは実現されている。現在少なく ともSamba TNG では同様の機能がサポートされている)。 ドメインにログオンする SMB クライアントは、ドメイン内のすべてのサーバが 同じ認証情報を受け入れることを前提にしている。ドメインとワークグループ のブラウジング機能は、全く別の機能であり、BROWSING.txt に記述されてい る。ブラウジングはログオンのサポートと独立の関係であることを今一度明記 しておく。 シングルログオンのネットワークモデルに関連する事項はこのドキュメント 中で記述されている。Samba は Windows for Workgroups や Windows 9x クラ イアントに対するドメインログオン、ネットワークのログオンスクリプトやユー ザプロファイル機能をサポートする。 Windows NT クライアントに対するドメインログオンのサポート計画も進行 中である。これはほぼ完成しており、Samba TNG 系列ではほぼ完全に実装され ている。この機能は Samba 3.0 が最終的にリリースされるときには取り込ま れる筈である。 サポートも完全なものではない。Samba は未だ Windows NT 形式の SAM デー タベースを他のシステムと共有することができない。これはユーザデータベー スを共有する唯一の方法ではあるが、ドメイン内のすべてのサーバが分散した NIS や Kerberos の認証データベースを共有すれば、同じ結果になるであろう。 ドメイン内の SMB クライアントは、ログオンを行なうときに、ログオンサーバ にログオン要求をブロードキャストする。最初に返答したサーバがその作業を 行ない、パスワードを Samba 管理者が設定した方式で認証する。かなり奇妙 だが、ユーザデータベースをサーバ間で共有しないドメインを作成することも 可能である。つまり、実質的にはワークグループのサーバが、ドメインに参加 しているとアナウンスしているような状態である。これは、ドメインとワーク グループとで認証がどのように異なっているのか、また、認証がどのくらい 密接にドメインに依存しているかを実証している。 シングルログオンのドメインに関連する別の機能として、SMB プロトコルを 使った遠隔管理がある。Windows NT の SAM とは異なるユーザ名データベース をもとにしても、これを実装できないことはない。遠隔管理のプロトコルの サポートは、Samba の将来のリリースで計画されている。 このドキュメントで記述されているログオン機能は、Windows for Workgroup、 Windows 9x のクライアントを対象としている。Windows NT クライアントのロ グオン機能はドメインコントローラ機能の一部である。Samba 2.0.x 系列では、 部分的に実装されており、Samba TNG では、より多くの機能が実装されている。 プロファイルのサポートは、Windows 95、Windows NT 4.0 および 3.51 で 動作することが確認されている。現在は、プロファイルの場所、ログオン時に 実行されるスクリプトファイル、ユーザのホームディレクトリを設定すること が可能であり、NT については、ログオン可能な時間を制御する機能も簡単に サポートすることができるだろう。なお、Windows 9x と Windows NT のプロ ファイルのサポートには幾つかの相違点があるが、これについては後述する。 NT Workstation においては、これらすべての機能について NT 4.0 や NT 3.51 のサーバは不要である。Samba は、(例えば、"ドメインユーザマネージャ" を使っても Samba が作成したドメインを表示することができないなどの)制 限付きで実験段階ではあるが、現在 NT サーバによって提供されるログオン サービスを置き換えることが可能である。 Windows 95 においては、プロファイルの保存と、ユーザ認証の両方につい て NT サーバの力を借りることが可能である。ユーザ認証についての詳細は、 security_level.txt を参照のこと。プロファイルの保存についての詳細は以 下を参照のこと。 これらの機能を使うには、クライアントが Samba に対してログオン認証 を行なうように設定する必要がある。同様に、ネットワークにログオンした時 に、バッチファイルを実行し、お気に入りの設定や、デスクトップ、スタート メニューなどの設定をダウンロードするように設定する必要がある。 設定の話にいく前に、Windows 9x がどのようにしてログオンを行なうかを見 ておくことにしよう。 1. クライアントは(サブネットのブロードキャストアドレスに対して) NetLogon 要求をブロードキャストする。これは NetBIOS レイヤで NetBIOS 名 DOMAIN<00> へ対して送られる。クライアントは自分が受信した最初の応 答に含まれる \\SERVER の形式で用いるログオンサーバの NetBIOS 名を取 得する。 2. クライアントはそのサーバに接続し、(SMBsessetupX を用いて)ログオンし、 IPC$ 共有へ(SMBtconX を用いて)接続する。 3. クライアントは NetWkstaUserLogon 要求を行なう。要求にはユーザのログ オンスクリプトのファイル名が含まれている。 4. クライアントは NetLogon 共有に接続し、スクリプトを探す。もし見付かっ た場合は、内容を読み取ってクライアント側で実行する。その後クライアン トは NetLogon 共有との接続を切断する。 5. クライアントは、プロファイルを検索するのに利用されるユーザのホーム 共有(訳注: ユーザにホームディレクトリを提供している共有の意味)情報を 取得するため、NetUserGetInfo 要求をサーバに送信する。 NetUserGetInfo 要求の応答には、ユーザのホーム共有の情報しかないため、 Windows 9x クライアントのプロファイルはユーザのホームディレクトリ内 に存在することが必須である。 6. クライアントはユーザのホーム共有に接続して、ユーザのプロファイルを 探索する。探索を止めるため、ユーザのホーム共有を共有名とパス名とで記 述することが出来る。例えば、\\server\fred\.profile のようになる。 プロファイルが見付かったら、その内容が反映される。 7. クライアントはユーザのホーム共有との接続を切断し、NetLogon 共有に際 接続してポリシーファイルである CONFIG.POL ファイルを探す。もしあれば、 内容が読み込まれて反映される。 設定の手引き: ネットワークログオン ================================== 注意。以前の記述と相反するが、Samba を ドメインマスタブラウザや、ロー カルマスタブラウザとして構成する必要はない。もっとも、別の理由でこのよ うに構成することはあるだろう。 ドメインへのログオンとプロファイルを用いるためには、以下の手順を行な うこと 1) [netlogon] という共有を smb.conf 中に作成する。この共有はすべてのク ライアントから読み込み可能である必要があり、おそらく書き込み不能であ るべきだろう。この共有には、ネットワークログオンスクリプトと CONFIG.POL ファイルがおかれる。(CONFIG.POL ファイルをどう使うべきか、 そもそもこれは何かなどのの詳細は、Microsoft の Windows NT 管理に関す るドキュメントを参照のこと。このファイルのフォーマットは不明である。 従って、Microsoft のツールを使うことになるだろう。) 私が使っているものは [netlogon] path = /data/dos/netlogon writeable = no guest ok = no この共有は、一般ユーザからは書き込み禁止になっていることに注意。セキュ アな環境において、別のユーザのコンピュータがログイン時にダウンロード するファイルを一般ユーザが修正したり追加したりすることは許可すべきで はない。 2) smb.conf の [global] セクションに以下を追加する。 domain logons = yes logon script = %U.bat バッチファイルの記述形式は、もちろん好きにできる。上記は %U が個々の ユーザ名に自動的に変換されるため、ユーザ毎に別のバッチファイルを提供 することになる。その他の標準的なマクロも利用可能である。以下のように 記述することでサブディレクトリにバッチファイルを置くことも可能である。 logon script = scripts\%U.bat 3) ユーザがログインした時に実行するバッチファイルを作成する。バッチファ イルが存在しない場合、バッチファイルは実行されない。 バッチファイルにおいては DOS 形式の CR/LF の改行コードを使うことに注 意すること。もしこれを怠ると、DOS は正しく解釈できないかも知れない。 UNIX 環境で、DOS 形式のファイルを作成する方法がわからないのであれば、 DOS のエディタを使って、リモートからファイルを編集することを推奨する。 4) smbclient を -U オプションで実行し、\\server\NETLOGON 共有が利用可 能であり、バッチファイルが見え、ユーザから読み込み可能であることを 確認する。 5) ログオン時にクライアントが自動的に \\SERVER\NETLOGON 共有を Z ドラ イブとしてマウントするだろう。バッチファイルから実行させるために、有 用なプログラムをそこに置いておくことができる。 注意: ドメインログオンが正しく動作するには、security = user か security = server もしくは security = domain に設定されている必要があ る。共有レベルのセキュリティでは正しく動作しないだろう。 注意: ログオンサーバが別のサブネットに存在したり、クライアントがアクセ スするサーバが別のサブネットに存在する場合は、WINS サーバを設定するこ とが必須である。 設定の手引き: 移動ユーザプロファイルの設定 ========================================== 注意: Samba 2.0.4 から 2.0.5 にかけては、移動ユーザプロファイル回りに 関して、いろいろな混乱がみられた。Samba 2.0.6 からは移動ユーザプロファ イルの実現方式が変更になった。Samba team は現在 Windows NT と Windows 9x の両方について、移動ユーザプロファイルがどのように動作するかを理解 しているので、この機能がこれ以上変更になることはないであろう。 注意: 移動ユーザプロファイルの実現方式は Windows 9x と Windows NT とで 異なっている。 移動ユーザプロファイルをどのように構成すべきかに付いて調べる前に、 Windows 9x と Windows NT クライアントとで、どのようにこの機能が実装さ れているかを見ておいたほうがよいだろう。 Windows 9x クライアントは、ユーザのプロファイルの位置を取得するのに、 NetUserGetInfo 要求をサーバに送る。しかし、応答にはユーザのホーム共有 の情報しかなく、プロファイルの位置についてのフィールドがない。 そのため Windows 9x のプロファイルの場所は、ユーザのホームディレクトリ の下に制限されている。 Windows NT クライアントは NetSAMLogon RPC 要求を送信する。これには多く のフィールドがあり、ユーザプロファイルの位置が格納される独立したフィー ルドも存在する。 このため、Windows 9x と Windows NT とでプロファイルのサポートが異なっ ているのである。 Windows NT の設定 ----------------- Windows NT クライアントをサポートするには、smb.conf の [global] セクショ ン中に(たとえば)以下のように設定すること: logon path = \\profileserver\profileshare\profilepath\%U\moreprofilepath このオプションのデフォルトは、\\%N\%U\profile 、すなわち \\sambaserver\username\profile である。\\%N\%U サービスは、[homes] サー ビスによって自動的に作成される。 プロファイル用に Samba を利用する場合、logon path で指定した共有は、 *必ず* ブラウズ可能 (訳注: browseable = yes) にしておくこと。 [lkcl 1996年8月26日 - Windows クライアントが各ログオンをまたいで [homes] 共有への接続を維持してしまう問題があることを発見した。そのため、 [homes] 共有は、プロファイルパスに使用しては*いけない*。] Windows 9x の設定 ----------------- Windows 9x クライアントをサポートするには、"logon home" パラメータを利 用する必要がある。Samba は現在 net use/home (訳注 net use /home のこと。 以下何箇所か同様のミスがある)が正しく機能するようになっているが、これ も "logon home" パラメータに依存している。 logon home パラメータを使うため、Windows 9x のプロファイルの場所はユー ザのホームディレクトリ内に制限される。 しかし、以下のようなトリックを利用できる。smb.conf ファイルの [global] セクションに以下のように書くと、 logon home = \\%L\%U\.profile Windows 95 クライアントは、プロファイルを .profile というホームディレ クトリのサブディレクトリに置くことになる(したがって、プロファイルを隠 すことが出来る)。 Windows 9x の実装の絡みで、上記 'net use/home' も正しく動作するように なる。net use/home は、ホームディレクトリの情報から、ディレクトリのパ ス情報を削除して、サーバ名と共有名の情報のみを利用する。このため、 logon home に \\%L\%U と指定したかのように見せることが出来る。 Windows 9x と Windows NT の設定 ------------------------------- "logon home" と "logon path" パラメータの両方を設定することで、Windows 9x と Windows NT の両方に対して、プロファイル機能を提供することが出来 る。例えば logon home = \\%L\%U\.profiles logon path = \\%L\profiles\%U 注意: 私は、上記のように "logon home" を記述したときに、net use /home が Windows NT で機能するかどうかはチェックしていない。 Windows 9x プロファイルの設定 ------------------------ ユーザが最初に Windows 9x にログオンすると、user.DAT というファイル が作成され、"スタートメニュー"、"デスクトップ"、"プログラム"、"ネット ワークコンピュータ" というフォルダも同様に作成される。これらのディレク トリとその内容は、以降のログオンする度に c:\windows\profiles\username に保存されているローカルな情報とマージされて、各々のファイルについて、 より新しい方の内容が残される。なおプロファイルフォルダに置かれたショー トカットの大文字を維持するために、[global] セクションには、preserve case = yes と short preserve case = yes が必要になるだろう。 user.DAT ファイルはユーザの設定がすべてが含まれている。もしこの設定 を強制したいのであれば、ファイル名を user.MAN に変更して、ファイルの書 き込みアクセスを拒否すること。 1) Windows 95 マシン上で [コントロールパネル] - [パスワード] を開き、 "ユーザ別の設定" タブを選択する。"ユーザ別の設定" を適宜設定する。 設定後に OK ボタンを押すが、まだリブートしないこと。 2) Windows 95 マシン上で [コントロールパネル] - [ネットワーク] - [ Microsoft ネットワーククライアント] を開き、"Windows NT のドメイン にログオンする" をチェックする。また "優先的にログオンするネットワー ク" は "Microsoft ネットワーククライアント" にしなければならない。 OK を押して、ここでそのままコンピュータをリブートさせること。 Windows 95 においては、プロファイルは "優先的にログオンするネットワー ク" からダウンロードされる。"優先的にログオンするネットワーク" を "Novell Netware クライアント" にしていると、プロファイルとログオンスク リプトは、Novell サーバからダウンロードされる。"優先的にログオンするネッ トワーク" を "Windows ログオン" にしていると、プロファイルはローカルマ シンから読み込まれる。これは移動プロファイルの概念と矛盾する。 上記の設定を行なうと、"Microsoft ネットワークログイン" のボックスが、 [ユーザ名、パスワード] ではなく、[ユーザ名、パスワード、ドメイン] と表 示されるようになる。Samba サーバのドメイン名とユーザ名およびパスワード を入力する。(ここで他の存在するドメイン名を入力してもよい。ここで入力 したドメインで認証され、ログオンサーバが提供していれば、プロファイルが ダウンロードされることに注意すること。) ユーザが正常に認証されると、Windows 95 マシンは "このコンピュータに 初めてログオンするユーザです" と表示し、"ユーザ個別の設定をこのコンピュー タに保存しますか" と聞いてくる。"はい" を選択すること。 Windows 95 クライアントのデスクトップが表示されたら、Samba サーバの "logon path" で指定したディレクトリに "デスクトップ"、"スタートメニュー" "プログラム" および "ネットワークコンピュータ" フォルダが作成されてい ることを確認できる(訳注: Windows 95 ではこれらのフォルダ名は半角カタカ ナであるが、Windows 98 では全角カタカナになっている)。 これらのフォルダはクライアントのローカルディスクにキャッシュされてお り、ユーザがログオフした時に更新される。(もちろん読み込み専用にしてい なかった場合である) ユーザが自分でフォルダやショートカットを作成してい た場合、クライアントはローカルディスクに存在するプロファイルディレクト リの内容と、ダウンロードしてきたプロファイルの内容とをマージし、各々新 しい方のフォルダやショートカットの内容を残すのが確認できる。 Samba サーバ上に読み込み専用のファイルやフォルダを作っていた場合、 Windows 95 マシンにログオンやログオフを行なう度に行なう、ローカルなプ ロファイルとリモートのプロファイルのマージ作業でエラーが発生する。基本 的に Windows 95 マシンがエラーを報告したら、Samba サーバ上のプロファイ ルディレクトリのファイルに対する UNIX のファイルアクセス権や、所有者の 権限をチェックすること。 もしユーザプロファイルの作成時に問題が発生したら、ユーザのローカルな デスクトップのキャッシュを以下に示すようにして初期化できる。ユーザが次 にログオンする時には、"初めてのログオン" であるといわれるだろう。 1) [ユーザ、パスワード、ドメイン] ダイアログボックスで、ログオンを行な わず、エスケープキーを押す。 2) rededit.exe を実行して、以下のキーを見つける。 HKEY_LOCAL_MACHINE\Windows\CurrentVersion\ProfileList (訳注: Windows 98 では HKLM\Software\Microsoft\Windows\CurrentVersion\ProfileList) 各々のユーザの ProfilePath (Windows 98 では ProfileImagePath) のエン トリがある。このキーの値 (c:\windows\profiles\usrname のようになって いる)に着目し、問題のユーザの ProfilePath のキーを削除する。 [レジストリエディタを終了する] 3) 警告 - ProfilePath で表示されているディレクトリ(これは c:\windows\profiles\username のようなパスになっている)の内容を消す前 に、デスクトップやスタートメニューに重要なファイルを置いていないこと を確認しよう。その後 ProfilePath ディレクトリの内容を削除する。(必要 なファイルがあれば、バックアップをとっておくこと) これは、ローカルな "デスクトップ"、"nethood"、"スタートメニュー"、 "プログラム" フォルダと同様に、プロファイルのディレクトリ中にある(読 み込み専用、隠しファイル、システムファイルの) ローカルな user.DAT を 削除するという効果がある。 4) c:\windows ディレクトリにある パスワードキャッシュファイルである、 該当ユーザの .PWL ファイルを探して削除する。 5) Windows 95 クライアントからログオフする。 6) プロファイルパスの設定をチェックして、(前述の "logon path" を参照の こと) 該当ユーザの user.DAT もしくは user.MAN ファイルを削除する。必 要であれば、バックアップをとること。 もし何らかの失敗が発生する場合は、samba のデバッグログのレベルを 3 から 10 の間で増加させるか、同時に tcpdump や netmon.exe のようなパケッ トトレースプログラムを実行させて、エラーの箇所を探すこと。 NT サーバにアクセスした場合、最初に移動プロファイルが作成されるとと もに NT サーバにネットワークログオンが行なわれる。パケットトレースを行 ない、NT サーバにアクセスした時のパケットトレースのサンプルと比較し、 何か違いがないかを確認すること。 Windows NT Workstation 4.0 -------------------------- ユーザが Windows NT Workstation に始めてログオンすると、プロファイル である NTuser.DAT が作成される。 [lkcl 97年8月10日 - 私は \\samba-server\homes\profile というパスを設定 していて、バックグラウンドのプロセスが、[homes]共有への接続をユーザが ログインしていない間もクローズせずに保持しているため、上記の設定が失敗 することを発見した。ユーザのホームディレクトリを [homes] 共有で指定し ている場合は、\\samba-server\%L\profile のように指定しなければならない。] NT のプロファイルで有効になるパラメータとして "logon drive" がある。 これは h: もしくは他のドライブに設定でき、"logon home" パラメータとと もに用いられる。 NT 4.0 のプロファイルのエントリはディレクトリであって、ファイルでは ない。NT のプロファイルに関するヘルプを見ると、.PDS という拡張子を持つ ディレクトリが作成されるとある。ユーザがログオンしている間、プロファイ ルパスへの書き込み権限が必要である。(.PDS 拡張子のついたフォルダ) [lkcl 97年8月10日 - 私は .PDS ディレクトリの作成が失敗し、ユーザ毎に個 別にシェルスクリプトを使って、手作業で作成するしかないという状況に遭遇 した。試験した訳ではないが、プロファイルのフルパスは、Windows 95 の場 合と同様に、browseable である必要があるようだ。これはプロファイルのフ ルパスの作成を試み、存在を確認してから各々のプロファイルの内容を作成す ると言う方式に起因する。(訳注: ここらへんの訳はちょっといい加減であり、 厳密には誤っている可能性がある) プロファイルディレクトリの下に、NT は 95 よりも多くのフォルダを作成 する。"デスクトップ"、"Nethood"、"スタートメニュ"、"プログラム" と同様 に "Application Data" なども作成されるのである。プロファイル自身は NTuser.DAT というファイルに格納される。.PDS ディレクトリの中にはなにも 格納されず、このディレクトリの目的は現在は不明である。 ローカルプロファイルを samba サーバにコピーするのに、コントロールパ ネルを使うことができる。(NT のプロファイルに関するヘルプを参照のこと。 そこには、システムのコントロールパネルの該当箇所を指示する機能も備わっ ている) NT のヘルプでは、NTuser.DAT を NTuser.MAN にりネームすることで、 プロファイルを固定にできるという記述もある。 [lkcl 97年8月10日 - NT Workstation がプロファイルを遅い回線経由でダウ ンロードしていると報告していることに気づいた。これが実際そうであるか、 単なる設定の問題で、不明な理由により、NT Workstation に回線が細いと判 断させてしまうものなのかに関わらず、これは解決すべき問題である。 [lkcl 97年8月20日 - samba のダイジェスト通信の後で、プロファイルは、 "security = user" で "encrypt passwords = yes" (ENCRYPTION.txt を参照) か、"security = server" で "password server = NTサーバのIPアドレス" 以 外の時は、ダウンロードできないということをあるユーザが発見し、別のユー ザによっても確認された。これらのオプションは、NT ワークステーションが、 samba サーバに LAN Manager の暗号化パスワードを用いて接続することを可 能にする設定であるが、特に設定しなければ通常は NT ワークステーション はクリアテキストパスワードの使用を要求する。] [lkcl 97年8月25日 - NT のプロファイルについては、多くのコメントを受け とっている。プロファイルの大文字小文字の区別は重要である。ファイル名は NTuser.DAT でなければならない。また固定プロファイルの場合は、 NTuser.MAN でなければならない。] Windows NT Server ----------------- ユーザプロファイルの保存場所には、好きなパスを指定することが可能である。 それゆえ、暗号化パスワードをサポートしているのであれば、samba や他の SMB サーバ上にプロファイルを保存するように指定することが可能である。 Windows 95 と NT Workstation 4.0 でのプロファイルの共有 ------------------------------------------------------- 注意: これは誤った記述だと思うが、削除はしないでおく。(Richard Sharpe) デフォルトのログオンパスは \\%N\%U である。NT Workstation は、NT のユー ザマネージャでログオンパスを \\samba-server\username に指定していれば、 \\samba-server\username.PDS というディレクトリを作成しようとする。 そのため、(例えば) \\samba-server\username\profile のようなパスを指定 する必要があるだろう。この場合、NT 4.0 は \\samba-server\username\profile.PDS というディレクトリを作成しようとす る。これは普通成功するだろう。 スタートメニューやデスクトップを Windows 95 と共有したいのであれば、 logon path - \\samba-server\username\profile のように指定する必要があ る。[lkcl 97年8月10日 - これには問題がある。c:\winnt\system32 をワーキ ングディレクトリとして実行する telnet.exe へのショートカットを作成した が、このディレクトリは、Windows 95 のみのホストでは、明らかに存在しな いであろう。] この設定がうまく行けば、同じプロファイルのディレクトリに、user.DAT と NTuser.DAT が存在することになる。 [lkcl 97年8月25日 - NT のプロファイルのダウンロードについて、解決すべ き問題がある。それはおそらくタイムスタンプと関係がある。ワークステーショ ン上の NTuser.DAT は、最初にローカルなワークステーションのプロファイル ディレクトリにコピーされてから、全く更新されない。これは、正しくプロファ イルの更新や転送が行なわれる Windows 95 とは対象的である。] 訳注: 「lkcl」の節は、Samba Term の一人、Luke Kenneth Casson Leighton 氏 による加筆である。