icacls

指定されたファイルの随意アクセス制御リスト (DACL) を表示または変更し、保存した DACL を指定したディレクトリ内のファイルに適用します。

Note

このコマンドは、非推奨の cacls コマンドを置き換えます。

構文

icacls <filename> [/grant[:r] <sid>:<perm>[...]] [/deny <sid>:<perm>[...]] [/remove[:g|:d]] <sid>[...]] [/t] [/c] [/l] [/q] [/setintegritylevel <Level>:<policy>[...]]
icacls <directory> [/substitute <sidold> <sidnew> [...]] [/restore <aclfile> [/c] [/l] [/q]]

パラメーター

パラメーター 説明
<filename> DACL を表示または変更するファイルを指定します。
<directory> DACL を表示または変更するディレクトリを指定します。
/t 現在のディレクトリとそのサブディレクトリ内のすべての指定されたファイルに対して操作を実行します。
/c ファイル エラーが発生した場合でも、操作を続行します。 エラー メッセージは引き続き表示されます。
/l 宛先ではなくシンボリック リンクに対して操作を実行します。
/q 成功メッセージを抑制します。
[/save <ACLfile> [/t] [/c] [/l] [/q]] /restore で後ほど使うため、一致するすべてのファイルの DACL をアクセス制御リスト (ACL) ファイルに格納します。
[/setowner <username> [/t] [/c] [/l] [/q]] 一致するすべてのファイルの所有者を、指定したユーザーに変更します。
[/findsid <sid> [/t] [/c] [/l] [/q]] 指定したセキュリティ識別子 (SID) を明示的に示す DACL を含む、一致するすべてのファイルを検索します。
[/verify [/t] [/c] [/l] [/q]] ACL が正規ではないか、アクセス制御エントリ (ACE) の数と一貫性のない長さを持つ、すべてのファイルを検索します。
[/reset [/t] [/c] [/l] [/q]] ACL を、一致するすべてのファイルの既定の継承された ACL に置き換えます。
[/grant[:r] <sid>:<perm>[...]] 指定されたユーザー アクセス権を付与します。 権限は、以前に許可された明示的なアクセス許可を置き換えます。

:r を追加しない場合は、以前に許可された明示的なアクセス許可にアクセス許可が追加されることを意味します。

[/deny <sid>:<perm>[...]] 指定されたユーザー アクセス権を明示的に拒否します。 明示的な拒否 ACE が指定されたアクセス許可に対して追加され、明示的な許可で同じアクセス許可が削除されます。
[/remove[:g | :d]] <sid>[...] [/t] [/c] [/l] [/q] 指定した SID のすべての出現箇所を DACL から削除します。 このコマンドでは、次を使用することもできます。
  • :g - 指定した SID に対して、許可された権限の出現箇所をすべて削除します。
  • :d - 指定した SID に対して拒否された権限の出現箇所をすべて削除します。
[/setintegritylevel [(CI)(OI)] <Level>:<Policy>[...]] 整合性 ACE を一致するすべてのファイルに明示的に追加します。 レベルは次のように指定できます。
  • l - 低
  • m- 中
  • h - 高
整合性 ACE の継承オプションは、レベルより前に指定でき、ディレクトリにのみ適用されます。
[/substitute <sidold><sidnew> [...]] 既存の SID (sidold) を新しい SID (sidnew) に置き換えます。 <directory> パラメーターと一緒に使用する必要があります。
/restore <ACLfile> [/c] [/l] [/q] 指定したディレクトリ内のファイルに <ACLfile> から格納されている DACL を適用します。 <directory> パラメーターと一緒に使用する必要があります。
/inheritancelevel: [e | d | r] 継承レベルを設定します。次の場合があります。
  • e - 継承を有効にします
  • d - 継承を無効にし、ACL をコピーします
  • r - 継承を無効にし、継承された ACE のみを削除します

解説

  • SID は、数値またはフレンドリ名の形式である場合があります。 数値形式を使用する場合は、SID の先頭にワイルドカード文字 * を付ける必要があります。

  • このコマンドは、ACE エントリの正規の順序を次のように保持します。

    • 明示的な拒否

    • 明示的な許可

    • 継承された拒否

    • 継承された許可

  • オプション <perm> は、次のいずれかの形式で指定できるアクセス許可マスクです。

    • 一連の単純な権限 (基本的なアクセス許可):

      • 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 - 属性の書き込み

    • 継承権限は、どちらの <perm> 形式より優先される場合があります。

      • (I) - 継承。 親コンテナーから継承された ACE。

      • (OI) - オブジェクトの継承。 このコンテナー内のオブジェクトは、この ACE を継承します。 ディレクトリにのみ適用されます。

      • (CI) - コンテナーの継承。 この親コンテナー内のコンテナーは、この ACE を継承します。 ディレクトリにのみ適用されます。

      • (IO) - 継承のみ。 親コンテナーから継承された ACE ですが、オブジェクト自体には適用されません。 ディレクトリにのみ適用されます。

      • (NP) - 継承を伝達しない。 コンテナーおよびオブジェクトによって親コンテナーから継承された ACE ですが、入れ子になったコンテナーには伝達されません。 ディレクトリにのみ適用されます。

C:\Windows ディレクトリにあるすべてのファイルの DACL と、そのサブディレクトリを ACLFile ファイルに保存するには、次のように入力します。

icacls c:\windows\* /save aclfile /t

C:\Windows ディレクトリとそのサブディレクトリに存在する ACLFile にある各ファイルの DACL を復元するには、次のように入力します。

icacls c:\windows\ /restore aclfile

ユーザー User1 に対して、Test1 という名前のファイルに対する DAC アクセス許可の削除と書き込みを許可するには、次のように入力します。

icacls test1 /grant User1:(d,wdac)

SID S-1-1-0 で定義されるユーザーに対して、Test2 という名前のファイルに対する DAC アクセス許可の削除と書き込みを許可するには、次のように入力します。

icacls test2 /grant *S-1-1-0:(d,wdac)