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"

  • 相关阅读:
    14.4.9 Configuring Spin Lock Polling 配置Spin lock 轮询:
    14.4.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB Master Thread I/O Rate
    14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
    14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
    14.4.6 Configuring Thread Concurrency for InnoDB 配置Thread 并发
    14.4.6 Configuring Thread Concurrency for InnoDB 配置Thread 并发
    14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering
    14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering
    14.4.4 Configuring the Memory Allocator for InnoDB InnoDB 配置内存分配器
    14.4.4 Configuring the Memory Allocator for InnoDB InnoDB 配置内存分配器
  • 原文地址:https://www.cnblogs.com/Aley/p/11089538.html
Copyright © 2011-2022 走看看