none
ファイルシステムの整合性レベルについて RRS feed

  • 質問

  • ファイルシステムの整合性レベルの動作について確認したいのでよろしくお願いします。

    表記として、先頭文字で権限を区別することにします。
    ] 管理者として実行されているコマンドプロンプト
    | 管理者として実行されていないコマンドプロンプト


    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のバグなのか、私の頭のバグなのか判定できなく、質問させて頂きました。

    2012年7月9日 4:53

回答

  • Integrity Level 関係ないような。
    C:\ の DACL: INHERIT_ONLY_ACE でない Allowed ACE に FILE_WRITE_DATA があるのは、Administrators と SYSTEM だけ。
    C:\test の DACL: C:\ の INHERIT_ONLY_ACE な Allowed ACE を承けた結果、FILE_WRITE_DATA が Authenticated Users にもある。

    2012年7月9日 23:21

すべての返信

  • Integrity Level 関係ないような。
    C:\ の DACL: INHERIT_ONLY_ACE でない Allowed ACE に FILE_WRITE_DATA があるのは、Administrators と SYSTEM だけ。
    C:\test の DACL: C:\ の INHERIT_ONLY_ACE な Allowed ACE を承けた結果、FILE_WRITE_DATA が Authenticated Users にもある。

    2012年7月9日 23:21
  • ご指摘の通りでした。(恥)

    2012年7月10日 5:02