访问掩码格式

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

access list 掩码 access掩码大全_access list 掩码



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

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

把FileSystemRights

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

 

 

access list 掩码 access掩码大全_对象类型_02

 

 

FileSystemRights映射到访问掩码上

access list 掩码 access掩码大全_访问权限_03

 

 

 

通用访问权限

全对象使用访问掩码格式,其中四个高位指定通用访问权限。每种可保护对象的类型都将这些位映射到一组其标准和特定于对象的访问权限。(也就是说通用权限是由标准位和特殊位映射出来的)例如,Windows文件对象将GENERIC_READ位映射到READ_CONTROLSYNCHRONIZE标准访问权限以及FILE_READ_DATAFILE_READ_EAFILE_READ_ATTRIBUTES这三个对象特定的访问权限。其他类型的对象将GENERIC_READ位映射到适合该类型对象的任何访问权限集。

可以使用通用访问权限来指定打开对象的句柄时所需的访问类型。会比指定所有相应的标准和特定权限要简单。

下表显示了为通用访问权限定义的常量。

标准访问权限

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

access list 掩码 access掩码大全_access list 掩码_04

 

access list 掩码 access掩码大全_访问权限_05

 

 

 

编程是个人爱好