Мои требования следующие:
Теперь я могу создать каталог следующим образом:
SHCreateDirectoryEx( NULL, <path>.c_str(), NULL );
Теперь я хотел бы установить соответствующие атрибуты безопасности. Любая помощь / пример кода будет оценен.
Платформа: Win7 (язык: C ++ / C)
Первое, что вы должны сделать, это создать SECURITY_ATTRIBUTES
структура и установить его члены.
SECURITY_ATTRIBUTES SecAttr;
SecAttr.size = sizeof(SECURITY_ATTRIBUTES); //Set size of structure
Следующий член является типом SECURITY_DESCRIPTOR
который фактически содержит все данные, необходимые для управления безопасным доступом к этому объекту.
Вы не можете напрямую создать эту структуру согласно Документация MSDN, но вы должны использовать функции, представленные в документации, чтобы создать такую структуру, установить все необходимые флаги, как требуется, а затем получить указатель на нее для передачи SecAttr
,
Пример того, как создать такой SECURITY_DESCRIPTOR
структуру можно найти Вот. В этом примере это сделано для ключа реестра, но принцип тот же.
По сути вы заполняете DACL (Дискреционный список контроля доступа безопасности) или SACL (Список контроля доступа к системе с правильными свойствами доступа (чтение / запись / только чтение) и т. д. вы хотите, чтобы объект имел.
Заполнив весь SECURITY_ATTRIBUTES
структура вы можете передать его своему SHCreateDirectoryEx
функция.
Других решений пока нет …