访问控制列表(ACL:Access Control List)

ACL列表的结构

ACL 中的每个 ACE 标识一个受信者,并指定该受信者访问规则。安全对象的安全描述符 可以包含两种类型的 ACL:DACL 和 SACL。

DACL:自主访问控制列表(DACL)是安全描述符中最重要的,它里面包含零个或多个访问控制项(ACE,Access Control Entry),每个访问控制项的内容描述了允许或拒绝特定账户对这个对象执行特定操作。
SACL:系统访问控制列表(SACL) 主要是用于系统审计的,它的内容指定了当特定账户对这个对象执行特定操作时,记录到系统日志中。
访问控制列表(ACL)是访问控制条目(ACE)的列表。 ACL中的每个ACE都标识一个对象(通常称这个对象为受托者,受托者可以是一个用户、用户组或者是一个登陆会话),并指定允许、拒绝或审核该受托者的访问权限。可保护对象的安全描述符可以包含两种类型的ACL:DACL和SACL。
DACL标识是否允许或拒绝访问安全对象。当进程尝试访问安全对象时,系统将检查该对象的DACL中的ACE,以确定是否授予对该对象的访问权限。
  1. 系统依次检查ACE,直到找到一个或多个允许所有请求的访问权限的ACE,或者直到拒绝任何请求的访问权限为止。
下图显示了对象的DACL如何允许访问一个线程而拒绝访问另一个线程。

对于线程A,系统将读取第一条ACE并立即拒绝访问,因为拒绝访问的ACE适用于线程访问令牌中的用户。在这种情况下,系统将不检查之后的ACE。对于线程B,第一条ACE不适用,因此系统进入允许写入访问的ACE 2和允许读取和执行访问的ACE 3。
SACL使管理员可以记录任何人对安全对象的访问。每个ACE指定受托者尝试访问的类型,这些访问使系统在安全事件日志中生成记录。当访问尝试失败或成功时,SACL中的ACE可以生成审核记录。
不要尝试直接使用ACL的内容。为确保ACL在语义上正确,需使用适当的函数来创建和操作ACL。
ACL还提供对Microsoft Active Directory目录服务对象的访问控制。 Active Directory服务接口(ADSI)包括用于创建和修改这些ACL内容的例程。相关内容会另开文章详细介绍。
  • 如果对象没有DACL,则系统将授予所有人完全访问权限。
  • 如果对象的DACL没有ACE,则系统将拒绝所有尝试访问该对象的尝试,因为DACL不允许任何访问权限。

自由访问控制列表(DACL:Discretionary Access Control List)

就像它的名字一样,DACL就是一个表明其它所有人的自由的(相应的)访问控制列表。这是什么意思呢?让我们具体看看DACL里面是什么东西吧。看下图你就比较明白了。

授权参数为空 DACL (空 DACL)

 

如果 属于对象安全描述符 (DACL) 自由访问控制列表设置为 NULL, 则创建 null DACL。 NULL DACL 向请求它的用户授予完全访问权限;不会对 对象执行正常的安全检查。 null DACL 不应与空的 DACL 混淆。 空 DACL 是正确分配和初始化的 DACL,它不包含AES (访问控制) 。 空 DACL 不授予对它所分配到的对象的访问权限。

系统访问控制列表(SACL:System Access Control List)

SACL其实就是一个审计中心,这个列表里面列举着哪些类型的访问请求需要被系统记录。一旦有用户访问一个安全对象,其请求的访问权限和SACL中的一个ACE符合,那么系统会记录这个用户的请求是被拒绝了还是被允许了。MSDN提及说,将来可能会实现安全对象会对未经授权的用户访问发出警告信息。个人理解:SACL的作用是记录访问成功与否,SACL也是由ACE构成,每条ACE的内容是某个用户访问成功/失败某个权限,当访问跟满足这条ACE的时候就会被记录下来。

DACL|SACL 列表显示顺序

1、拒绝(deny)有优先排在允许(allow)前面

2、继承的ACE会排在程序或者手动的添加ACE顺序之后;

C#給文件夹添加ACE的顺序

