Я копирую файл из папки A в папку B, а затем пытаюсь скопировать права доступа к файлу. Вот основные шаги, которые я использую:
- CopyFile (источник, цель)
- GetNamedSecurityInfo (источник, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
- Печать исходного SD с использованием ConvertSecurityDescriptorToStringSecurityDescriptor
- SetNamedSecurityInfo (цель, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
- GetNamedSecurityInfo (цель, 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. Это почему? Что я тут не так делаю?