Поделиться через


Сопоставление идентификаторов 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.)