共有フォルダへのアクセスは複数の方法で制御できる。Windows Server 2003では「共有アクセス許可」,「NTFSアクセス許可」という2種類のアクセス許可の仕組みを用意している。共有アクセス許可は,共有フォルダのプロパティ画面を開き,[共有]タブにある[アクセス許可]ボタンを押して設定する(図1)。NTFSアクセス許可は,ファイル,フォルダのプロパティ画面にある[セキュリティ]タブで設定できる(図2)。

図1●共有アクセス許可の設定画面
図2●NTFSアクセス許可の設定画面

 共有アクセス許可は,ネットワークを経由して共有フォルダにアクセスするユーザーだけに適用される。これに対してNTFSアクセス許可では,フォルダとファイルへのネットワーク経由のアクセスと,ローカル・アクセスの両方をより厳密に制御できる。ここでローカル・アクセスとは,ファイルやフォルダが存在するコンピュータのキーボードを使用し,対話的にログオンしてアクセスすることを指す。また,共有アクセス許可は共有フォルダ全体に対してアクセス許可を設定するのに対し,NTFSアクセス許可では個々のファイル,フォルダについてそれぞれ設定できる点も異なる。

 設問では,共有アクセス許可の設定で,田中さんがSalesグループ,Managersグループ,Everyoneに属している。このような場合には,累積的に最も制限の緩いアクセス許可が評価される。つまり,田中さんには共有アクセス許可として「フル・コントロール」が付与されることになる。一方,NTFSアクセス許可では,田中さんはAuthenticated Usersのメンバーであるため,「変更」が付与される。

 共有およびNTFSの各アクセス許可は,組み合わせて使用するこができるようになっている。ポイントはこのように組み合わせて使用する場合,より制約の多いアクセス許可が適用されるという点である。例えば,共有アクセス許可で「Everyone:読み取り」だけが設定されている場合,ユーザーがNTFSアクセス許可でファイルの変更を許可されていても,そのユーザーはネットワーク経由でファイルを変更することはできない。

 設問では田中さんに共有アクセス許可として「フル・コントロール」,NTFSアクセス許可として「変更」が付与されている。従って,最終的に有効なアクセス許可は「変更」となる。

 設問の例に限らず,ファイルやフォルダのアクセス許可の評価は意外に誤りやすい。NTFSアクセス許可の場合,対象となるファイル/フォルダに設定されたアクセス許可以外に,親(上位のフォルダ)から継承したアクセス許可も考慮する必要があるからだ。加えてユーザーに何らかの特権が付与されている場合は,それも考慮しなければならない。

 そこで,Windows Server 2003,Windows XP Professionalは,指定したユーザーやグループのファイル/フォルダに対する有効な操作を調べるための[有効なアクセス許可]ツールを用意している(図3)。このツールは,指定したユーザー/グループがメンバーとなっているすべてのドメイン・グループ,ローカル・グループを検索し,親から継承したアクセス許可やユーザーの持つ特権なども考慮して有効なアクセス許可を算出する。有効なアクセス許可ツールは,ファイル,フォルダのプロパティ画面にある[セキュリティ]タブで[詳細設定]ボタンをクリックし,表示されたダイアログ・ボックスの[有効なアクセス許可]タブを開くと利用できる。

図3●有効なアクセス許可ツールの画面
指定したユーザーに対して特定の操作が許可されているかどうかが一目で分かる。

 ちなみに,設問中のEveryoneやAuthenticated Usersは,「特殊ID」と呼ばれる特別なアカウントである。便宜上,これらのIDは一般にグループと呼ばれるが,通常のグループと違って管理者が明示的にメンバーを変更できない。特殊IDのメンバーは,状況に応じて様々なユーザーで構成され,自動的に追加/削除される。

 Everyoneは,ほかのドメインのユーザーやゲストを含め,すべての現在のネットワーク・ユーザーを表すIDである。ユーザーがネットワークにログオンする場合,そのユーザーは自動的にEveryoneに追加される。EveryoneはメンバーとしてAuthenticated UsersとGuestアカウントを含む。

 Authenticated Usersは,認証されたすべてのユーザーとコンピュータを表すIDである。ただし,Guestを含まない点には注意が必要だ。これはGuestにパスワードがある場合も同様である。

 Windows Server 2003には,ほかにもこのような特殊IDがいくつかある。に代表的な特殊IDを示しておく。

表●Windows XP/Server 2003の特殊IDの例

 この中の,Anonymous Logonグループは,Windows NT 4.0/2000ではEveryoneグループの既定のメンバーであるが,Windows XP/Server 2003では既定のメンバーではない。これは,Everyoneグループに読み取りなどのアクセス権を付与した結果,デフォルトで匿名ユーザーにまでアクセスが許可されるという状況を回避するためである。

日経Windowsプロ2005年6月号掲載
藤田 将幸=グローバルナレッジネットワーク