Windows 基于ACL(访问控制列表)的权限管理
Windows 基于ACL(访问控制列表)的权限管理
ACL(访问控制列表)是Windows系统中用于控制资源访问权限的核心机制。以下是关于Windows ACL的详细介绍:
ACL基本概念
-
DACL (自由访问控制列表)
- 决定哪些用户/组可以访问对象
- 包含一系列ACE(访问控制项)
-
SACL (系统访问控制列表)
- 用于审计访问记录
- 指定哪些访问操作应被记录到安全日志
-
ACE (访问控制项)
- 每个ACE包含:
- 安全主体(SID)
- 访问权限
- 允许/拒绝标志
- 继承标志
- 每个ACE包含:
ACL权限类型
基本权限
- 完全控制
- 修改
- 读取和执行
- 列出文件夹内容(仅目录)
- 读取
- 写入
- 特殊权限
特殊权限(高级权限)
- 遍历文件夹/执行文件
- 列出文件夹/读取数据
- 读取属性
- 读取扩展属性
- 创建文件/写入数据
- 创建文件夹/附加数据
- 写入属性
- 写入扩展属性
- 删除子文件夹和文件
- 删除
- 读取权限
- 更改权限
- 取得所有权
- 同步
ACL管理工具
-
图形界面工具:
- 文件/文件夹属性 → 安全选项卡
- 本地安全策略(secpol.msc)
- 活动目录用户和计算机(域环境)
-
命令行工具:
icacls
- 显示/修改ACLcacls
(旧版工具,已弃用)takeown
- 获取对象所有权whoami /priv
- 查看当前用户权限
-
PowerShell cmdlets:
Get-Acl
Set-Acl
Get-ChildItem | Get-Acl
Add-NTFSAccess
(来自NTFS模块)
ACL继承机制
-
继承类型:
- 容器继承(适用于子文件夹)
- 对象继承(适用于文件)
-
继承行为:
- 默认情况下,子对象继承父对象权限
- 可以阻止继承并选择是否保留继承的权限
-
继承优先级:
- 显式设置的权限优先于继承的权限
- 拒绝权限优先于允许权限
最佳实践
- 尽量使用组而非单个用户分配权限
- 遵循最小权限原则
- 谨慎使用"完全控制"权限
- 定期审核权限设置
- 文档化权限结构
- 在域环境中使用AGDLP策略:
- 账户(A)加入全局组(G)
- 全局组加入域本地组(DL)
- 域本地组获得权限§
常见问题处理
-
权限问题诊断:
- 使用"有效访问"选项卡检查用户实际权限
- 检查组成员关系
- 检查共享权限和NTFS权限的交集
-
权限重置:
icacls "C:\path" /reset /T /C /L
-
获取所有权:
takeown /F "C:\path" /R /D Y icacls "C:\path" /grant administrators:F /T
Windows ACL系统提供了细粒度的访问控制,合理配置ACL是Windows系统安全管理的基础。