windows smb共享acl虽无全球统一协议,但遵循microsoft定义的事实标准,以安全描述符、dacl和ace为核心,支持权限继承、deny优先、按位合并,并在azure files、samba等平台具有一致行为与配置方式。
windows smb 共享的访问控制列表(acl)本身没有全球统一的“标准化”协议,但它在实际企业环境中遵循一套由 microsoft 定义、广泛实施并被主流存储与网关服务兼容的事实标准。这套机制以 windows 安全描述符为核心,通过 dacl(自主访问控制列表)实现权限精细化管理,已被 azure files、amazon s3 文件网关、fslogix、azure netapp files 和 synology dsm 等平台原生支持。
核心组成是统一的:DACL + ACE
所有支持 Windows ACL 的 SMB 环境都依赖同一底层结构:
- 安全描述符附着于每个文件或文件夹,其中 DACL 是权限决策主体;
- ACE(访问控制项)是 DACL 中的基本单元,每条包含三项:用户/组的 SID、具体权限掩码(如 READ、WRITE、DELETE、FULL_CONTROL)、以及类型(ALLOW 或 DENY);
- 空 DACL 拒绝全部访问,无 DACL 则默认完全开放——这一行为在 Windows Server、Samba(启用 ACL 支持时)、Storage Gateway 等系统中一致生效。
权限继承与覆盖逻辑通用
无论部署在本地文件服务器、Azure 文件共享还是 NetApp 卷上,以下规则保持不变:
- 父文件夹的 DACL 默认继承给子对象(文件和子文件夹);
- 子对象可禁用继承,转为独立管理 ACE;
- 显式设置的 ACE(无论是继承而来还是手动添加)按顺序逐条匹配,DENY 类 ACE 优先级最高,一旦命中即终止检查;
- 允许权限不叠加,而是按位合并——例如同时有两条 ALLOW ACE 分别授予 READ 和 WRITE,则最终效果等同于 READ | WRITE。
配置方式与工具高度兼容
尽管底层实现可能跨平台(如 Samba 或 NAS 设备),但管理员使用的操作界面和命令行工具保持语义一致:
- 图形界面:右键 → 属性 → 安全 → 高级 → 编辑 DACL,路径和选项逻辑相同;
- 命令行:
icacls是 Windows 原生命令,Azure NetApp Files 和 Storage Gateway 控制台也提供对应 API 接口(如UpdateFileShare启用 Windows ACL); - 云服务适配:Azure Files 要求启用 AD DS 或 Entra ID Kerberos 认证后,才允许应用 Windows ACL;Amazon S3 文件网关在加入域后自动启用 Windows ACL 模式。
限制与注意事项具有一致性
不同平台对 Windows ACL 的支持边界也趋同:
- Azure NetApp Files 不支持 SACL(审核 ACL),任何审核设置均被忽略;
- Samba 在映射 Windows ACL 到 Unix 权限时存在信息损失(如“取得所有权”无法保留),需通过
map acl full control = no控制行为; - Synology DSM 5.0+ 默认启用 Windows ACL,但编辑
homes文件夹时若误设 DENY,会导致用户无法登录其个人空间; - FSLogix 场景下,必须确保 CREATOR OWNER 对其 VHD(x) 文件拥有完整控制权,否则配置文件加载失败。











