No Windows, o usuário System
é exibida com o símbolo do grupo:
.
(O uso da API Win32 interna LookupAccountSid também revela que parece ser um grupo SidTypeGroup .)
Por outro lado, os processos podem ser executados da system context
mesma maneira em a user context
. Os documentos da Microsoft também o descrevem como "usuário do sistema" ou "conta do sistema" e não como "grupo do sistema".
É um usuário para finalidades herdadas exibido como grupo?
(Ou é algo em que Werner Heisenberg estaria interessado?)
Nota: O que é o usuário NT AUTHORITY \ SYSTEM? é semelhante, mas não responde à pergunta por que é exibido como grupo e se comporta como um usuário.
windows
user-accounts
local-groups
marsh-wiggle
fonte
fonte
Respostas:
Primeiro, o token de acesso contém muito mais que o identificador de segurança (SID) . Só é necessário "Executar como administrador" um programa para ver no Gerenciador de Tarefas que seu usuário é ele mesmo e não o Administrador, e esse milagre é alcançado apenas pela modificação do token de acesso, não substituindo o SID.
Segundo, NT-AUTHORITY e SYSTEM não são contas nem grupos, apesar do que dizem várias outras fontes (mesmo dentro da Microsoft). Um SID geralmente tem um nome que é exibido sempre que necessário. Uma conta de usuário contribuirá com seu SID como principal SID para o token de acesso, que também determinará o nome exibido por vários utilitários. Mas o token de acesso pode conter SIDs adicionais, por exemplo, para todos os grupos aos quais pertence essa conta de usuário. Ao verificar as permissões, o Windows procurará qualquer SID no token de acesso que tenha essa permissão.
Alguns SIDs conhecidos do Windows terão nomes relatados pelo Windows, embora não pertençam a nenhuma conta.
Um identificador de segurança é definido pela Wikipedia como:
O SID nem precisa definir uma conta de usuário ou um grupo. Apenas define um conjunto de permissões. O artigo da Wikipedia acima acrescenta:
O SID de
NT-AUTHORITY\SYSTEM
pode ser adicionado a outras contas. Por exemplo, isso é dito sobre a conta LocalSystem :Já se pode ver no texto acima a confusão que reina mesmo na documentação da Microsoft em relação aos SIDs do sistema, que não são exatamente contas nem grupos - que são apenas um conjunto de permissões. Essa confusão se estende ainda a outros utilitários e artigos; portanto, qualquer informação retornada deve ser cuidadosamente examinada.
O artigo da Microsoft Identificadores de segurança conhecidos nos sistemas operacionais Windows detalha todos os SIDs do sistema, alguns dos quais eu incluo abaixo:
Conclusão : NT-AUTHORITY \ SYSTEM é o nome de um ID de segurança, que não é um grupo nem uma conta. Ele é exibido no Gerenciador de tarefas como SYSTEM quando é o principal SID de um programa. O máximo que eu chamaria de "pseudo conta".
fonte
- which are just a set of permissions
: o que se refere às IDs do sistema ou às contas ou grupos ?IMHO sua observação está correta.
NT-AUTHORITY\SYSTEM
é um grupo, portanto, você pode se referir a ele como o grupo do sistema . Este grupo existe desde o Windows NT 4, pelo menos, e já foi um grupo lá:Há também uma conta chamada LocalSystem que
para que você possa chamar esse usuário do sistema que é membro do grupo SYSTEM.
SysInternals PsGetSid suporta a teoria de grupos para SYSTEM:
Em relação ao início de um processo como um grupo:
Para gerenciar a segurança, um processo obtém um token de acesso . O token de acesso contém apenas SIDs. Não tenho certeza se há uma verificação se o SID do usuário é realmente um usuário ou um grupo. Em princípio, isso não importaria: o SID define o que pode ser acessado. Talvez o artigo do CodeProject possa ajudar na implementação
fonte