Cacls和ICacls
解释:
Cacls:显示或修改文件的访问控制列表(ACL)
ICACLS:显示或修改自由访问控制表(Dacl) 上指定的文件,并指定目录中的文件应用于存储的 Dacl。
总结:显示或修改文件访问控制权限
相关术语:
一个DACL(Discretionary Access Control List),其指出了允许和拒绝某用户或用户组的存取控制列表,当一个进程需要访问安全对象,系统就会检查DACL来决定进程的访问权。如果一个对象没有DACL,则说明任何人对这个对象都可以拥有完全的访问权限。
一个SACL(System Acess Control List),其指出了在该对象上的一组存取方式(如:读,谢,运行等)的存取控制权限细节的列表
DACL和SACL构成了整个存取控制列表Access Control List,简称ACL,ACL中的每一项我们叫做ACE(Acess Control Entry)
以上是对DACL,SACL,ACL,ACE等相关术语的简要介绍。
Cacls使用格式:
Cacls 文件名 [/T] [/E] [/C] [/G user:perm] [/R user [...]] [/P user:perm [...]] [/D user [...]]
Filename——显示访问控制列表(以下简称ACL);
/T——更改当前目录及其所有子目录中指定文件的 ACL;
/E—— 编辑 ACL 而不替换;
/C——在出现拒绝访问错误时继续;
/G user:perm——赋予指定用户访问权限。Perm 可以是R(读取)、W(写入)、C(更改,写入)、F (完全控制);
/R user——撤销指定用户的访问权限(仅在与 /E 一起使用);
/P user:perm——替换指定用户的访问权限;
/D user——拒绝指定用户的访问
实例:以Windows系统为例
1.查看目录和ACL
在E:\>提示符下输入“Cacls 文件名”命令,接着就会列出Windows系统中用户组和用户对文件名目录的访问控制权限项目。如果想查看CCE目录中所有文件访问控制权限,输入“Cacls 文件名\?.?”命令即可。
2.修改目录和ACL:file(文件名) user(用户名)
设置用户访问权限:我们经常要修改目录和文件的访问权限,使用Cacls命令就很容易做到。下面要赋予本机用户user对E盘下file目录及其所有子目录中的文件有完全控制权限。在命令提示符对话框中输入“Cacls file /t /e /c /g user:f ”命令即可。
替换用户访问权限:将本机用户user的完全控制权限替换为只读权限。在命令提示符对话框中输入“ Cacls file /t /e /c /p user:r ”命令即可。
撤销用户访问权限:要想撤销本机用户user对该目录的完全控制权限也很容易,在命令提示符中运行“Cacls file /t /e /c /r user ”即可。
拒绝用户访问:要想拒绝用户user访问file目录及其所有子目录中的文件,运行“Cacls file /t /e /c /d user”即可。
某病毒调用calcs命令例子如下:
病毒进程: c:\documents andsettings\administrator\local settings\temp\tp5.tmp
行为:创建新进程
目标: c:\windows\system32\cacls.exe
命令行: cacls.exeC:\WINDOWS\system32\cmd.exe /e /t /g everyone:F
意思就是给everyone用户组(所有人)cmd.exe的完全控制
ICacls使用格式:(下列参数详见表格)
ICacls 文件名 /save Tofile [/T] [/C] [/L] [/Q]:将匹配名称的文件的DACL存储到Tofile中,以便将来与 /restore一起使用。
ICacls directory [/substitute SidOld SidNew [...]] /restore Tofile:将存储的DACL应用于目录中的文件。
ICacls 文件名 /reset [/T] [/G] [/L] [/Q]:更改所有匹配名称的所有者,该选项不会强制更改所有身份,使用takeown.exe实用程序可实现该目的。
ICacls 文件名 /findsid Sid [/T] [/C] [/L] [/Q]:查找包含显式SID的ACL的所有匹配名称。
ICacls 文件名 /verify [/T] [/C] [/L] [/Q]:查找其ACL不规范或长度与ACE计数不一致的所有文件
ICacls 文件名 /reset [/T] [/C] [/L] [/Q]:为所有匹配文件使用默认继承的ACL替换ACL
ICACLS 文件名 [/grant[:r] Sid:perm[...]]
[/deny Sid:perm [...]]
[/remove[:g|:d]] Sid[...]] [/T] [/C] [/L]
[/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 是权限掩码,可以两种格式之一指定:
简单权限序列:
F - 完全访问权限
M - 修改权限
RX - 读取和执行权限
R - 只读权限
W - 只写权限
继承权限可以优先于每种格式,但只应用于
目录:
(OI) - 对象继承
(CI) - 容器继承
(IO) - 仅继承
(NP) - 不传播继承
示例:
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 的权限
1、强制将当前目录下的所有文件及文件夹、子文件夹下的所有者更改为管理员组(administrators)命令:
takeown /f * /a /r /d y
2、将所有d:\documents目录下的文件、子文件夹的NTFS权限修改为仅管理员组(administrators)完全控制(删除原有所有NTFS权限设置):
cacls d:\documents\*.* /T /G administrators:F
3、在原有d:\documents目录下的文件、子文件夹的NTFS权限上添加管理员组(administrators)完全控制权限(并不删除原有所有NTFS权限设置):
cacls d:\documents\*.* /T /E /G administrators:F
4、取消管理员组(administrators)完全控制权限(并不删除原有所有NTFS权限设置):
cacls \\Server\Documents\%username%\我的文档 /t /e /r "mddq\domain admins"
cacls \\Server\Documents\%username%\桌面 /t /e /r "mddq\domain admins"
Cacls和ICacls的更多相关文章
- [转帖]Cacls和ICacls
Cacls和ICacls https://www.cnblogs.com/Aley/p/11089538.html Need Study 解释: Cacls:显示或修改文件的访问控制列表(ACL) ...
- dos命令(Cacls和Icacls) -- 显示或者修改文件的访问控制表
1. dos帮助说明 cacls /? 注意: 不推荐使用 Cacls,请使用 Icacls. 显示或者修改文件的访问控制列表(ACL) CACLS filename [/T] [/M] [/L] [ ...
- Icacls 在windows目录文件授权中的应用
前言 最近因工作需要,需要对批量服务器某一目录下的文件进行统一授权,对于linux来说,授权很方便,对于window来说,要对目录下的文件进行批量授权还是很不方便的,windows平台授权自然想到用i ...
- Takeown、Cacls、Icacls-文件、文件夹夺权用法
常用示例如下: takeown /f 文件名 获取该文件的所属权 takeown /f /r /d n 文件夹 获取整个文件夹及其下面子目录文件的所属权 takeown /f * /a /r /d ...
- 通过脚本命令cacls提升某个用户都某路径的操作权限
摘要----项目需要对服务器上的某个路径下的目录,修改权限:给Users用户组的用户添加修改写入权限. 原理----通过批处理脚本实现,命令使用 icacls 修改ACL 来达到修改权限的目的. 操作 ...
- Windows TAKEOWN & ICACLS
TAKEOWN:takeown /f 文件名 获取该文件的所属权takeown /f /r /d n 文件夹 获取整个文件夹及其下面子目录文件的所属权 TAK ...
- Windows 下命令行修改文件夹的控制权限 Cacls
设置用户访问权限:我们经常要修改目录和文件的访问权限,使用Cacls命令就很容易做到.下面要赋予本机用户testuser对d盘下 test目录及其所有子目录中的文件有完全控制权限.在命令提示符对话框中 ...
- icacls备份与还原ACL列表(NTFS权限)--Robocopy
icacls c:\windows\* /save AclFile /T- 将 c:\windows 及其子目录下所有文件的 ACL 保存到 AclFile. icacls c:\windows\ / ...
- [转] NTFS Permission issue with TAKEOWN & ICACLS
(转自:NTFS Permission issue with TAKEOWN & ICACLS - SAUGATA 原文日期:2013.11.19) Most of us using TA ...
随机推荐
- 路飞项目-ContentType组件
ContentType组件 -- 应用 价格策略 常见问题 优惠券 -- 一张表跟多张表建立外键关系的 -- 用法 # 第一步 先生成ForeignKey字段 关联ContentType conten ...
- 第十七节:Runnable创建线程,Thread创建线程,唤醒线程和计数器多线程,线程同步与等待
Runnable创建线程 public class RunnableDemo implements Runnable{ @Override public void run(){ int i = 1; ...
- go - GOPATH配置
查看配置信息 go env 然后找到对应的 GOPATH=>修改为你自己的目录 ..liunx 系统下,注意要给权限 go bulid 编译文件 go run 先编译后执行. -------- ...
- python常用模块介绍
关于if __name__ == "__main__": 若执行文件为bin,调用文件为cal: 若在执行文件bin中执行print(__name__) 输出:__main__ 当 ...
- 【做题记录】AtCoder AGC做题记录
做一下AtCoder的AGC锻炼一下思维吧 目前已做题数: 75 总共题数: 239 每一场比赛后面的字母是做完的题,括号里是写完题解的题 AGC001: ABCDEF (DEF) AGC002: A ...
- CF1200C
CF1200C 题意: 问内圆和外圆分别分成n.m份,每份有标号,问是否可以从一个部分走到另一个部分,12点钟位置一定有个线. 解法: 如果有一堵墙贯穿1和2,那么会使得两边不连通.这样的墙会显然出现 ...
- Jenkins系统初始化配置
1.点击系统管理-->全局安全配置 2.设置允许用户注册,点击保存 3.配置全局工具 4.配置maven文件路径,使用文件系统中的settings文件 5.配置jdk 6.配置maven 7.我 ...
- JAVA基础知识|反射
一.理解反射 1.1.基础概念 反射:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为ja ...
- Flex 布局教程实例
Flex 布局教程实例 一.Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为 F ...
- 文件上传对servlet的要求
request.getParamter(String name)方法不能再使用了 需要使用request.getInputStream()获取输入流对象然后在进行读取数据 解析数据 ServletIn ...