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 アクセスマスク形式ガイド:

アクセスマスクキー

バイナリ ワードを 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

アクセスマスク図

アクセス マスクに関する MSDN の記事へのリンク。

すべての 32 ビット権限は左側 (最上位ビット) にパディングする必要があります。これが完了すると、ビットが Microsoft が権限を決定するために使用するアクセス マスクとどのように一致するかが明確になります。

また、「Generic Read」(-2147483648) の符号付き表現と符号なし表現は、まったく同じバイナリ シーケンスを生成するようです。この値に符号がどのような影響を与えるかは 100% 確信はありませんが、他のアクセス権シーケンスには影響があるかもしれません。

関連情報