|
アクセス権限の既定の組み合わせ |
|
Windowsのファイルアクセス権限(1)で、アクセス権限は複数の権限の積み上げであることを説明したが、よく使われる組み合わせはすでに定義してあり、それを利用することもできる。
- フルコントロール
- 変更
- 読み取りと実行
- 読み取り
- 書き込み
これらはファイルのプロパティダイアログの[セキュリティ]タブで確認することができる。
|
|
フルコントロール |
|
フルコントロールはすべてのアクセス権限を与える組み合わせで、アクセス許可エントリダイアログの「フルコントロール」と同じものである。フルコントロールにチェックを入れると、自動的に「変更」「読み取りと実行」「読み取り」「書き込み」にもチェックが入る。
フルコントロールは、C#の列挙体では以下のようになる。
- FileSystemRights.FullControl
アクセス権限 | 読み取り | 書き込み | 実行 | 新規 | 削除 |
ファイル内容(データ) | ■ | ■ | ■ | ■ | ■ |
属性 | ■ | ■ | | | |
拡張属性 | ■ | ■ | | | |
アクセス許可 | ■ | ■ | | | |
所有権 | | ■ | | | |
|
|
変更 |
|
変更とは、アクセス許可の書き込みと所有権の取得以外、すべて許可が与えられた権限である。変更にチェックを入れると、自動的に「読み取りと実行」「読み取り」「書き込み」にもチェックが入る。
C#の列挙体では、以下のようになる。
アクセス権限 | 読み取り | 書き込み | 実行 | 新規 | 削除 |
ファイル内容(データ) | ■ | ■ | ■ | ■ | ■ |
属性 | ■ | ■ | | | |
拡張属性 | ■ | ■ | | | |
アクセス許可 | ■ | □ | | | |
所有権 | | □ | | | |
|
|
読み取りと実行 |
|
読み取りと実行は、ファイル内容の読み取り、ファイルの実行に加え、属性の読み取り、拡張属性の読み取り、アクセス許可の読み取りに許可を与える組み合わせである。読み取りと実行にチェックを入れると、自動的に「読み取り」にもチェックが入る。
C#の列挙体では、以下のようになる。
- FileSystemRights.ReadAndExecute
アクセス権限 | 読み取り | 書き込み | 実行 | 新規 | 削除 |
ファイル内容(データ) | ■ | □ | ■ | □ | □ |
属性 | ■ | □ | | | |
拡張属性 | ■ | □ | | | |
アクセス許可 | ■ | □ | | | |
所有権 | | □ | | | |
|
|
読み取り |
|
読み取りは、ファイル内容の読み取り、属性の読み取り、拡張属性の読み取り、アクセス許可の読み取りに許可を与える組み合わせである。
C#の列挙体では、以下のようになる。
アクセス権限 | 読み取り | 書き込み | 実行 | 新規 | 削除 |
ファイル内容(データ) | ■ | □ | □ | □ | □ |
属性 | ■ | □ | | | |
拡張属性 | ■ | □ | | | |
アクセス許可 | ■ | □ | | | |
所有権 | | □ | | | |
|
|
書き込み |
|
書き込みは、ファイル内容の書き込み、ファイルへのデータの追加、属性の書き込み、拡張属性の書き込みに許可を与える組み合わせである。アクセス許可の書き込みと所有権の取得が許可されていないことに注意が必要である。
C#の列挙体では、以下のようになる。
アクセス権限 | 読み取り | 書き込み | 実行 | 新規 | 削除 |
ファイル内容(データ) | □ | ■ | □ | ■ | □ |
属性 | □ | ■ | | | |
拡張属性 | □ | ■ | | | |
アクセス許可 | □ | □ | | | |
所有権 | | □ | | | |
|
|
アクセス許可とアクセス拒否 |
|
これまで説明したのは、ユーザーまたはグループにファイルまたはフォルダーのアクセス許可を与える方法である。一方これと同様にアクセス拒否を設定することができる。
拒否権限は以下の特徴がある。
- 積み上げで拒否権限を設定する。
- 許可権限より優先して適用される。
アクセス拒否の設定で気をつけなければならないのは、アクセス許可より拒否が優先されてしまうことである。一般ユーザーのアクセスを防ごうとして「Users」に対する読み取り拒否を設定すると、「Administrators」と「Users」の両方に加わっている管理者ユーザーだと、Usersに対する拒否が優先されてそのファイルの読み取りができなくなってしまう。
想定外のトラブルを避けるため、基本的にはアクセス拒否を使うのは避けた方がよいだろう。
アクセス許可とアクセス拒否の設定は、C#の列挙体では以下のようになる。(FileSystemAccessRuleクラスのコンストラクタの第三引数として渡す。)
- AccessControlType.Allow
- AccessControlType.Deny
|