
如果我在 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
所有 32 位元權限都應填入左側(最高有效位元)。完成此操作後,該位元如何與 Microsoft 用於確定權限的存取遮罩保持一致就變得清晰起來。
另外,「通用讀取」(-2147483648)的有符號和無符號表示似乎產生完全相同的二進位序列。我確實不能 100% 確定該標誌對該值有何影響,但也許它對於其他存取權限序列很重要。