ちゃっぴの監禁部屋

ガチガチに締めすぎて動きがとれなくなる。。。

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  292  : 記事  5  : コメント  634  : トラックバック  78

ニュース

あわせて読みたい

記事カテゴリ

書庫

日記カテゴリ

Communities

Windows Vista で 'icacls.exe' という command line utility が新たに加わりました。

どんなものか気になるでしょうから、usage を張っておきます。

ICACLS <名前> /save <ACL ファイル> [/T] [/C] [/L] [/Q]
    すべての一致する名前の ACL を <ACL ファイル> に格納して、後で /restore で
    指定できるようにします。
        
ICACLS <ディレクトリ> [/substitute <旧 SID> <新 SID> [...]]  /restore:<ACL ファ
    イル> [/C] [/L] [/Q]
    格納されている ACL を <ディレクトリ> 内のファイルに適用します。
        
ICACLS <名前> /setowner <ユーザー> [/T] [/C] [/L] [/Q]
    すべての一致する名前の所有者を変更します。
        
ICACLS <名前> /findsid <SID> [/T] [/C] [/L] [/Q]
    <SID> が明示されている ACL を含むすべての一致する名前を検索します。

ICACLS <名前> /verify [/T] [/C] [/L] [/Q]
    ACL が正規の形式ではないか長さが ACE 数と一致しないすべてのファイルを
    検索します。

ICACLS <名前> /reset [/T] [/C] [/L] [/Q]
    すべての一致するファイルについて、ACL を継承された既定の ACL と置換します。

ICACLS <名前> [/grant[:r] <SID>:perm[...]] 
       [/deny <SID>:perm [...]] 
       [/remove[:g|:d]] <SID>[...]] [/T] [/C] [/L]  [/Q]
       [/setintegritylevel Level:policy[...]]
       
    /grant[:r] <SID>:perm は、指定されたユーザー アクセス権を付与します。
        :r を指定すると、以前に付与されたすべての明示的なアクセス許可は新しい
        アクセス許可に置き換えられます。
        :r を指定しない場合、新しいアクセス許可は以前に付与された明示的な
        アクセス許可に追加されます。
    
    /deny <SID>:perm は、指定されたユーザー アクセス権を明示的に否定します。
        指定されたアクセス許可の明示的な否定 ACE が追加され、明示的な許可内容
        に含まれた同じアクセス許可は削除されます。

    /remove[:[g|d]] <SID> は、ACL 内にあるすべての <SID> を削除します。
        :g を指定すると、その SID に対して許可されたすべての権限を ACL から
        削除します。
        :d を指定すると、その SID に対して否定されたすべての権限を ACL から
        削除します。

    /setintegritylevel [(CI)(OI)] レベルは、すべての一致するファイルに整合性
        ACE を追加します。このレベルは次の 1 つとして指定されます。
            L[ow]
            M[edium]
            H[igh]
        整合性 ACE の継承オプションは、レベルの前に配置でき、
        ディレクトリに対してのみ適用されます。
        
注意:
    <SID> は数値形式またはフレンドリ名形式で指定できます。数値形式の場合は、
    SID の始めに * を付けます。
    
    /T は、<名前> で指定されたディレクトリ以下のすべての一致するファイルと
        ディレクトリに対してこの処理が実行されることを指定します。
    
    /C は、どのようなファイル エラーが発生してもこの処理が続行されることを
        指定します。ただしエラー メッセージは表示されます。
  
    /L は、この処理がターゲットではなくシンボリック リンク自体に対して実行
       されることを指定します。
        
    /Q は、icacls が成功のメッセージを抑制することを指定します。
        
    ICACLS は、ACE エントリの正規の順序を維持します:
            明示的な否定内容
            明示的な許可内容
            継承された否定内容
            継承された許可内容
    
    perm はアクセス許可マスクであり、次の 2 種類の方法で指定できます:
        単純な権限を列挙:
                F - フル アクセス権
                M - 変更アクセス権
                RX - 読み取りと実行のアクセス権
                R - 読み取り専用アクセス権
                W - 書き込み専用アクセス権
        特定の権限をコンマ区切りでかっこ内に列挙:
                D - 削除
                RC - 読み取り制御
                WDAC - DAC の書き込み
                WO - 所有者の書き込み
                S - 同期
                AS - システム セキュリティへのアクセス
                MA - 無制限
                GR - 一般的な読み取り
                GW - 一般的な書き込み
                GE - 一般的な実行
                GA - 一般的なすべての操作
                RD - データ読み取り/ディレクトリの一覧表示
                WD - データ書き込み/ファイルの追加
                AD - データの追加/サブディレクトリの追加
                REA - 拡張属性の読み取り
                WEA - 拡張属性の書き込み
                X - 実行/スキャン
                DC - 子の削除
                RA - 属性の読み取り
                WA - 属性の書き込み
        継承権限はどちらの形式の前にも配置でき、ディレクトリにのみ適用され
        ます:
                (OI) - オブジェクト継承
                (CI) - コンテナ継承
                (IO) - 継承のみ
                (NP) - 継承を適用しない

