Função SetServiceObjectSecurity (winsvc.h)
[SetServiceObjectSecurity está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele poderá ser alterado ou ficar indisponível em versões subsequentes. Em vez disso, use a função SetNamedSecurityInfo .]
A função SetServiceObjectSecurity define o descritor de segurança de um objeto de serviço.
Sintaxe
BOOL SetServiceObjectSecurity(
[in] SC_HANDLE hService,
[in] SECURITY_INFORMATION dwSecurityInformation,
[in] PSECURITY_DESCRIPTOR lpSecurityDescriptor
);
Parâmetros
[in] hService
Um identificador para o serviço. Esse identificador é retornado pela função OpenService ou CreateService . O acesso necessário para esse identificador depende das informações de segurança especificadas no parâmetro dwSecurityInformation .
[in] dwSecurityInformation
Especifica os componentes do descritor de segurança a ser definido. Esse parâmetro pode ser uma combinação dos seguintes valores. Observe que os sinalizadores não manipulados por SetServiceObjectSecurity serão silenciosamente ignorados.
Valor | Significado |
---|---|
|
Define a DACL ( lista de controle de acesso discricionário ) do objeto. O identificador especificado por hService deve ter acesso WRITE_DAC ou o processo de chamada deve ser o proprietário do objeto. |
|
Define o SID ( identificador de segurança do grupo primário) do objeto. O identificador especificado por hService deve ter acesso WRITE_OWNER ou o processo de chamada deve ser o proprietário do objeto. |
|
Define o SID do proprietário do objeto . O identificador especificado por hService deve ter acesso WRITE_OWNER ou o processo de chamada deve ser o proprietário do objeto ou ter o privilégio de SE_TAKE_OWNERSHIP_NAME habilitado. |
|
Define a SACL ( lista de controle de acesso do sistema ) do objeto. O identificador especificado por hService deve ter ACCESS_SYSTEM_SECURITY acesso.
Para obter acesso ACCESS_SYSTEM_SECURITY
|
[in] lpSecurityDescriptor
Um ponteiro para uma estrutura SECURITY_DESCRIPTOR que contém as novas informações de segurança.
Retornar valor
Se a função for bem-sucedida, a função retornará diferente de zero.
Se a função falhar, ela retornará zero. Para obter informações de erro estendidas, chame GetLastError.
Os códigos de erro a seguir podem ser definidos pelo gerenciador de controle de serviço. Outros códigos de erro podem ser definidos pelas funções do Registro que são chamadas pelo gerenciador de controle de serviço.
Código de retorno | Descrição |
---|---|
|
O identificador especificado não foi aberto com o acesso necessário ou o processo de chamada não é o proprietário do objeto. |
|
O identificador especificado não é válido. |
|
As informações de segurança especificadas ou o descritor de segurança não são válidos. |
|
O serviço especificado foi marcado para exclusão. |
Comentários
A função SetServiceObjectSecurity define as partes especificadas do descritor de segurança do objeto de serviço com base nas informações especificadas no buffer lpSecurityDescriptor . Essa função substitui qualquer ou todas as informações de segurança associadas ao objeto de serviço, de acordo com os sinalizadores definidos no parâmetro dwSecurityInformation e sujeitos aos direitos de acesso do processo de chamada.
Quando um serviço é criado, o gerenciador de controle de serviço atribui um descritor de segurança padrão ao objeto de serviço. Para recuperar uma cópia do descritor de segurança de um objeto de serviço, chame a função QueryServiceObjectSecurity . Para obter uma descrição do descritor de segurança padrão para um objeto de serviço, consulte Segurança do Serviço e Direitos de Acesso.
Observe que conceder determinado acesso a usuários não confiáveis (como SERVICE_CHANGE_CONFIG ou SERVICE_STOP) pode permitir que eles interfiram na execução do serviço e, possivelmente, permitir que eles executem aplicativos na conta localSystem.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winsvc.h (inclua Windows.h) |
Biblioteca | Advapi32.lib |
DLL | Advapi32.dll |
Confira também
Controle de Acesso de baixo nível