Recentemente, fiquei confuso com o funcionamento do UAC entre contas padrão e contas de administrador,
Como todos sabemos, quando o UAC está ativado, o UAC permite que contas padrão ou Administrador no Modo de Aprovação de Administrador obtenham acesso ao token de administrador para executar tarefas que exigem acesso administrativo à máquina - permitindo a troca de tokens sem alternar usuários,
No entanto, parece que a troca de tokens não é realmente o que acontece: Há algum tempo, eu corri um aplicativo que modificava o shell (explorer.exe). Eu executei o programa em uma conta padrão, mas precisava de acesso elevado: portanto, usei o UAC para fornecer credenciais de administrador para que ele pudesse ser concluído. Eu não vi nenhuma mudança na casca; Eu então entrei na conta de administrador cujas credenciais eu usei e vi que o shell na conta tinha sido alterado, o que obviamente não era o que eu queria
Pareceu-me que o UAC era basicamente uma transação do tipo "Executar como usuário", na qual ele realmente executava o programa como esse usuário. Isso significava que eu não estava apenas executando-o de forma elevada: estava literalmente executando o programa como esse usuário,
Minha pergunta é: é possível que uma conta padrão use o token de administrador, mas na verdade execute o programa como um usuário padrão e use o perfil do usuário atual? Caso contrário, parece-me que, se você precisa executar alguma tarefa de administrador, é muito necessário fazer login em uma conta de administrador que anula todo o propósito do UAC - já que o UAC executa um programa como administrador, em vez de usar apenas direitos de administrador,
Esta separação de token e perfil é possível? Ou todos os usuários precisam ser administradores nesse caso? Parece-me que isso seria responsável por muitas organizações que apenas concedem acesso total de administrador a todos os usuários,
Alguém por favor pode esclarecer isso?
Gostaria de saber se teria sido possível fornecer um token de administrador ao programa, mas executá-lo na conta de usuário atual, não na conta de usuário do administrador cujas credenciais foram fornecidas - em outras palavras, teria sido possível modificar o shell na conta padrão com esse programa? O objetivo seria lançar o processo como usuário logado (independentemente dos privilégios atuais) com direitos administrativos, não como um processo em uma conta com direitos de administrador.
Espero que isso faça sentido,
ESCLARECIMENTO :
Não estou me referindo ao Modo de Aprovação do Administrador ou como o UAC funciona. Eu já sei que, se o UAC estiver definido como seguro, até mesmo os Administradores serão solicitados e, a menos que estejam desativados, os administradores usarão o token padrão por padrão. Eu estou falando sobre quando o token de administrador é ganho, é possível ainda executar o processo como o usuário logado, apenas com o token de administrador? (não usando Run 'user' mas talvez algo como run as / with 'token'), etc ... Desta forma, seria usando privilégios administrativos genéricos ao invés de privilégios administrativos de um usuário.
Isso é possível, ou eu acabei de apontar um recurso que não está na Janela?
Eu, para alcançar a meta descrita aqui, teria que talvez transformar a conta padrão em uma conta de administrador a qualquer momento em qualquer coisa que exija elevação e depois transformá-la em uma conta padrão quando isso for feito? Com base nos comentários, parece que isso não é possível e que parece ser uma falha no sistema operacional porque torna o UAC basicamente inútil.
CASE IN POINT : Há alguns anos, eu estava tentando executar um programa que mudaria o tema do meu computador que precisava corrigir o sistema (um desses programas de terceiros). Requeria direitos de administrador. Eu não vi nenhuma alteração, mas então eu entrei na conta de administrador cuja senha eu tinha usado, e achei que toda a atividade tinha sido aplicada a essa conta !! Eu tive que mexer com isso algumas vezes para fazê-lo funcionar, mas foi um processo muito complicado. A solução mais fácil seria apenas promover temporariamente essa conta padrão para um administrador e depois rebaixá-la posteriormente?