解码 Windows 中的通用权限/访问权限

解码 Windows 中的通用权限/访问权限

如果我对 Windows 中的 3 个独立文件夹具有以下 3 个权限值:

Decimal: 268435456 - Binary: 10000000000000000000000000000 - 29 bits

Decimal: 134217728 - Binary: 1000000000000000000000000000 - 28 bits

Decimal: 67108864 - Binary: 100000000000000000000000000 - 27 bits

我该如何解释这 3 个权限值?

这里是MSDN 访问掩码格式指南

访问掩码键

我是否应该在最高有效位(左侧)前面用 0 填充我的通用权限,以使二进制字长为 32 位?

我的理解是,通用权限是 32 位无符号整数值,但我-1610612736总是看到权限。它们是无符号的,只是被表示为有符号的吗?

我正在使用 PowerShell 创建权限检查脚本并遇到这个问题......这个 stackoverflow 帖子很相关。我已经在 TechNet 上发布过关于此问题的帖子

答案1

好的,我自己回答Technet 上的一些帮助。

Unpadded "268435456" "Generic All" 29 bits -     10000000000000000000000000000
Unpadded "536870912" "Generic Execute" 30 bits - 100000000000000000000000000000
Unpadded "1073741824" "Generic Write" 31 bits -  1000000000000000000000000000000
Unpadded "-2147483648" "Generic Read" 32 Bits -  10000000000000000000000000000000

现在已填充:

Padded "268435456" "Generic All" 32 bits -     00010000000000000000000000000000
Padded "536870912" "Generic Execute" 32 bits - 00100000000000000000000000000000
Padded "1073741824" "Generic Write" 32 bits -  01000000000000000000000000000000
Padded "-2147483648" "Generic Read" 32 Bits -  10000000000000000000000000000000

访问掩码图

链接到有关访问掩码的 MSDN 文章。

所有 32 位权限都应在左侧(最高有效位)填充。完成此操作后,便可清楚了解该位如何与 Microsoft 用于确定权限的访问掩码对齐。

此外,似乎“通用读取”(-2147483648) 的有符号和无符号表示产生完全相同的二进制序列。我真的不能 100% 确定符号对这个值有什么影响,但也许这对其他访问权限序列很重要。

相关内容