ACL 的研究和实践

ACL 的研究和实践

1         Acl 的基本构成

l  一个ACL 条目就是一个rule, 包含以下要素

类型

作用对象

权限

继承还是显式

传递对象

传递方式

允许 、拒绝

Guestsadministrators

FWR

是继承的权限还是显式设置的权限

叶子、容器(文件夹)

是否传递给子对象

AccessControlType(allow,dency)

NTAccount(@"Gusts")

FileSystemRights

 

InheritanceFlags(Node, ContainerInherit, ObjectInherit)

PropagationFlags(None, NoPropagateInherit, nheritOnly)

 

2         ALC 语义测试文件夹

2.1       InheritanceFlags 的作用

作用于文件夹的ACL 实际是对文件夹内的 容器(文件夹)和叶子(文件) 的权限限制当前文件夹的删除是它上一级文件夹的权限控制,针对文件夹的FileSystemRights 的权限一部分是针对内部容器的权限一部分是针对内部叶子的权限。如果InheritanceFlags. ContainerInherit 则叶子的权限就算选择也不会被设置,如果ObjectInherit 则 文件夹属于的权限不被设置。

关于 InheritanceFlags 通常应该设置成:InheritanceFlags. ContainerInherit| InheritanceFlags. object

string filename = "d://xw";

            FileSystemAccessRule rule = new FileSystemAccessRule("Guests", FileSystemRights.FullControl, InheritanceFlags.None, PropagationFlags.None, AccessControlType.Allow);         

            DirectorySecurity sec= System.IO.Directory .GetAccessControl(filename);

             sec.AddAccessRule(rule);

            System.IO.Directory.SetAccessControl(filename, sec);

2.1.1InheritanceFlags.None && PropagationFlags.None

right.fullcongrol 失效)

2.1.2InheritanceFlags.ContainerInherit && FileSystemRights.FullControl&& PropagationFlags.None

文件夹对应的权限生效

2.1.3InheritanceFlags.Object && FileSystemRights.FullControl&& PropagationFlags.None

当前目录没有设置任何权限

但是文件夹内的文件被设置成了全部权限。

 

2.1.4(InheritanceFlags.ContainerInherit|InheritanceFlags.object)&& FileSystemRights.FullControl&& PropagationFlags.None

 

 

 

2.2       关于 PropagationFlags

2.2.1    PropagationFlags.None

(InheritanceFlags.ContainerInherit|InheritanceFlags.object)&& FileSystemRights.FullControl

 

继承得到完全的传递

 

 

2.2.2    PropagationFlags. InheritOnly

(InheritanceFlags.ContainerInherit|InheritanceFlags.object)&& FileSystemRights.FullControl

(不常用)

当前文件夹不被设置成权限,目录下的子和孙子。。都被设成成权限

 

 

2.2.3    PropagationFlags. NoPropagateInherit

(InheritanceFlags.ContainerInherit|InheritanceFlags.object)&& FileSystemRights.FullControl (比较常用)

权限设置仅仅控制到当前树目录(当前文件夹和文件夹里面的叶子)

子文件夹不被设置

 

2.3       常用的继承和传递组合

2.3.1              作用于所有文件和文件夹包含子和孙子

(InheritanceFlags.ContainerInherit|InheritanceFlags.object) && PropagationFlags.None

2.3.2              作用于当前文件夹和文件夹里面的叶子(文件)

(InheritanceFlags.ContainerInherit|InheritanceFlags.object)&& NoPropagateInherit

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值