首页/系统/Windows 运维速查/icacls 授权与移除权限
磁盘与文件43 条

icacls 授权与移除权限

给用户/组授权(/grant)、替换已有授权(/grant:r)、移除(/remove):/grant 是叠加语义,重复执行会累积条目。

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

命令是干什么的

icacls 是 Windows 的命令行 ACL 工具:/grant 给账号追加授权,/grant:r 替换该账号已有授权,/remove 移除账号条目,/T 递归子目录,/save 与 /restore 用于留档与回滚。它与资源管理器“安全”选项卡等价但可脚本化,是批量调整共享目录权限的主力命令。掩码里的 (OI)(CI) 把权限继承到子目录与文件。

基本信息

适用平台Windows Vista / Server 2008 及以后(系统内置)
权限要求对目标对象有更改权限的资格,通常为所有者或管理员
语法icacls 路径 /grant[:r] 账号:掩码 [/T];icacls 路径 /remove 账号 [/T]
常用掩码F 完全、M 修改、RX 读取执行、R 只读;(OI)(CI) 表示继承到文件与子目录
留档命令icacls D:\Share /save acl.txt /T;需要时 icacls D:\ /restore acl.txt

典型使用场景

  • 共享目录给新项目组开修改权限,或收回离职人员权限
  • 数据迁移后批量修正继承关系,给整棵目录树统一授权
  • 权限事故回滚:改动前 /save 留档,出问题时 /restore 还原
  • 排查“能读不能写”:用 icacls 路径 看实际生效的 ACE 列表
  • 部署脚本里统一设置目录权限,避免依赖人工点界面

常用示例

常用示例
icacls D:\Share                        # 查看当前 ACL 条目
icacls D:\Share /grant "DOMAIN\user:(OI)(CI)M" /T   # 追加修改权限并继承
icacls D:\Share /grant:r "DOMAIN\user:(OI)(CI)M"    # 替换已有授权,避免叠加
icacls D:\Share /remove "DOMAIN\user" /T            # 移除该账号全部条目
icacls D:\Share /save acl.txt /T                  # 授权前先留档
icacls D:\ /restore acl.txt                       # 需要时回滚

权限掩码读法

掩码含义使用建议
F完全控制仅管理员与所有者,业务账号慎用
M修改(含删除)共享目录读写场景的常用档
RX读取与执行只读访问程序目录
R只读纯查阅数据的账号
(OI)(CI)对象继承与容器继承让权限自动下发到文件与子目录
/D拒绝慎用:拒绝优先级最高,容易形成难排查的权限冲突
/grant 是叠加语义:重复执行会在同一账号上累积多条 ACE,表现为权限越授越大;重复授权场景一律改用 /grant:r。
递归改权限影响面大:先 icacls /save 留档,再在测试目录验证参数,最后全量执行。/remove 写错账号会直接掐断业务访问。

易错点

  • /grant 不清理旧条目,同名账号会积累多条不同权限,最终按合并结果生效
  • 把 F(完全控制)当默认档是常见越权来源,按最小权限给 M 或 RX
  • 漏写 (OI)(CI) 时权限只作用于当前目录,子文件仍打不开,表现为“授权了却不生效”
  • 对根目录或系统目录递归授权会破坏 Windows 默认 ACL,可能引发系统组件异常

数据来源与参考

  • Microsoft Learn:icacls /grant
  • Microsoft Learn:icacls /remove

相关工具

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