およそOSというものは,マシンのユーザーとなる人間と,その人間が使うマシンの資源を管理することが大きな仕事である。第2部では,ユーザーがファイルやフォルダにアクセスしたとき,WindowsXPがその操作を許可・禁止するしくみを調べていこう。

 これも,基本的には従来のWindowsと同じだが,変わっている部分もある。また,Home EditionとProfessionalでは大きく違う。こうした点を理解すれば,WindowsXPの特徴が明確になる。

ユーザーやフォルダを管理するしくみ

 バージョンの違いを見ていく前に,ユーザーや共有フォルダをWindowsXPが管理するしくみを確認しておこう。

ワークグループは無関係

 第1部で解説したように,WindowsXPマシンを初めてネットワークにつなぐ前には,マシンをドメインに所属させるかを決める。これによって,ネットワークを介してアクセスしてきたユーザーの認証方法が違ってくる。

図6 ドメインとワークグループの違い
ユーザーがマシンの共有フォルダなどにアクセスする際には,マシンが正規ユーザーかどうかを確認し,そのユーザーがアクセスできるかどうかを調べる。このユーザー情報を一元管理するしくみがドメインである。ワークグループは共有フォルダなどへアクセスする際には何の関係もない。
 ドメインに所属させないときは,ユーザー名とパスワードの対応表をWindowsXPマシン自身が持つ。そして,その対応表を参照してネットワーク経由でアクセスしてきたユーザーを認証する(図6[拡大表示])。

 アクセスしてきたマシンが参加するワークグループがどこであろうと,対応は変わらない。同一ワークグループのマシンからアクセスしてきたときも,まったく同じである。

 ドメインに所属しないマシンはワークグループに参加するように設定が求められるし,ワークグループという名称も,なにかを管理できそうなイメージだ。しかし,ユーザー情報を管理する面にはなにも関係しない。

ドメインでユーザー情報を一元管理

 一方,WindowsXPをドメインに所属するように設定すると,ユーザー管理情報を1台のサーバー・マシンに置き,そこを参照できるようになる。そしてほかからアクセスを受けると,自分自身でユーザーを認証しないで,ユーザー情報を一元管理しているサーバーに任せる。このサーバー・マシンのことをドメイン・コントローラと呼び,WindowsNT/2000 Serverがなれる。

 この結果,ドメインへ所属するように設定したWindowsXPマシンのユーザーは,自分自身でユーザーを登録したりする必要がなくなる。ユーザー登録は,ドメイン全体を管理する管理者に任せられる。

図7 共有フォルダにはアクセス権が設定されている
設定されているアクセス権の実体はセキュリティ・ディスクリプタといわれ,共有フォルダごと(ファイルごとの場合もある)にある。ここにユーザーやグループのID情報(SID),操作(読み書き),禁止・許可が対になって記述されている。
図8 WindowsXPがローカル・ディスクへアクセスするときの流れ
ユーザーにはアクセス・トークンが割り当てられ,フォルダやファイルに割り当てられたセキュリティ・ディスクリプタと比較することでアクセス権が決まる。

フォルダやファイルに権限をセット

 もう少し詳しく実際の作業の流れと照らし合わせながら動作を見ていこう。最初は話を簡単にするために,ネットワークにつながっていない1台のWindowsXPマシンを例にする。

 WindowsXPのセットアップが終わったあとの最初の作業はユーザー登録だ。新規にユーザーを作成してWindowsXPに登録する裏では,そのマシン内で一意に決まるセキュリティ番号「SID」がユーザーに対して割り当てられる。また,WindowsXPでは複数のユーザーをまとめたグループも作成できるが,これにもユニークなSIDが割り当てられる。

 一方,フォルダやファイルには,だれ(あるいはグループ)がアクセスできるかというアクセス権を設定する。通常,この作業はWindowsXPがインストール時に勝手に設定するが,フォルダのプロパティ画面から変更したり新規に追加できる(図7[拡大表示])。

 この作業の裏では,だれにどんな操作を許可・禁止するかというアクセス権のリストをファイルやフォルダにセットしている。このリストのことを「セキュリティ・ディスクリプタ」といい,その中身はユーザーやグループのSIDに対して,どんなアクセス(読み出しか書き込みかなど)を許可・禁止するかが書かれている。

 ここまでが前準備だ。いよいよWindowsXPマシンにユーザーがログインしてくる。ユーザー名とパスワードを入れると,WindowsXPはユーザーに「アクセス・トークン」というものを与える(図8[拡大表示])。アクセス・トークンは,ユーザー自身のSIDとそのユーザーが所属するグループのSIDが入ったデータの固まりで,そのマシン内で有効な一時的なパスである。ユーザーがフォルダなどへアクセスしようとすると,WindowsXPはこのアクセス・トークンとセキュリティ・ディスクリプタの内容を見比べる。その結果,ユーザーのアクセス権が決まる。

 ただし,Windows95/98/Meは例外で,ローカル・ディスクへアクセスする際には,アクセス権を調べない。ここは,WindowsXPがネットワーク接続が前提のマシンとして大きく進化した部分である。