NTFS上のすべてのファイル,フォルダには「所有者」が設定されている。所有者は,誰にどのようなアクセス許可を付与するかを制御する権限を持つユーザー/グループだ。所有者は原則として,そのファイル/フォルダを作成したユーザーになる。例外的に,Administratorsグループのユーザーが作成した場合には,Administratorsが所有者となる。

 Windowsでは,たとえ管理者であってもファイルのセキュリティ設定を無視して読み書きすることはできない。例えば,ファイルの作成者がAdministratorsグループのアクセス許可の設定を削除した場合,管理者はファイルを読み書きすることも,アクセス許可を変更することもできなくなる(図1)。ただし,Administratorsグループには,自分を所有者にする(所有権を取得する)特権が付与されているので,アクセス許可がなくても所有者の変更はできる。そこで,こうしたファイルにアクセスしたければ,まず所有者を自分自身に変更し,その上で自分にアクセスを許可する,という手順を踏むことになる。

図1●Administratorsに対してアクセスを許可が全く設定されていないファイルのセキュリティ情報を表示しようとしたところ
そのままではアクセス許可を設定することさえできないため,最初に所有権を取得する必要がある。

 所有者の変更は,特権を持つユーザーのほかに,「所有権の取得」という特別なアクセス許可が付与されたユーザーでも可能である。特に,「フル・コントロール」には所有権の取得も含まれるので,フル・コントロールのアクセス許可を持つユーザーなら,所有者を変更できる。

 Windows NT/2000では,所有者を現在ログオン中のユーザーに変更する,つまり「自分を所有者にする」ことしかできない。Administratorsグループのメンバーであっても,変更後の所有者は自分のユーザー・アカウントになる。Windows XPの場合は,Administratorsグループのメンバーに限り,自分自身またはAdministratorsグループのどちらを所有者にするかを選択できる。ただ,この場合でも本質的に「自分を所有者にする」ことしかできない点は変わらない。

 ところが,Windows Server 2003では,Administratorsグループのメンバーであれば任意のユーザーを所有者に設定できる。操作の手順は以下の通りである。

  1. (1)ファイルのセキュリティの詳細設定画面で[所有者]タブを選択する(図2)。Administratorsグループのメンバーであれば,自分のユーザー・アカウントとAdministratorsの両方が表示されるはずである。
  2. (2)[他のユーザーまたはグループ]ボタンをクリックし,所有者にしたいユーザーを指定する。
  3. (3)所有者にしたいユーザーを[所有者]欄で選択して,[OK]ボタンを押す。

 従って設問の状況では,単にAdministratorでログオンし,ファイルの所有者を田中さんにすればよい。所有者は自由にアクセス許可を変更できるので,あとは田中さん自身が自分に適切なアクセス許可を割り当てれば済むからだ。

 もし設問がWindows NT/2000/XPの環境であれば,以下の手順で所有者を田中さんに変更できる。

図2●管理者以外に所有権を設定する手順
[他のユーザーまたはグループ]ボタンを押して[ユーザー,コンピュータまたはグループの選択]ダイアログを開き,所有者に設定するユーザーを選択する。[所有者の変更]欄にユーザーが追加されたら,それを選択して[OK]ボタンを押す。[このアイテムの現在の所有者]が「不明なアカウント」になっているのは,ユーザーを削除したため。
  1. Administratorアカウントでログオンし,必要ならファイルの所有者を自分に変更した上で田中さんにフル・コントロールのアクセス権を与える。
  2. 田中さんのアカウントでログオンし,所有者を田中さんに変更する。

 ところで,問題文をよく読むと2以外の選択肢は明らかに不適当であることが分かる。田中さんはAdministratorsグループに属していないので,選択肢1のように所有者をAdministratorsに設定しても問題は解決しない。選択肢3は,田中さんに所有権を変更する権限がないために実行不可能だ。

 また選択肢4のように吉田という名前のユーザー・アカウントを再び作成しても,セキュリティID(SID)が異なるために別のユーザーとして扱われる。従って,ファイルの所有者とはみなされず,アクセス許可の変更はできない。このように消去法で考えれば,たとえWindows Server 2003で機能が追加されたことを知らなくても,正解にたどり着けるはずだ。

 ちなみにWindows Server 2003には,管理者をファイルの所有者に設定するtakeownコマンドが標準で付属する。このコマンドを利用して管理者を所有者として設定し,ファイルへのアクセスを回復することも可能だ(図3)。takeownコマンドを実行するには,ローカル・コンピュータのAdministratorsグループのメンバーであるか,適切な権限が委任されている必要がある。ドメイン環境の場合はDomain Adminsグループのメンバーであれば実行できる。コマンドのオプションについては表1を参照してほしい。

図3●takeownコマンドの実行結果
「/r」オプションを利用してフォルダに含まれるすべてのファイル/フォルダを一括設定することもできる。

表1●takeownコマンドのオプション
オプション 説明
/s[コンピュータ] リモート・コンピュータの名前またはIPアドレスを指定する。既定はローカル・コ ンピュータ
/u[ユーザー] 指定したユーザー・アカウントのアクセス許可でコマンドを実行する
/p[パスワード] /uオプションで指定したユーザーのパスワードを指定する
/f[パス] ファイル名またはフォルダ名を指定する。ワイルド・カード文字“*”を使って複数 のファイル/フォルダを指定することもできる
/a 現在のユーザーではなく管理者グループ(Administrators)に所有権を与える
/r 指定したフォルダおよびサブフォルダにあるすべてのファイルに対して再帰的に 操作を実行する
/d{Y|N} 指定したフォルダ内のサブフォルダを表示するアクセス許可を,現在のユーザー が持たない場合の既定の動作を指定する。所有権を取得する場合はYを,処理 をスキップする場合はNを指定する

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