Existe alguma descrição, do ponto de vista do usuário do Windows, sobre o que o UAC faz exatamente com os privilégios de usuário em qualquer lugar? E o que é elevação exatamente?
Estou procurando algo como este artigo , mas não tão desanimadoramente datado.
Aqui está um cenário que não posso explicar por meio de recursos on-line. O pouco intrigante é que o UAC parece estar interferindo nos direitos de acesso concedidos através de um grupo diferente de Administradores.
Um aplicativo e um serviço usam memória compartilhada para se comunicarem entre si. (O aplicativo cria, o serviço abre). Desde o Windows Vista, o objeto de memória compartilhada é criado como global porque os serviços agora têm uma sessão separada. Portanto, cada usuário desse aplicativo precisa do privilégio correspondente (SeCreateGlobalPrivilege). A maneira de obter o privilégio é através da participação em Administradores (comportamento padrão do Windows) ou através da associação em MyAppUsers (concedida especificamente).
O aplicativo não está ciente do UAC.
Como esperado, se eu não estiver em nenhum grupo, o aplicativo falha na permissão negada ao tentar criar o objeto global.
Como esperado, um Administrador simples tem o mesmo problema, a menos que elevado.
Como esperado, um usuário padrão que esteja em MyAppUsers obtém o privilégio, não há necessidade de elevar. O aplicativo funciona. A memória compartilhada compartilha memória.
Totalmente inesperado, se um usuário estiver em Administradores e em MyAppUsers, eles não recebem o privilégio a menos que sejam elevados; então, efetivamente, a participação em Administradores tira os privilégios disponíveis através de MyAppUsers. Aqui estou paradoxalmente sendo forçado a correr como um administrador elevado - eu não deveria precisar de elevação, certo?
Eu pensei que o objetivo do UAC é parar de executar tudo como um administrador em favor de contas específicas, grupos e permissões explicitamente concedidas. Então, eu esperaria que isso estivesse interferindo nos direitos obtidos por meio do fato de ser um membro dos Administradores, mas não com os direitos obtidos por meio do fato de ser um membro de Usuários ou MyAppUsers ou qualquer outro grupo.