Forma persistente de permitir que um usuário reinicie um serviço

1

Existe um serviço do Windows que é reinstalado algumas vezes.

Eu preciso de um usuário para poder iniciar / parar / reiniciar este serviço. Este usuário não é um administrador e não deveria ser.

Se eu usar setacl.exe do que funciona, ou mesmo eu posso usar sc sdset , mas depois que o serviço for reinstalado, o setacl precisará ser chamado novamente, mas o processo que reinstala o serviço não terá direitos para executar setacl. / p>

Existe uma maneira de conceder a um usuário específico o direito de reiniciar um serviço com um nome específico, ou até mesmo todos os serviços, que persistem por meio da reinstalação de um serviço?

Se eu puder conceder ao usuário algumas permissões gerais para "gerenciar serviços", isso também não será problema, mas não consigo identificar os direitos exatos necessários para isso (se eu adicionar o usuário ao grupo de administradores, ele pode iniciar / parar serviços, mas pode, obviamente, fazer muito mais do que isso).

    
por SoonDead 17.03.2014 / 16:25

2 respostas

1

Como você já conhece o SetACL e como usá-lo para permitir que um usuário controle um serviço, basta usar Tarefas agendadas para executar regularmente o SetACL.

Configure a tarefa para repetir em um intervalo pequeno, como o maior tempo aceitável que o usuário não pode controlar o serviço, após uma reinstalação.

Editar

Como você diz, é meio hacky;).

Outra opção, como Adam menciona, é usar os GPOs para impor sua ACL.

Para serviços não padrão do Windows, você terá que instalar e executar o Console de Gerenciamento de Grupo , no computador em que o serviço está instalado. Em seguida, faça o seguinte:

  1. Inicie o GPMC.msc no computador
  2. Edite um GPO existente ou crie um novo que se aplique ao computador em questão
  3. Expanda Políticas , Configurações do Windows , Configurações de segurança , Serviços do sistema
  4. Abra as propriedades do serviço em questão
  5. Defina o modo de inicialização e edite a permissão conforme desejado
por 17.03.2014 / 16:38
1

As permissões para reiniciar um serviço são bem diretas e você pode usar o Subinacl.exe / service para atribuir permissões, por exemplo:

subinacl /service MyServiceName /GRANT=NTDOMAIN\BOB=STOPI
  • S TOPI = consulta s tatus
  • S T OPI = s t arte
  • ST O PI = st o p
  • STO P I = p ause / continue
  • PARE I = i nterrogate

Lista completa em support.microsoft.com .

O problema que você está tendo, eu acho, é que quando o MyServiceName é excluído, as ACLs são excluídas junto com ele. Você pode contornar isso usando Diretiva de Grupo ou Modelos de Segurança para atribuir permissões em serviços que podem ou não existir.

    
por 17.03.2014 / 16:56