访问掩码格式

所有安全对象都使用下图所示的访问掩码格式来安排其访问权限。



在这种格式中,低16位用于特定对象的访问权限,后8位用于标准访问权限,这些权限适用于大多数类型的对象,而4个高位用于指定通用访问权限每种对象类型可以映射到一组标准和特定于对象的权限。 ACCESS_SYSTEM_SECURITY位对应于访问对象的SACL的权限。

C# FileSystemRights 枚举对应的就是访问掩码

把FileSystemRights 转化成32位的访问掩码格式,如下C#代码:

foreach(var  ss in Enum.GetValues(typeof(FileSystemRights)))
{
Console.WriteLine($"{ss.ToString().PadLeft(28)}:{Convert.ToString((int)ss,2).PadLeft(32,'0')}");
}

FileSystemRights映射到访问掩码上

通用访问权限

全对象使用访问掩码格式,其中四个高位指定通用访问权限。每种可保护对象的类型都将这些位映射到一组其标准和特定于对象的访问权限。(也就是说通用权限是由标准位和特殊位映射出来的)例如,Windows文件对象将GENERIC_READ位映射到READ_CONTROLSYNCHRONIZE标准访问权限以及FILE_READ_DATAFILE_READ_EAFILE_READ_ATTRIBUTES这三个对象特定的访问权限。其他类型的对象将GENERIC_READ位映射到适合该类型对象的任何访问权限集。
可以使用通用访问权限来指定打开对象的句柄时所需的访问类型。会比指定所有相应的标准和特定权限要简单。
下表显示了为通用访问权限定义的常量。

标准访问权限

每种类型的可保护对象都有一组访问权限,这些访问权限对应于特定于该类型对象的操作。除了这些特定于对象的访问权限之外,还有一组标准访问权限,它们对应于大多数类型的可保护对象的通用操作。
访问掩码格式包括一组用于标准访问权限的位。 Winnt.h中定义了以下Windows标准访问权限常量。

【windows 访问控制】五、访问权限和访问掩码AcessMask的更多相关文章

  1. 为Druid监控配置访问权限(配置访问监控信息的用户与密码)

    转: l 为Druid监控配置访问权限(配置访问监控信息的用户与密码) 2014-09-26 09:21:48         来源:renfufei的专栏   收藏   我要投稿   Druid是一 ...

  2. django Rest Framework----认证/访问权限控制/访问频率限制 执行流程 Authentication/Permissions/Throttling 源码分析

    url: url(r'books/$',views.BookView.as_view({'get':'list','post':'create'})) 为例 当django启动的时候,会调用执行vie ...

  3. [apue] linux 文件访问权限那些事儿

    前言 说到 linux 上的文件权限,其实我们在说两个实体,一是文件,二是进程.一个进程能不能访问一个文件,其实由三部分内容决定: 文件的所有者.所在的组: 文件对所有者.组用户.其它用户设置的权限访 ...

  4. java基础(八)-----深入解析java四种访问权限

    Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4种访问权限并不是任何时候都可以使用.下面整理一下,在什么情况下,有哪些访问权限可以允许选择. 一.访问权限简介 访问权限控制: 指的是本类 ...

  5. java基础(七) java四种访问权限

    引言   Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4种访问权限并不是任何时候都可以使用.下面整理一下,在什么情况下,有哪些访问权限可以允许选择. 一.访问权限简介 访问权限控制: ...

  6. Java编程思想之六访问权限控制

    访问控制(或隐藏具体实现)与"最初的实现并不恰当"有关. 访问权限控制的等级,从最大权限到最小权限依次为:public,protected,包访问权限(没有关键字)和private ...

  7. Java编程思想学习(四) 访问权限

    几种访问权限修饰词 public,protected,private,friendly(Java中并无该修饰词,即包访问权限,不提供任何访问修饰词) 使用时,放置在类中成员(域或方法)的定义之前的,仅 ...

  8. Java基础总结--常用类以及包的访问权限

    -----Object---所有类的根类1.怎么得到的:通过对所有对象不断的向上抽取共性,具备所有对象的共性的东西2.常用的方法* equals(Object obj):比较两个对象的引用是否指向同一 ...

  9. c/c++再学习:C++中public、protect、private的访问权限控制

    C++中public.protect.private的访问权限控制 访问权限 一个类的public成员变量.成员函数,可以通过类的成员函数.类的实例变量进行访问 一个类的protected成员变量.成 ...

随机推荐

  1. How to mount Windows network disk in WSL

    Backgroud Mount samba directly in wsl like linux is difficult Password for root@//filesystem.domain/ ...

  2. 针对vue中请求数据对象新添加的属性不能响应式的解决方法

    1.需要给对象添加属性时,不能采用传统的obj.属性=值,obj[属性]=值 来添加属性,在vue页面时需要这样使用 this.$set(obj,"propertyName",&q ...

  3. Web播放器

    web视频播放器的使用及遇到的问题记录 TcPlayer播放器(腾讯Web超级播放器) https://cloud.tencent.com/document/product/881/20207 Ste ...

  4. linux远程搭建yum网络仓库《全面解析》

    目录 一:远程版本需求 1.yum简介 2.yum安装解析 二:yum安装的生命周期 三:yum私有仓库作用与必要性 四:搭建yum私有仓库 本地版本 1.下载必须的软件包 2.创建软件仓库(就是创建 ...

  5. Android开发-主要的dialog

    dialog是弹出式窗口,点击后会以窗口的形式弹出 主要有添加备注,日历选择等,通过设置事件监听,将dialog弹出来 package com.example.Utils.fragment; impo ...

  6. Spring @SessionAttributes注解 @ModelAttribute注解

    一.@SessionAttribute详解 如果多个请求之间需要共享数据,就可以使用@SessionAttribute. 配置的方法: 在控制器类上标注@SessionAttribute. 配置需要共 ...

  7. Mybatisplus和JdbcTemplate的简单使用

    Mybatisplus 简介 MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的 ...

  8. 连接mysql出现“Unable to load authentication plugin 'caching_sha2_password”错误

    这是mysql 8.0版本才出现的问题,原因是mysql 8.0 默认使用 caching_sha2_password 身份验证机制 -- 从原来的 mysql_native_password 更改为 ...

  9. 汉字编码(【Unicode】 【UTF-8】 【Unicode与UTF-8之间的转换】 【汉字 Unicode 编码范围】【中文标点Unicode码】【GBK编码】【批量获取汉字UNICODE码】)

    Unicode与UTF-8互转(C语言实现):http://blog.csdn.net/tge7618291/article/details/7599902 汉字 Unicode 编码范围:http: ...

  10. Java进制的转换

    进制:进制是一种记数方式 ,可以用有限的数字符号代表所有的数值.由特定的数值组成. 整型的表现形式 十进制: 都是以0-9这九个数字组成,不能以0开头. 二进制: 由0和1两个数字组成. 八进制: 由 ...