Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
[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