icacls使用说明
icacls(Integrity Control Access Control Lists)是Windows操作系统中用于显示或修改文件和目录的访问控制列表(ACL)的命令行工具。以下是icacls命令的一些基本使用说明:
-
基本语法:
icacls "文件名或目录名" [选项]
-
常用选项:
/grant
:授予指定用户访问权限。/deny
:显式拒绝指定用户访问权限。/remove
:删除ACL中指定的安全标识符(SID)。/setowner
:更改文件或目录的所有者。/reset
:重置ACL为默认继承的ACL。/save
:将ACL保存到文件中以便将来恢复。/restore
:从文件中恢复ACL。/t
:递归处理目录及其所有子目录和文件。/c
:继续执行,即使遇到错误也继续处理其他文件。/l
:处理符号链接本身,而不是其目标。/q
:静默模式,不显示成功消息。
-
权限类型:
F
:完全控制。M
:修改(写入、读取及执行、删除子项和读取数据/写入数据)。RX
:读取和执行。R
:只读。W
:只写(但不允许读取)。- 其他特定权限,如
D
(删除)、WDAC
(写入DAC,即数据访问控制列表)等。
如何通过icacls命令设置Win10当前用户文件及文件夹属性
-
设置当前用户文件权限:
假设当前用户名为
CurrentUser
,并且你想要为当前用户设置文件example.txt
的完全控制权限,可以使用以下命令:icacls "C:\path\to\example.txt" /grant CurrentUser:F
如果当前用户是管理员,并且想要为所有用户设置权限,可以将
CurrentUser
替换为Users
或其他用户组。 -
设置当前用户文件夹权限:
如果你想要为当前用户设置文件夹
MyFolder
及其所有子文件和子文件夹的读取和执行权限,可以使用以下命令:icacls "C:\path\to\MyFolder" /grant CurrentUser:RX /t
/t
选项表示递归处理目录及其所有子目录和文件。 -
恢复文件或文件夹权限:
如果你之前已经使用
icacls
命令的/save
选项将文件或文件夹的ACL保存到了一个文件中,现在想要恢复这些权限,可以使用/restore
选项。例如:icacls "C:\path\to\MyFolder" /restore "C:\path\to\acl_backup.txt"
这里,
acl_backup.txt
是之前保存ACL的文件。如果你没有备份文件,但想要将文件或文件夹的权限重置为默认继承的ACL,可以使用
/reset
选项。但请注意,这会删除所有显式设置的权限,并恢复为父目录的继承设置:icacls "C:\path\to\MyFolder" /reset /t
注意事项
- 在执行icacls命令时,请确保以管理员身份运行命令提示符或PowerShell,因为修改文件或文件夹权限通常需要管理员权限。
- 在修改权限之前,请确保了解不同类型的权限的含义和作用,以便根据需要正确设置权限。
- 如果不确定某个命令的语法或参数,可以使用
icacls /?
查看帮助信息。
其中,icacls /?查看帮助信息如下:
ICACLS name /save aclfile [/T] [/C] [/L] [/Q]
将匹配名称的文件和文件夹的 DACL 存储到 aclfile 中
以便将来与 /restore 一起使用。请注意,未保存 SACL、
所有者或完整性标签。
ICACLS directory [/substitute SidOld SidNew [...]] /restore aclfile
[/C] [/L] [/Q]
将存储的 DACL 应用于目录中的文件。
ICACLS name /setowner user [/T] [/C] [/L] [/Q]
更改所有匹配名称的所有者。该选项不会强制更改所有
身份;使用 takeown.exe 实用程序可实现
该目的。
ICACLS name /findsid Sid [/T] [/C] [/L] [/Q]
查找包含显式提及 SID 的 ACL 的
所有匹配名称。
ICACLS name /verify [/T] [/C] [/L] [/Q]
查找其 ACL 不规范或长度与 ACE
计数不一致的所有文件。
ICACLS name /reset [/T] [/C] [/L] [/Q]
为所有匹配文件使用默认继承的 ACL 替换 ACL。
ICACLS name [/grant[:r] Sid:perm[...]]
[/deny Sid:perm [...]]
[/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] [/Q]
[/setintegritylevel Level:policy[...]]
/grant[:r] Sid:perm 授予指定的用户访问权限。如果使用 :r,
这些权限将替换以前授予的所有显式权限。
如果不使用 :r,这些权限将添加到以前授予的
所有显式权限。
/deny Sid:perm 显式拒绝指定的用户访问权限。
将为列出的权限添加显式拒绝 ACE,
并删除所有显式授予的权限中的相同权限。
/remove[:[g|d]] Sid 删除 ACL 中所有出现的 SID。使用
:g,将删除授予该 SID 的所有权限。使用
:d,将删除拒绝该 SID 的所有权限。
/setintegritylevel [(CI)(OI)]级别将完整性 ACE 显式
添加到所有匹配文件。要指定的级别为以下级别
之一:
L[ow]
M[edium]
H[igh]
完整性 ACE 的继承选项可以优先于级别,但只应用于
目录。
/inheritance:e|d|r
e - 启用继承
d - 禁用继承并复制 ACE
r - 删除所有继承的 ACE
注意:
Sid 可以采用数字格式或友好的名称格式。如果给定数字格式,
那么请在 SID 的开头添加一个 *。
/T 指示在以该名称指定的目录下的所有匹配文件/目录上
执行此操作。
/C 指示此操作将在所有文件错误上继续进行。
仍将显示错误消息。
/L 指示此操作在符号
链接本身而不是其目标上执行。
/Q 指示 icacls 应该禁止显示成功消息。
ICACLS 保留 ACE 项的规范顺序:
显式拒绝
显式授予
继承的拒绝
继承的授予
perm 是权限掩码,可以指定两种格式之一:
简单权限序列:
N - 无访问权限
F - 完全访问权限
M - 修改权限
RX - 读取和执行权限
R - 只读权限
W - 只写权限
D - 删除权限
在括号中以逗号分隔的特定权限列表:
DE - 删除
RC - 读取控制
WDAC - 写入 DAC
WO - 写入所有者
S - 同步
AS - 访问系统安全性
MA - 允许的最大值
GR - 一般性读取
GW - 一般性写入
GE - 一般性执行
GA - 全为一般性
RD - 读取数据/列出目录
WD - 写入数据/添加文件
AD - 附加数据/添加子目录
REA - 读取扩展属性
WEA - 写入扩展属性
X - 执行/遍历
DC - 删除子项
RA - 读取属性
WA - 写入属性
继承权限可以优先于每种格式,但只应用于
目录:
(OI) - 对象继承
(CI) - 容器继承
(IO) - 仅继承
(NP) - 不传播继承
(I) - 从父容器继承的权限
示例:
icacls c:\windows\* /save AclFile /T
- 将 c:\windows 及其子目录下所有文件的
ACL 保存到 AclFile。
icacls c:\windows\ /restore AclFile
- 将还原 c:\windows 及其子目录下存在的 AclFile 内
所有文件的 ACL。
icacls file /grant Administrator:(D,WDAC)
- 将授予用户对文件删除和写入 DAC 的管理员
权限。
icacls file /grant *S-1-1-0:(D,WDAC)
- 将授予由 sid S-1-1-0 定义的用户对文件删除和
写入 DAC 的权限。
通过以上步骤,你可以使用icacls命令灵活地设置和恢复Windows 10中当前用户文件及文件夹的权限。