【windows 访问控制】三、访问控制列表 ACL=DACL+SACL的更多相关文章

  1. 用访问控制列表(ACL)实现包过滤

      用访问控制列表(ACL)实现包过滤 一.ACL概述 1.ACL(Access Control List,访问控制列表)是用来实现数据包识别功能的 2.ACL可以应用于诸多方面 a>.b包过滤 ...

  2. 详解cisco访问控制列表ACL

    一:访问控制列表概述   ·访问控制列表(ACL)是应用在路由器接口的指令列表.这些指令列表用来告诉路由器哪些数据包可以通过,哪些数据包需要拒绝.   ·工作原理:它读取第三及第四层包头中的信息,如源 ...

  3. 基本的访问控制列表ACL配置

    摘要: 访问控制列表ACL (Access Control L ist)是由permit或 deny语句组成的一系列有顺序的规则集合,这些规则根据数据包的源地址.目的地址.源端口.目的端口等信息  来 ...

  4. 网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)

    一.访问控制列表是什么? 访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃.访问控制列表被广泛地应用于路由器和三层交换机,借助于访问 ...

  5. 由于 web 服务器上此资源的访问控制列表(acl)配置或加密设置,您无权查看此目录或页面。

    场景:IIS中遇到无法预览的有关问题(HTTP 异常 401.3 - Unauthorized 由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置 IIS中遇到无法预览的问题(HTTP ...

  6. 第10章 网络安全(5)_访问控制列表ACL

    6. 访问控制列表ACL 6.1 标准访问控制列表 (1)标准ACL ①标准ACL是基于IP数据包的源IP地址作为转发或是拒绝的条件.即,所有的条件都是基于源IP地址的. ②基本不允许或拒绝整个协议组 ...

  7. HCNA Routing&Switching之访问控制列表ACL

    前文我们了解了DHCP服务相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15147870.html:今天我们来聊一聊访问控制列表ACL: ACL(ac ...

  8. 【windows安全性 之访问控制】 访问控制 详细解说

    windows的安全性的两个基本支柱是身份验证(登入)和授权(访问控制). 身份验证是标识用户的过程 ,授权在验证了所标识用户是否可以访问特定资源之后进行. 相关的命名空间和类: System.Sec ...

  9. 关于Windows下的访问控制模型

    在探索Windows操作系统的过程中,发现很多有意思 的东西. Windows下的访问控制模型也是我在Github上浏览代码时,无意中发现的. 项目地址 https://github.com/Krut ...

随机推荐

  1. unity3d之sokect通信

    using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using S ...

  2. 使用VS Code的MySQL扩展管理数据库

    我将在本文告诉你如何用VS Code的扩展程序管理MySQL数据库,包括连接到MySQL.新建数据库和表.修改字段定义.简单的查询方法以及导入导出. 在许多情况下,我们需要随时查看数据库的记录来确保程 ...

  3. 如何通俗地理解docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  4. python12day

    昨日回顾 可迭代对象: 可以更新迭代的实实在在的值. 内部含有'__iter__'方法. str.tuple.dict.set.range 优点:操作方法多,灵活直观 缺点:占用内存. 迭代器: 可以 ...

  5. python网络爬虫-python基础(三)

    python安装 Anaconda的python科学计算环境,只需要想普通软件一样安装就可以把python的环境变量.解释器.开发环境都安装到计算机中 除此之外anaconda还提供众多的科学计算的包 ...

  6. CentOS升级polkit版本,解决 Linux Polkit 存在权限提升的漏洞 (CVE-2021-4034)

    漏洞描述 受影响版本的 pkexec 无法正确处理调用参数计数,最终尝试将环境变量作为命令执行,攻击者可以通过修改环境变量来利用此漏洞,诱使 pkexec 执行任意代码,从而导致将本地权限提升为 ro ...

  7. 斯坦福 CS183 & YC 创业课系列中文笔记

    欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 724187166 ApacheCN 学习资源 目录 Zero to One 从0到1 ...

  8. SimpleDateFormat简介及替代方案

    简介 SimpleDateFormat是一个时间格式化工具,可以将字符串格式化时间Date类型,也可以将Date类型格式化为字符串String类型,但其线程不安全. 常用方法 public final ...

  9. Javascript疑问【长期更新】

    1.插入 Javacript 的正确位置是? 答:<body> 部分和 <head> 部分均可. 2.外部脚本必须包含 <script> 标签吗? 答:外部脚本不能 ...

  10. Nginx的优化与防盗链

    Nginx的优化与防盗链 1.隐藏版本号 2.修改用户与组 3.缓存时间 4.日志切割 5.连接超时 6.更改进程数 7.配置网页压缩 8.配置防盗链 9.fpm参数优化 1.隐藏版本号: 可以使用 ...