zoukankan      html  css  js  c++  java
  • Cacls和ICacls

    解释: 

      Cacls:显示或修改文件的访问控制列表(ACL)

      ICACLS:显示或修改自由访问控制表(Dacl) 上指定的文件,并指定目录中的文件应用于存储的 Dacl。

      总结:显示或修改文件访问控制权限

    相关术语:

      一个DACL(Discretionary Access Control List),其指出了允许和拒绝某用户或用户组的存取控制列表,当一个进程需要访问安全对象系统就会检查DACL来决定进程的访问权。如果一个对象没有DACL,则说明任何人对这个对象都可以拥有完全的访问权限。

      一个SACL(System Acess Control List),其指出了在该对象上的一组存取方式(如:读,谢,运行等)的存取控制权限细节的列表

      DACLSACL构成了整个存取控制列表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"

  • 相关阅读:
    bzoj 3779 重组病毒——LCT维护子树信息
    bzoj 4010 [HNOI2015]菜肴制作——贪心
    bzoj 2535 && bzoj 2109 [Noi2010]Plane 航空管制——贪心
    bzoj 3671 [Noi2014]随机数生成器——贪心(时间复杂度分配)
    bzoj 2395 [Balkan 2011]Timeismoney——最小乘积生成树
    bzoj 3157 && bzoj 3516 国王奇遇记——推式子
    bzoj 1101 [POI2007]Zap——反演
    hdu 4372 Count the Buildings——第一类斯特林数
    bzoj 2406 矩阵——有源汇上下界可行流
    bzoj 2039 [2009国家集训队]employ人员雇佣——二元关系
  • 原文地址:https://www.cnblogs.com/Aley/p/11089538.html
Copyright © 2011-2022 走看看