Изменение безопасности доступа к защищаемым объектам
Принтеры, службы, разделы реестра, приложения DCOM и пространства имен WMI являются защищаемыми объектами. Доступ к защищаемым объектам защищен дескрипторами безопасности, которые указывают пользователей, имеющих доступ. Начиная с Windows Vista, многие защищаемые объекты имеют методы для получения или настройки дескриптора безопасности. С соответствующими разрешениями можно считывать или изменять дескрипторы безопасности для защищаемых объектов. С помощью этих методов можно управлять тем, какие учетные записи пользователей или группы имеют доступ к принтеру, службе, пространству имен WMI или другому объекту. Дополнительные сведения об дескрипторов безопасности и их использовании в WMI см. в разделе Доступ к защищаемым объектам WMI.
В этой статье рассматриваются следующие разделы:
- Объекты и методы дескриптора безопасности
- Преобразование между форматами дескрипторов безопасности
- Проблемы с безопасностью
- Связанные темы
Объекты и методы дескриптора безопасности
В следующем списке содержатся методы, которые должны быть доступны защищаемым объектам для чтения или изменения дескриптора безопасности.
Пространства имен WMI
Поставщик может установить безопасность, которая разрешает доступ к данным в пространстве имен WMI только определенным группам. Безопасность пространства имен контролируется методами класса __SystemSecurity . Начиная с Windows Vista методы GetSecurityDescriptor и SetSecurityDescriptor возвращают и записывают __SecurityDescriptor объекты. Дополнительные сведения см. в разделе Настройка дескрипторов безопасности пространства имен.
Разделы реестра
Начиная с Windows Vista вы можете защитить разделы реестра, чтобы неавторизованные пользователи не могли их изменить. Класс StdRegProv имеет методы GetSecurityDescriptor и SetSecurityDescriptor . Эти методы возвращают и записывают Win32_SecurityDescriptor объекты.
принтеры;
Начиная с Windows Vista, вы можете защитить доступ к экземплярам класса Win32_Printer с помощью методов GetSecurityDescriptor и SetSecurityDescriptor . Эти методы возвращают и записывают Win32_SecurityDescriptor объекты.
Службы
Начиная с Windows Vista, вы можете защитить доступ к экземплярам класса Win32_Service с помощью методов GetSecurityDescriptor и SetSecurityDescriptor . Эти методы возвращают и записывают Win32_SecurityDescriptor объекты.
Приложения DCOM
Экземпляры приложений DCOM имеют несколько дескрипторов безопасности. Начиная с Windows Vista, используйте методы класса Win32_DCOMApplicationSetting для получения или изменения различных дескрипторов безопасности. Дескрипторы безопасности возвращаются в виде экземпляров класса Win32_SecurityDescriptor .
Чтобы получить или изменить разрешения конфигурации, вызовите методы GetConfigurationSecurityDescriptor или SetConfigurationSecurityDescriptor .
Чтобы получить или изменить разрешения на доступ, вызовите методы GetAccessSecurityDescriptor или SetAccessSecurityDescriptor .
Чтобы получить или изменить разрешения на запуск и активацию, вызовите методы GetLaunchSecurityDescriptor или SetLaunchSecurityDescriptor .
Файлы
Методы GetSecurityDescriptor и SetSecurityDescriptor находятся в классе Win32_LogicalFileSecuritySetting , а не в классе CIM_DataFile .
Общие папки
Методы GetSecurityDescriptor и SetSecurityDescriptor находятся в классе Win32_LogicalShareSecuritySetting , а не в классе Win32_Share .
Примечание
Если новый список контроль доступа безопасности (SACL) не указан в вызове метода SetSecurityDescriptor, то для дескриптора безопасности для целевого защищаемого объекта устанавливается значение NULL, чтобы предыдущий параметр SACL не сохранялось.
Преобразование между форматами дескрипторов безопасности
Дескрипторы безопасности — это сложные двоичные массивы байтов, которые обычно необходимо создавать и изменять в C++. После использования одного из методов Get для получения дескриптора безопасности класс Win32_SecurityDescriptorHelper предоставляет методы, которые преобразуют дескрипторы безопасности в язык определения дескрипторов безопасности (SDDL) или в Win32_SecurityDescriptor экземпляры.
Вы можете легко управлять списками контроль доступа (ACL) в Win32_SecurityDescriptor экземплярах или в SDDL. Дополнительные сведения о структуре и использовании дескрипторов безопасности в WMI см. в разделе Объекты дескриптора безопасности WMI.
В C++ или C# используйте функции преобразования для преобразования двоичных дескрипторов безопасности в язык определения дескрипторов безопасности (SDDL). Чтобы изменить значения дескриптора безопасности в приложениях C++, используйте ConvertSecurityDescriptorToStringSecurityDescriptor и ConvertStringSecurityDescriptorToSecurityDescriptor.
Проблемы с безопасностью
Рекомендуется вносить изменения в дескрипторы безопасности с большой осторожностью, чтобы безопасность объекта не была скомпрометирована. Имейте в виду, что порядок записей управления доступом (ACE) в списке управления доступом на уровне пользователей (DACL) может повлиять на безопасность доступа. Дополнительные сведения см. в разделе Порядок ACE в DACL.
Связанные темы