Я копирую файл из папки A в папку B и затем пытаюсь скопировать права доступа к файлам. Вот основные шаги, я использую:Копирование прав доступа к файлам
- CopyFile (источник, цель)
- GetNamedSecurityInfo (источник, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
- печати Источник SD с помощью ConvertSecurityDescriptorToStringSecurityDescriptor
- SetNamedSecurityInfo (цель, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
- GetNamedSecurityInfo (target, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
- Печать предназначаться SD с помощью ConvertSecurityDescriptorToStringSecurityDescriptor
На # 3 Я получаю эту SD:
G:S-1-5-21-1454471165-1482476501-839522115-513D:AI(A;ID;0x1200a9;;;BU)(A;ID;0x1301bf;;;PU)(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;FA;;;S-1-5-21-1454471165-1482476501-839522115-1004)
В # 6 я получаю
G:S-1-5-21-1454471165-1482476501-839522115-513D:AI(A;ID;0x1301bf;;;PU)(A;ID;FA;;;BA)(A;ID;FA;;;SY)
Вызов SetNamedSecurityInfo возвращает ERROR_SUCCESS, но результаты являются источником и целевой файл не имеют одинаковых SD. Почему это? Что я здесь делаю неправильно?
Спасибо за эти ссылки. Да, я не могу использовать SHFileOperation, но не по той причине, о которой вы думаете. Он фактически не копирует атрибуты безопасности файла, когда он просто наследует их все из родительской папки. По крайней мере, вот что показывают мои тесты. – Charles 2008-10-15 22:13:36