【あいしーえーしーえるえす】

icacls とは?

最終更新:
💡 Windowsのアクセス権を、まず表示して確かめる

WindowsのファイルやフォルダのDACL(アクセスを許可・拒否する一覧)を表示・変更するコマンド。まず現在の権限と継承を確認し、変更対象を慎重に選びます。

📌 このページのポイント
icacls:誰の権限か、継承かを読むまず変更せず、DACLを表示icacls "対象のパス"例:BUILTIN\Users:(I)(RX)Users主体誰への権限か(I)親から継承継承した項目(RX)読み取り・実行権限の内容他の許可・拒否・グループも確認する変更・再帰処理は、対象範囲を確認してから
説明用の出力例です。この一行だけで利用者の最終的な権限は決まりません。項目の色分けは読み方の整理で、自動変更の処理順ではありません。
ひよこ ひよこ
最初に何をすればいい?
ペンギン先生 ペンギン先生
変更せず表示から始めよう。icacls "対象のパス"で、指定ファイルやフォルダのDACLを確認できる。空白があるパスは引用符で囲む。実行できないときは、対象や実行ユーザーの権限も確認するんだ。
ひよこ ひよこ
BUILTIN\Users:(I)(RX)はどう読む?
ペンギン先生 ペンギン先生
Usersという主体の権限で、RXは読み取りと実行、Iは親から継承したエントリという意味だよ。OIは子オブジェクト、CIは子フォルダへの継承の指定。誰への権限か、何が許可されるか、継承かを分けて読むと分かりやすい。
ひよこ ひよこ
オプション/grantで権限を入れ替えられる?
ペンギン先生 ペンギン先生
オプション/grantは既存の明示的な許可へ追加し、/grant:rはその主体の明示的な許可を置き換える。どちらも継承や拒否、所属グループからの権限を無視してよいわけではない。表示の1行だけで利用者の最終的なアクセス権を決めつけないでね。
ひよこ ひよこ
まとめて直す方法は?
ペンギン先生 ペンギン先生
オプション/Tは配下も対象にするので、確認なしで一括変更しないこと。/resetは既定の継承ACLへ置き換える。変更前のDACLを/saveで保存し/restoreで戻す機能はあるけど、保存範囲と復元手順も確認する必要がある。最初は限定した対象で試そう。
ひよこ ひよこ
PowerShellのGet-Aclも変更できる?
ペンギン先生 ペンギン先生
Get-Aclはセキュリティ記述子をオブジェクトで取得するコマンドで、変更を適用するのはSet-Aclだよ。icaclsと「どちらでも同じ」とは言えない。文字出力を確認したいか、オブジェクトで扱いたいかに合わせ、使う機能を選ぼう。
もっと詳しく知りたい人へ

Rと書かれた行があれば、必ず読み取り専用?

その行のRは読み取りの権限を表しますが、利用者には別のグループの許可や拒否、継承した権限が関わる場合があります。必要なら共有側の権限も確認します。一つのACEだけを利用者の最終的なアクセス権とみなさず、対象と主体を合わせて調べてください。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「icacls」って出てきたら「Windowsのファイルやフォルダーのアクセス許可を表示・変更するコマンド」と思えばだいたいOK!
📖 おまけ:英語の意味
「icacls」 = Windowsのアクセス制御一覧を扱うコマンド名
💬 Microsoftは非推奨のcaclsを置き換えるコマンドと説明しています。ここでは裏付けのない正式な略語の展開や導入時期を断定しません。

参考資料

← 用語集にもどる