首页/系统/Windows 运维速查/icacls 继承控制与重置
磁盘与文件43 条

icacls 继承控制与重置

理解“权限为什么是这样”:/inheritance:r 断开继承(不保留)、:d 断开并复制;/reset 按继承重建(会清掉显式权限)。

Windows 运维速查系统更新于 2026-10-13

icacls 继承控制是什么

目录权限的默认来源是继承:子项自动继承父项的 ACL。icacls 提供了两种断开继承的方式,/inheritance:r 直接移除继承来的条目,/inheritance:d 先复制为显式条目再断开,后者更安全,因为断开的瞬间不会出现“谁都进不去”的空档。另一个相关动作是 /reset,它按继承规则重建 ACL,会把自定义的显式权限一并清掉。

基本信息

适用平台Windows 全版本,命令行工具
断开语法icacls 路径 /inheritance:r(移除)或 :d(复制后断开)
重置语法icacls 路径 /reset [/T],/T 递归子项
备份语法icacls 路径 /save out.txt /T;恢复用 /restore
查看语法icacls 路径,继承条目带 (I) 标记
需管理员多数目录操作需要管理员或文件所有者权限

典型使用场景

  • 某个子目录要给额外的人单独授权,先从父级继承链上脱开
  • 整理历史遗留权限:用 /reset 按继承重建,回到统一模型
  • 做权限变更前的演练:先 /save 备份,再操作,必要时 /restore 回滚
  • 排查“为什么这个目录的权限和别人不一样”,确认是否被断开了继承
  • 批量规范子目录权限,让它们重新跟随父目录策略

常用示例

常用示例
icacls D:\Share\sub                      # 先看当前 ACL,带 (I) 的是继承来的
icacls D:\Share\sub /save D:\acl\sub_bak.txt /T   # 备份现有权限
icacls D:\Share\sub /inheritance:d       # 把继承权限复制为显式后断开(推荐)
icacls D:\Share\sub /inheritance:r       # 直接移除继承条目(可能导致无人可访问)
icacls D:\Share\sub /grant "CORP\ops01:(OI)(CI)M"   # 断开后再单独授权
icacls D:\Share\sub /reset /T            # 按继承重建,清掉自定义权限
icacls D:\Share /restore D:\acl\sub_bak.txt   # 需要时回滚

参数对照

参数作用风险
/inheritance:d复制继承条目为显式后断开较低,推荐优先使用
/inheritance:r直接移除继承条目高,可能瞬间无人有权限
/reset按继承重建 ACL清掉全部显式权限
/T递归应用到子项影响面成倍放大
/save 与 /restore备份与恢复 ACL恢复需在对应路径下执行
/inheritance:d 与 :r 的关键差别在于“断开那一刻目录是否还保留可用权限”::d 把父级权限复制成自身显式条目,用户访问不会中断;:r 只保留原有的显式条目,如果原本一条都没有,就会出现谁都进不去的局面。
/reset 会丢弃自定义权限并按继承设置重建。生产共享目录执行前必须 icacls /save 备份,并确认父级继承设置就是你期望的最终状态。

易错点

  • 用 /inheritance:r 断开继承后又没及时授权,合法用户当场被挡在目录外
  • 对目录树执行 /reset /T 而没有备份,自定义权限一次性丢失且不可恢复
  • 改父目录权限后没意识到带 (I) 的子项会连带变化,出现“我什么都没动却全变了”
  • 排查时只盯着奇怪的那一条权限,没有向上追溯继承链,方向一开始就错了

数据来源与参考

  • Microsoft Learn:icacls /inheritance
  • Microsoft Learn:icacls /reset

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