icacls

显示或修改指定文件上的随机访问控制列表 (DACL),并将存储的 DACL 应用于指定目录中的文件。

注意

该命令替换已弃用的 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 的文件。
<目录> 指定要显示或修改 DACL 的目录。
/t 对当前目录及其子目录中的所有指定文件执行操作。
/c 尽管存在任何文件错误,但仍继续操作。 仍会显示错误消息。
/l 对符号链接而不是其目标执行操作。
/q 抑制成功消息。
[/save <ACLfile> [/t] [/c] [/l] [/q]] 将所有匹配文件的 DACL 存储到访问控制列表 (ACL) 文件中,供以后与 /restore 一起使用。
[/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] 从 DACL 中删除所有出现的指定 SID。 该命令还可以使用:
  • :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 - 禁用继承并复制 ACE
  • 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)