Casa > P > Por Que Alguns Processos Que Não São Do Sistema Estão Listados Como System Sob Nome De Usuário No Gerenciador De Tarefas Do Windows?

Por que alguns processos que não são do sistema estão listados como SYSTEM sob nome de usuário no Gerenciador de Tarefas do Windows?

algum Background:
Processos sempre executados no contexto de um princípio de segurança. Cada principal de segurança é associado a um Security ID(SID). Esta é a unidade primária de identificação de quem está executando o processo. Windows olha para algo chamado token de acesso do processo para identificar o SID( nome de usuário é apenas um nome legível para os mortais)

Closer olha para contextos de execução do processo:
O cenário mais típico da criação de um processo é você clicar duas vezes em uma aplicação ou iniciá-la a partir de um prompt cmd. Em ambos os casos, o processo alvo herda o token de acesso do processo pai (explorer.exe ou cmd.exe) e, portanto, é executado no seu contexto de usuário. Isto é porque o explorer.exe foi iniciado no seu contexto de usuário quando você entrou na sessão atual - (você pode verificar isto no gerenciador de tarefas)
Quando você sai da sua sessão de usuário, há muitas janelas de trabalho de limpeza que fazem por você, uma delas está matando o processo explorer.exe. Isto mata todos os processos filhos do explorer.
(porque as crianças estão ligadas ao tempo de vida dos pais' através de algo chamado objetos de trabalho. Você pode encontrar mais informações aqui - Objetos de Trabalho (Windows))

O kernel do windows e muitos outros serviços críticos don't entendem o conceito de um usuário/sessão, etc. e são agnósticos a ele. Tudo que eles precisam é do SID (que está disponível em qualquer ficha de processo)
Agora, se você sair da sua conta de usuário, certamente não't significa que o windows está't rodando.
(Se o windows estivesse't realmente a correr, você não't seria capaz de voltar a iniciar sessão :) )

Para poder voltar ao windows para continuar a executar outros serviços críticos em segundo plano/ para que o próprio kernel esteja em execução :--- é necessário um contexto de execução que NÃO esteja ligado a nenhuma sessão do utilizador.
É aqui que o NT AUTHORITY\SYSTEM entra em jogo. Este é o mais alto nível de privilégio que um processo poderia ser executado em um contexto não-usuário . Existem outros níveis de privilégios mais baixos como NETWORK SERVICE, LOCAL SERVICE e.t.c.

Extra Info:
O SISTEMA faz parte do grupo "Administrators" na sua máquina e portanto um processo em execução no seu contexto pode potencialmente fazer qualquer coisa que um administrador possa fazer à sua máquina.
(ações privilegiadas como - modificar o registro, instalar drivers etc)

Você poderia escrever um SERVIÇO NT, instalá-lo para rodar como SYSTEM e então chamar :
cmd> Net start "service_name"
Isso poderia rodar seu serviço no contexto SYSTEM.

Existe também uma ferramenta (escrita por Mark Russinovich | Facebook) chamada psexec.exe, que pode lançar executáveis regulares no contexto SYSTEM.
Transforma internamente o seu .exe para uma dll NT SERVICE, instala e executa.
Está disponível para download gratuito aqui - PsExec

De Efron Sitare

Como aplicar a aprendizagem de máquinas à realidade virtual / aumentada :: Porque é que o sistema operativo é referido como um gestor de recursos num dispositivo informático?