Alterar a segurança de acesso em objetos protegíveis
Impressoras, serviços, chaves do registro, aplicativos DCOM e namespaces do WMI são objetos protegíveis. O acesso a objetos protegíveis é protegido por descritores de segurança, que especificam os usuários que têm acesso. A partir do Windows Vista, muitos objetos protegíveis têm métodos para obter ou definir o descritor de segurança. Com as permissões apropriadas, você pode ler ou alterar descritores de segurança em objetos protegíveis. Usando esses métodos, você pode controlar quais contas de usuário ou grupos têm acesso a uma impressora, serviço, namespace do WMI ou outro objeto. Para obter mais informações sobre descritores de segurança e seu uso no WMI, consulte Acesso a objetos protegíveis WMI.
As seções a seguir serão abordadas neste tópico:
- Métodos de descritor de segurança e objetos
- Converter entre formatos de descritor de segurança
- Problemas de segurança
- Tópicos relacionados
Métodos de descritor de segurança e objetos
A lista a seguir contém os métodos que os objetos protegíveis têm para permitir que você leia ou altere o descritor de segurança:
Namespaces do WMI
Um provedor pode estabelecer a segurança que permite que apenas determinados grupos tenham acesso aos dados em um namespace do WMI. A segurança do namespace é controlada por métodos na classe __SystemSecurity. A partir do Windows Vista, os métodos GetSecurityDescriptor e SetSecurityDescriptor retornam e gravam objetos __SecurityDescriptor. Para obter mais informações, consulte Configurar descritores de segurança de namespace.
Chaves do Registro
A partir do Windows Vista, você pode proteger as chaves do registro para que elas não possam ser alteradas por usuários não autorizados. A classe StdRegProv tem os métodos GetSecurityDescriptor e SetSecurityDescriptor. Esses métodos retornam e gravam objetos Win32_SecurityDescriptor.
Impressoras
A partir do Windows Vista, você pode proteger o acesso a instâncias da classe Win32_Printer usando os métodos GetSecurityDescriptor e SetSecurityDescriptor. Esses métodos retornam e gravam objetos Win32_SecurityDescriptor.
Serviços
A partir do Windows Vista, você pode proteger o acesso a instâncias da classe Win32_Service usando os métodos GetSecurityDescriptor e SetSecurityDescriptor. Esses métodos retornam e gravam objetos Win32_SecurityDescriptor.
Aplicativos DCOM
As instâncias dos aplicativos DCOM têm vários descritores de segurança. A partir do Windows Vista, use métodos da classe Win32_DCOMApplicationSetting para obter ou alterar os vários descritores de segurança. Os descritores de segurança são retornados como instâncias da classe Win32_SecurityDescriptor.
Para obter ou alterar as permissões de configuração, chame os métodos GetConfigurationSecurityDescriptor ou SetConfigurationSecurityDescriptor.
Para obter ou alterar as permissões de acesso, chame os métodos GetAccessSecurityDescriptor ou SetAccessSecurityDescriptor.
Para obter ou alterar as permissões de inicialização e ativação, chame os métodos GetLaunchSecurityDescriptor ou SetLaunchSecurityDescriptor.
Arquivos
Os métodos GetSecurityDescriptor e SetSecurityDescriptor estão na classe Win32_LogicalFileSecuritySetting e não na classe CIM_DataFile.
Compartilhamentos
Os métodos GetSecurityDescriptor e SetSecurityDescriptor estão na classe Win32_LogicalShareSecuritySetting e não na classe Win32_Share.
Observação
Quando uma nova SACL (lista de controle de acesso de segurança) não é especificada em uma chamada para um método SetSecurityDescriptor, a SACL do descritor de segurança no objeto protegível de destino é definido como NULL para que a configuração anterior da SACL não persista.
Converter entre formatos de descritor de segurança
Os descritores de segurança são matrizes complexas de bytes binários que normalmente devem ser criadas e alteradas em C++. Depois de usar um dos métodos Get para obter o descritor de segurança, a classe Win32_SecurityDescriptorHelper fornece métodos que convertem descritores de segurança na SDDL (linguagem de definição de descritor de segurança) ou em instâncias de Win32_SecurityDescriptor.
Você pode manipular a ACL (lista de controle de acesso) com mais facilidade em instâncias de Win32_SecurityDescriptor ou na SDDL. Para obter mais informações sobre a estrutura e o uso de descritores de segurança no WMI, consulte Objetos descritores de segurança WMI.
Em C++ ou C#, use funções de conversão para converter descritores de segurança binários na SDDL (linguagem de definição de descritor de segurança). Para modificar valores de descritor de segurança em aplicativos C++, use ConvertSecurityDescriptorToStringSecurityDescriptor e ConvertStringSecurityDescriptorToSecurityDescriptor.
Problemas de segurança
É recomendável que as alterações nos descritores de segurança sejam feitas com muita cautela para que a segurança do objeto não seja comprometida. Lembre-se de que a ordem das ACEs (entradas de controle de acesso) em uma DACL (lista de controle de acesso discricionário) pode afetar a segurança de acesso. Para obter mais informações, consulte Ordem das ACEs em uma DACL.
Tópicos relacionados