Расшифровка общих разрешений / прав доступа в Windows

Если у меня есть следующие 3 значения разрешений для 3 отдельных папок в Windows:

Decimal: 268435456 - Binary: 10000000000000000000000000000 - 29 bits

Decimal: 134217728 - Binary: 1000000000000000000000000000 - 28 bits

Decimal: 67108864 - Binary: 100000000000000000000000000 - 27 bits

Как мне интерпретировать эти 3 значения разрешений?

Вот руководство формата MSDN Access Mask:

Должен ли я дополнять свои общие права доступа нулями перед старшим значащим битом (слева), чтобы двоичное слово было длиной 32 бита?

Насколько я понимаю, общие разрешения - это 32-разрядные целые числа без знака, но я вижу такие разрешения, как -1610612736 все время. Они не подписаны и просто представлены как подписанные?

Я использую PowerShell для создания сценария проверки разрешений и сталкиваюсь с этой проблемой... Эта публикация, посвященная стековому потоку, актуальна. Также сообщение 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 для определения разрешений.

Кроме того, кажется, что подписанные и неподписанные представления "Generic Read" (-2147483648) дают точно такую ​​же двоичную последовательность. Я действительно не уверен на 100%, какое значение имеет знак с этим значением, но, возможно, это имеет значение для других последовательностей прав доступа.

Другие вопросы по тегам