Windows環境では、フォルダーやファイルにアクセス許可設定(NTFSアクセス権の設定)をおこなうことで、許可されたユーザーやグループが許可された操作のみ行えるよう制限することができます。
そこでここではWindows 10を例に、フォルダーやファイルにアクセス許可(NTFSアクセス権)を設定する基本的な方法を紹介します。
目次
フォルダーやファイルのプロパティ画面から
アクセス許可の設定
ここでは、特定のフォルダーに対してアクセス許可を設定する一般的な方法を紹介します。
まず、アクセス許可を設定したいフォルダーを右クリックして、メニューから「プロパティ」を選択します。
プロパティ画面が表示されるので「セキュリティ」タブを選択して「編集」をクリックします。
アクセス許可の設定画面が表示されるので「グループ名またはユーザー名」欄から、アクセス許可を設定するユーザーまたはグループを選択して、「アクセス許可」欄で許可する操作にチェックを入れて「OK」をクリックします。
たとえば「Users」グループに対して「フルコントロール」のアクセスを許可したいときは、「グループ名またはユーザー名」欄から「Users」を選択し、「アクセス許可」欄で「フルコントロール」の横にあるチェックを入れます。
「グループまたはユーザー名」欄に、アクセス許可を設定したいユーザーやグループが表示されていないときは「追加」をクリックします。
「ユーザーまたはグループの選択」画面が表示されるので「詳細設定」をクリックします。
詳細設定画面が表示されるので「検索」をクリックします。
「検索結果」欄に、ユーザーとグループが一覧表示されるので、アクセス許可を設定したいユーザーまたはグループを選択した状態で「OK」をクリックします。
「ユーザーまたはグループの選択」画面に戻ったら「選択するオブジェクト名を入力してください」欄に、選択したユーザーまたはグループが表示されていることをかくにんして「OK」をクリックします。
アクセス許可の設定画面に戻ったら「グループ名またはユーザー名」欄から、追加したユーザーまたはグループを選択して、「アクセス許可」欄で許可する操作にチェックを入れて「OK」をクリックします。
プロパティ画面に戻ったら「OK」をクリックします。
以上で、ユーザーまたはグループが許可された操作を行えるようになります。
継承を無効化するには
上の設定方法では、いくつかの許可設定がグレーアウトして変更できなくなっています。
これは、フォルダーやファイルに設定されているアクセス許可設定が、デフォルトで親フォルダーのアクセス許可設定を継承しているためで、アクセス許可を追加することはできても、そのままでは継承しているアクセス許可設定を変更することはできません。
継承しているアクセス許可設定を含めて変更したいときは、次の手順で継承を無効化することで、継承していたアクセス許可設定も変更できるようになります。
対象となるフォルダーやファイルのプロパティ画面で「セキュリティ」タブから「詳細設定」をクリックします。
詳細設定画面が表示されたら「継承の無効化」をクリックします。
「継承のブロック」画面が表示されるので「継承されたアクセス許可をこのオブジェクトの明示的なアクセス許可に変換します。」をクリックします。
「このオブジェクトから継承されたアクセス許可をすべて削除」をクリックすると、継承されていたアクセス許可設定がすべて削除され、自分でいちからアクセス許可を設定する必要があるのでご注意ください。
詳細設定画面に戻ったら「OK」をクリックします。
以上で、グレーアウトされていたアクセス許可設定項目も変更できるようになります。
コマンドで
コマンドでアクセス許可を設定するときは、icaclsコマンドを使って設定するのが一般的です。
アクセス許可設定の追加
たとえば、Everyoneに「E:\test」フォルダーとサブフォルダー、ファイルにフルコントロールの権限を追加したいときは、以下のようにコマンドを実行します。
> icacls E:\test /grant Everyone:(OI)(CI)(F) /T
コマンド内の(OI)(CI)は、アクセス許可設定の継承の指定で、(OI)はオブジェクト継承と呼ばれ、指定したフォルダー内のファイルにアクセス許可設定を継承することを指定しており、(CI)はコンテナ継承を呼ばれ、指定したフォルダー内のサブフォルダーにアクセス許可設定を継承することを指定しています。
Everyoneに「E:\test」フォルダーとサブフォルダー、ファイルに読み取りと実行の権限を追加するときは、以下のようにコマンドを実行します。
> icacls E:\test /grant Everyone:(OI)(CI)(RX) /T
なお、指定するユーザー名やグループ名に空白文字が含まれている場合は、名前全体を引用符で囲みます。
アクセス許可設定の置き換え
指定したユーザーやグループの既存のアクセス許可設定を置き換えるときは「/grant」オプションに「:r」を付加します。
たとえば、Everyoneユーザーの既存のアクセス許可設定を「E:\test」フォルダーとサブフォルダー、ファイルにフルコントロールの権限に置き換えるときは、以下のようにコマンドを実行します。
> icacls E:\test /grant:r Everyone:(OI)(CI)(F) /T
「Test-Group」というグループの既存のアクセス許可設定を「E:\test」フォルダーとサブフォルダー、ファイルに対して変更の権限に置き換えるときは、以下のようにコマンドを実行します。
> icacls E:\test /grant:r Test-Group:(OI)(CI)(M) /T
アクセス許可設定の削除
たとえば「E:\file01.txt」のアクセス許可設定から、Everyoneグループの許可設定を削除するときは、以下のようにコマンドを実行します。
> icacls E:\file01.txt /remove Everyone
アクセス拒否
「Test-Group」というグループの「E:\test」フォルダーに対する変更の権限を拒否する設定を追加したいときは、以下のようにコマンドを実行します。
> icacls E:\test /deny Test-Group:M
一般的な環境では明示的にアクセス拒否を設定することはほとんどありません。また、アクセス拒否設定はアクセス許可設定より優先されることを留意しておきましょう。
デフォルト設定に戻す
「E:\test」フォルダーとサブフォルダー、ファイルに対して行ったアクセス許可設定のカスタマイズをデフォルトの設定にリセット(初期化)して、親から継承しているアクセス許可設定に戻したいときは、以下のようにコマンドを実行します。
> icacls E:\test /reset /T
所有者の変更
「E:\test」フォルダーとサブフォルダー、ファイルの所有者をAdministratorsに変更したいときは、以下のようにコマンドを実行します。
> icacls E:\test /setowner Administrators /T
アクセス許可設定の確認
icaclsコマンドにファイルやフォルダ名だけ指定(ワイルドカード使用可)して実行すると、現在のアクセス許可設定を表示することができます。
> icacls E:\test
E:\test BUILTIN\Administrators:(I)(F)
BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
NT AUTHORITY\Authenticated Users:(I)(M)
NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(IO)(M)
BUILTIN\Users:(I)(RX)
BUILTIN\Users:(I)(OI)(CI)(IO)(GR,GE)
1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした
icaclsコマンドのヘルプ
icaclsコマンドのより詳しい使い方を知りたいときは、icaclsコマンドに「/?」オプションを付けて実行するか、以下の公式サイトのページが参考になるでしょう。
> icacls /?
アクセス許可の種類
アクセス許可では、基本となる許可設定として以下の6種類が用意されており、通常はこの6種類のアクセス許可設定で対応します
- フルコントロール(F)
- 変更(M)
- 読み取りと実行(RX)
- フォルダーの内容の一覧表示
- 読み取り(R)
- 書き込み(W)
ちなみに、上のアクセス許可設定は以下に挙げる14種類の特殊なアクセス許可設定の組み合わせで構成されています。
- フルコントロール
- フォルダーのスキャンとファイルの実行
- フォルダーの一覧/データの読み取り
- 属性の読み取り
- 拡張属性の読み取り
- ファイルの作成/データの書き込み
- フォルダーの作成/データの追加
- 属性の書き込み
- 拡張属性の書き込み
- サブフォルダーとファイルの削除
- 削除
- アクセス許可の読み取り
- アクセス許可の変更
- 所有者の取得
なお、特殊なアクセス許可設定を明示的に適用することもできますが、よほど特殊な環境でない限り、特殊なアクセス許可設定を明示的に適用することはないでしょう。
あとがき
基本的なアクセス許可設定は、ここで紹介してい方法で対応できるでしょう。
なお、アクセス許可設定は変更しすぎてしまうと、どのユーザーやグループがどのような操作を許可されているか把握しづらくなってしまうので、変更は最小限にとどめておくのがおすすめです。