Сопоставление идентификаторов Posix
Подсистема Posix должна быть в состоянии перевести любой идентификатор безопасности (SID), который он встречает в 32-разрядное значение, которое называется идентификатором Posix. Кроме того, он должен иметь возможность классифицировать идентификатор как идентификатор пользователя или идентификатор группы. Чтобы понять, как выполняется это сопоставление, сначала рассмотрим идентификаторы SID, которые необходимо сопоставить.
Идентификаторы SID имеют два компонента: SID домена и относительный идентификатор учетной записи в домене. Например, в идентификаторе SID S-1-518364-21-43-8 последний номер, 8, является относительным идентификатором учетной записи (RID), а S-1-518364-21-43 — это SID домена.
Сведения о домене хранятся в объектах TrustedDomain. Часть сведений, хранящихся в объекте TrustedDomain, включает в себя смещение идентификатора Posix, которое используется для идентификаторов SID в этом домене. Например, предположим, что доверенный домен определяется следующим образом:
Name: NtPgm
Sid: S-1-518364-21-43
Posix Offset: 0x130000
Идентификаторы posix для учетных записей в этом домене будут созданы путем добавления 0x130000 в относительный идентификатор учетной записи. Таким образом, идентификатор Posix, соответствующий идентификатору SID S-1-518364-21-43-8, будет 0x130008.
Не все переводы идентификаторов Posix используют объект TrustedDomain. В следующей таблице показаны идентификаторы SID, сопоставленные с использованием известных значений смещения.
Источник | Смещение идентификатора Posix |
---|---|
SIDs из встроенного домена | 0x20000 |
Идентификаторы безопасности из домена учетной записи | 0x30000 |
ИДЕНТИФИКАТОРы (SIDs) из главного домена (только на рабочих станциях) | 0x40000 |
И, наконец, другой набор SID, идентификаторы входа в систему, требует специальной обработки. Эти значения назначаются процессом входа Windows для каждого сеанса входа и имеют форму S-1-5-5-X-Y, где X и Y рассматриваются как один LARGE_INTEGER, который увеличивается для каждого сеанса входа. Эти SIDs сопоставляются с постоянным идентификатором Posix 0xFFF. Чтобы сопоставить идентификатор Posix 0xFFF, вы можете использовать идентификатор входа в систему или, который лучше всего подходит для ситуации, или по умолчанию использовать S-1-5-5-0-0. (Например, если пользователь posix применяет защиту к объекту и указывает FFFx, лучше заменить идентификатор входа этого пользователя, чем просто назначить S-1-5-5-0-0.)