Инструменты пользователя

Инструменты сайта


os:windows:common:format_sid

Формат SID

SID(security identifier) - идентификатор безопасности. Данная структура уникально идентифицирует пользователя или группу в домене Windows NT. Именно по этому идентификатору определяют пользователей. Не по имени и по паролю, а по этому идентификатору. Например, Вы создали учетную запись. Потом стерли ее. Если снова создать запись с тем же именем и паролем SID будет уже другой и права не сохраняться. SID создается при создании учетной записи. Так же его имеют и все машины в сети. Отсюда понятна проблема, которая может случиться. Если у вас один первичный контролер домена, то после выхода его из строя и инсталляции снова Windows NT Server все и всех придется заново регистрировать и давать привилегии. Все строить на простой идеи. Этот идентификатор генерируется при создании учетной записи. Повторное создание приведет к генерации нового SID и это не зависит от паролей и имен.

Сам SID для программиста это структура:

typedef struct _SID
{
    BYTE Revision;
    BYTE SubAuthorityCount;
    SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
    DWORD SubAuthority[ANYSIZE_ARRAY];
} SID;
typedef PVOID PSID;

Хранится все это в виде двоичных значений. Но есть ряд функций преобразования:

ConvertSidToStringSid  - SID->String
ConvertStringSidToSid  - String->SID

В виде строки SID выглядит примерно вот так:

S-1-5-21-859275398-5967894345-141239485734-1105

Строковое представление SID имеет определенный формат S-I-R-S:

  • S - с этой буквы начинается SID
  • R - число представляющее уровень контроля
  • I - идентификатор полномочий
  • S - идентификаторы подчиненных полномочий

Источник: Шаг 90 - Что такое SID ?

Дискуссия

Enter your comment
 
os/windows/common/format_sid.txt · Последние изменения: 16.11.2009 20:26 (внешнее изменение)

Инструменты страницы