Ao usar Ntrights.exe
para conceder permissão a um privilégio, não vejo nenhuma capacidade de ativar esses privilégios. Isso deveria ser automático?
Exemplo:
ntrights.exe +r SeShutdownPrivilege -u %username%
adicionarei esse privilégio ao meu usuário, mas quando verifico o estado usando whoami /priv
ainda mostro o "Estado" como Desativado.
Existe uma sysinternals
opção ou algo nesse sentido que também ATIVARÁ as permissões de um usuário?
Você está emitindo este comando a partir de um CMD elevado e de um login de administrador que não é
username
?A permissão de desligamento não pode ser concedida a você mesmo, a menos que você já a tenha, e então é "sem operação".
Você precisa, como dito acima, fazer login como administrador, executar o CMD como administrador e, em seguida, emitir o
ntrights
comando.Pode ser necessário reinicializar após executar o
ntrights
comando e, além disso, se você tiver enviado qualquer GPO para a unidade, isso poderá redefinir esse privilégio/direito, portanto, você deve executarntrights
explicitamente após o GPO ter sido enviado.Não, para a maioria dos privilégios, isso deve ser feito explicitamente pelo processo que está executando a tarefa, usando AdjustTokenPrivileges() antes de fazer a chamada real do sistema. Desde que o privilégio esteja presente no token do processo, o processo pode habilitá-lo/desabilitá-lo a qualquer momento que desejar – não necessita de concessão adicional para isso.
É uma daquelas peculiaridades do OpenVMS que o WinNT herdou e tem como objetivo tornar o uso de privilégios mais explícito (e mais auditável). Veja o SeBackupPrivilege, por exemplo, que permite que os administradores leiam qualquer arquivo ignorando todas as ACLs – o Windows tem a capacidade de registrar todos os seus usos no log de segurança (auditoria), portanto, se o privilégio estivesse sempre ativo, o log estaria cheio de "usuários" acidentais. A usou privilégios para ignorar ACLs sem sequer perceber" eventos.
(Da mesma forma, no Linux você geralmente não executa com CAP_DAC_OVERRIDE sempre ativado, mas muda deliberadamente para a conta "root" que tem esse privilégio; a troca de conta é o que é registrado, embora cada desvio de ACL individual não seja.)