解碼 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% 確定該標誌對該值有何影響,但也許它對於其他存取權限序列很重要。

相關內容