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


Сопоставление идентификаторов Posix

Подсистема Posix должна иметь возможность преобразовывать любой идентификатор безопасности (SID), с которым она сталкивается, в 32-разрядное значение, называемое идентификатором Posix. Кроме того, он должен иметь возможность классифицировать идентификатор как идентификатор пользователя или идентификатор группы. Чтобы понять, как выполняется это сопоставление, давайте сначала рассмотрим идентификаторы безопасности, которые необходимо сопоставить.

Идентификаторы безопасности имеют два компонента: идентификатор безопасности домена и относительный идентификатор учетной записи в домене. Например, в идентификаторе безопасности S-1-518364-21-43-8 последнее число 8 является относительным идентификатором учетной записи (RID), а S-1-518364-21-43 — идентификатором безопасности домена.

Сведения о домене хранятся в объектах TrustedDomain . Часть сведений, хранящихся в объекте TrustedDomain , представляет собой смещение идентификатора Posix, которое будет использоваться для идентификаторов безопасности в этом домене. Например, предположим, что TrustedDomain определен следующим образом:

    Name:    NtPgm
    Sid:    S-1-518364-21-43
    Posix Offset:    0x130000

Идентификаторы Posix для учетных записей в этом домене будут созданы путем добавления 0x130000 к относительному идентификатору учетной записи. Таким образом, идентификатор Posix, соответствующий sid S-1-518364-21-43-8, будет 0x130008.

Не все переводы идентификаторов Posix используют объект TrustedDomain . В следующей таблице показаны идентификаторы безопасности, сопоставленные с помощью известных значений смещения.

Источник Смещение идентификатора Posix
Идентификаторы безопасности из встроенного домена 0x20000
Идентификаторы безопасности из домена учетной записи 0x30000
Идентификаторы безопасности из основного домена (только на рабочих станциях) 0x40000

 

И, наконец, еще один набор идентификаторов БЕЗОПАСНОСТИ, идентификаторы безопасности входа, требует специальной обработки. Эти значения назначаются процессом входа в Windows для каждого сеанса входа в систему и имеют форму S-1-5-5-X-Y, где X и Y рассматриваются как один LARGE_INTEGER, который увеличивается для каждого сеанса входа. Эти идентификаторы безопасности сопоставляются с константой Posix ID 0xFFF. Чтобы сопоставить идентификатор Posix 0xFFF, вы можете перевести любой идентификатор входа , который лучше всего подходит для ситуации, или использовать S-1-5-5-0-0 по умолчанию. (Например, если пользователь posix применяет защиту к объекту и указывает FFFx, лучше заменить идентификатор входа этого пользователя, чем просто назначать S-1-5-5-5-0-0.)