Java教程

【windows 访问控制】五、访问权限和访问掩码

本文主要是介绍【windows 访问控制】五、访问权限和访问掩码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

访问掩码格式

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



在这种格式中,低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 访问控制】五、访问权限和访问掩码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!