В Windows пользователь System
отображается с символом группы:
.
(Использование внутреннего Win32 API LookupAccountSid также показывает, что это, похоже, группа SidTypeGroup .)
С другой стороны, процессы могут выполняться system context
аналогично в user context
. Также документы Microsoft описывают его как «системный пользователь» или «системная учетная запись», а не как «системная группа».
Это пользователь, который для каких-либо устаревших целей отображается как группа?
(Или это было бы интересно Вернеру Гейзенбергу ?)
Примечание. Что такое пользователь NT AUTHORITY \ SYSTEM? похоже, но не отвечает на вопрос, почему он отображается как группа и ведет себя как пользователь.
windows
user-accounts
local-groups
болотно-покачивания
источник
источник
Ответы:
Во-первых, токен доступа содержит гораздо больше, чем идентификатор безопасности (SID) . Нужно только «Запустить от имени администратора» программу, чтобы увидеть в диспетчере задач, что ее пользователь является самим собой, а не администратором, и это чудо достигается просто путем изменения токена доступа, а не путем замены SID.
Во-вторых, NT-AUTHORITY и SYSTEM не являются ни учетными записями, ни группами, несмотря на то, что говорят различные другие источники (даже внутри Microsoft). У SID обычно есть имя, которое отображается при необходимости. Учетная запись пользователя будет предоставлять свой SID в качестве основного SID для токена доступа, который также будет определять имя, отображаемое различными утилитами. Но токен доступа может содержать дополнительные SID, например, для всех групп, к которым принадлежит эта учетная запись пользователя. При проверке разрешений Windows будет искать любой SID в маркере доступа, который имеет это разрешение.
Некоторые известные Windows SID будут иметь имена, сообщаемые Windows, хотя на самом деле они не принадлежат какой-либо учетной записи.
Идентификатор безопасности определяется Википедии как:
SID не должен даже определять учетную запись пользователя или группу. Он просто определяет набор разрешений. Вышеупомянутая статья Википедии добавляет:
SID
NT-AUTHORITY\SYSTEM
может быть добавлен к другим учетным записям. Например, это сказано об учетной записи LocalSystem :В приведенном выше тексте уже можно увидеть путаницу, которая царит даже в документации Microsoft относительно системных идентификаторов безопасности, которые не являются ни учетными записями, ни группами, а представляют собой просто набор разрешений. Эта путаница распространяется и на другие утилиты и статьи, поэтому любая возвращенная информация должна быть тщательно изучена.
В статье Microsoft « Известные идентификаторы безопасности в операционных системах Windows» подробно описаны все системные идентификаторы безопасности, некоторые из которых я приведу ниже:
Вывод : NT-AUTHORITY \ SYSTEM - это имя идентификатора безопасности, который не является ни группой, ни учетной записью. Он отображается в диспетчере задач как СИСТЕМА, когда он является основным SID программы. Максимум, что я бы назвал, это «псевдо-счет».
источник
- which are just a set of permissions
: что относится к системным идентификаторам или к учетным записям или группам ?ИМХО ваши наблюдения верны.
NT-AUTHORITY\SYSTEM
это группа, так что вы можете называть ее системной группой . Эта группа существует, по крайней мере, начиная с Windows NT 4, и уже была там:Существует также учетная запись под названием LocalSystem, которая
так что вы можете назвать это системным пользователем, который является членом группы SYSTEM.
SysInternals PsGetSid поддерживает теорию групп для SYSTEM:
Относительно начала процесса как группы:
Для управления безопасностью процесс получает токен доступа . Маркер доступа содержит только SID. Я не уверен, есть ли проверка, является ли SID пользователя действительно пользователем или группой. В принципе это не имеет значения: SID определяет, к чему можно получить доступ. Возможно, статья CodeProject может помочь с реализацией
источник