例:
        
        icacls c:\windows\* /save <ACL ファイル> /T
- c:\windows より下にあるすべてのファイルとサブディレクトリの ACL を 
          <ACL ファイル> に保存します。

        icacls c:\windows\ /restore <ACL ファイル>
        - <ACL ファイル> 内のファイルのうち c:\windows とそのサブディレクトリ
          内に存在するすべてのファイルの ACL を復元します

        icacls <ファイル> /grant Administrator:(D,WDAC)
        - Administrator ユーザーに、<ファイル> に対する削除および DAC 書き込み
          のアクセス許可を与えます

        icacls <ファイル> /grant *S-1-1-0:(D,WDAC)
        - SID S-1-1-0 によって定義されたユーザーに、<ファイル> に対する削除
          および DAC 書き込みのアクセス許可を与えます

ACL の保存とか、置換とか結構重宝しそうな機能がいっぱいです。

便利なだけじゃなくて、これ使わないと integrity を含めた正確な ACL が手に入りません。
違いがわかる "%USERPROFILE%\AppData\LocalLow" で試してみましょう。

'cacls.exe' の結果

C:\Users\tyappi>cacls.exe "%USERPROFILE%\AppData\LocalLow"
C:\Users\tyappi\AppData\LocalLow scholes\tyappi:F
                                 scholes\tyappi:(OI)(CI)(IO)F
                                 NT AUTHORITY\SYSTEM:F
                                 NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F
                                 BUILTIN\Administrators:F
                                 BUILTIN\Administrators:(OI)(CI)(IO)F

'cacls.exe' の結果 (SDDL)

C:\Users\tyappi>cacls.exe "%USERPROFILE%\AppData\LocalLow" /S
C:\Users\tyappi\AppData\LocalLow "D:(A;;FA;;;S-1-5-21-3866089856-3861981476-1727 665836-1000)(A;OICIIO;GA;;;S-1-5-21-3866089856-3861981476-1727665836-1000)(A;;FA ;;;SY)(A;OICIIO;GA;;;SY)(A;;FA;;;BA)(A;OICIIO;GA;;;BA)"

'icacls.exe' の結果

C:\Users\tyappi>icacls.exe "%USERPROFILE%\AppData\LocalLow"
C:\Users\tyappi\AppData\LocalLow scholes\tyappi:(F)
                                 scholes\tyappi:(OI)(CI)(IO)(F)
                                 NT AUTHORITY\SYSTEM:(F)
                                 NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F)
                                 BUILTIN\Administrators:(F)
                                 BUILTIN\Administrators:(OI)(CI)(IO)(F)
                                 Mandatory Label\Low Mandatory Level:(OI)(CI)(NW)

1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした

ね、'cacls.exe' ダメでしょう?
ということで、Windows Vista 使うなら 'icacls.exe' で決まり!

投稿日時 : 2007年4月25日 0:22

コメント

# re: Vista なら 'icacls.exe' を使おう! 2007/12/25 2:16 ちゃっぴの監禁部屋
icacls.exe がいまいち
http://blogs.wankuma.com/tyappi/articles/73032.aspx

# re: Vista なら 'icacls.exe' を使おう! 2007/12/25 2:16 ちゃっぴの監禁部屋
re: Vista なら 'icacls.exe' を使おう!

Post Feedback

タイトル
名前
Url:
コメント