
Windows の 3 つの個別のフォルダーに次の 3 つのアクセス許可値がある場合:
Decimal: 268435456 - Binary: 10000000000000000000000000000 - 29 bits
Decimal: 134217728 - Binary: 1000000000000000000000000000 - 28 bits
Decimal: 67108864 - Binary: 100000000000000000000000000 - 27 bits
これら 3 つの権限値をどのように解釈すればよいでしょうか?
こちらはMSDN アクセスマスク形式ガイド:
バイナリ ワードを 32 ビットの長さにするには、汎用権限の最上位ビット (左側) の前に 0 を埋め込む必要がありますか?
私の理解では、汎用権限は 32 ビットの符号なし整数値ですが、権限は-1610612736
常にこのように表示されます。これらは符号なしであり、単に符号付きとして表されているのでしょうか?
PowerShell を使用して権限チェック スクリプトを作成していますが、この問題が発生しています...このstackoverflowの投稿は関連しています。また、この問題について私が行っているTechNetの投稿。
答え1
OK、私は答えました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 が権限を決定するために使用するアクセス マスクとどのように一致するかが明確になります。
また、「Generic Read」(-2147483648) の符号付き表現と符号なし表現は、まったく同じバイナリ シーケンスを生成するようです。この値に符号がどのような影響を与えるかは 100% 確信はありませんが、他のアクセス権シーケンスには影響があるかもしれません。