ファイルシステムの整合性レベルの動作について確認したいのでよろしくお願いします。
表記として、先頭文字で権限を区別することにします。
] 管理者として実行されているコマンドプロンプト
| 管理者として実行されていないコマンドプロンプト
Windows 8 Release Preview (UACは有効)をインストールした状態では、このようになっています。
] C:\>icacls .
] ...
] Mandatory Label\High Mandatory Level:(OI)(NP)(IO)(NW)
よって、C:\にフォルダを作成することはできますが、ファイルを作成(コピー)するには昇格が必要になります。
| C:\>mkdir test1
| C:\>fsutil file createnew test1.txt 0
| エラー: アクセスが拒否されました。
C:\のIntegrity Level(ただしHighのまま)を変更します。
] C:\>icacls . /setintegritylevel (CI)(NP)(IO)H
] C:\>icacls .
] ...
] Mandatory Label\High Mandatory Level:(CI)(NP)(IO)(NW)
| C:\>mkdir test2
| クライアントは要求された特権を保有していません。
| C:\>fsutil file createnew test2.txt 0
| エラー: アクセスが拒否されました。
(OI)を(CI)に変えたのにファイルもディレクトリも作れなくなりました。
今度はC:\testを作成して実験してみました。
] C:\>icacls . /setintegritylevel (OI)(NP)(IO)H (※元に戻すため)
] C:\>mkdir test
] C:\test>icacls . /setintegritylevel (OI)(NP)(IO)H
] C:\test>icacls .
] ...
] Mandatory Label\High Mandatory Level:(OI)(NP)(IO)(NW)
| C:\test>mkdir test
| C:\test>fsutil file createnew test.txt 0
| エラー: クライアントは要求された特権を保有していません。
これはC:\と同じですですが、エラーメッセージは違っています。
(OI)から(CI)に変更します。
| C:\test>icacls . /setintegritylevel (CI)(NP)(IO)H
| C:\test>icacls .
| ...
| Mandatory Label\High Mandatory Level:(CI)(NP)(IO)(NW)
| C:\test>mkdir test
| クライアントは要求された特権を保有していません。
| C:\test>fsutil file createnew test.txt 0
| ファイル C:\test\test.txt が作成されました
個人的にはC:\testでの動作が正しく、C:\での動作がおかしいと思うのですが、
どうなのでしょうか?
Windowsのバグなのか、私の頭のバグなのか判定できなく、質問させて頂きました。