Копирование разрешений безопасности файла - PullRequest
2 голосов
/ 15 октября 2008

Я копирую файл из папки A в папку B, а затем пытаюсь скопировать права доступа к файлу. Вот основные шаги, которые я использую:

  1. CopyFile (источник, цель)
  2. GetNamedSecurityInfo (источник, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  3. Печать исходного SD с использованием ConvertSecurityDescriptorToStringSecurityDescriptor
  4. SetNamedSecurityInfo (цель, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  5. GetNamedSecurityInfo (цель, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  6. Печать целевого 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. Это почему? Что я тут не так делаю?

Ответы [ 2 ]

2 голосов
/ 16 октября 2008

SHFileOperation может копировать файлы вместе с их атрибутами безопасности, но из ваш другой вопрос Я вижу, вы обеспокоены тем, что это не будет работать в службе. Возможно, следующие обсуждения в группе новостей предоставят вам некоторую полезную информацию:

1 голос
/ 16 октября 2008

Robocopy из набора инструментов сервера http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
Будет копировать все NTFS settigs и ACL, это также более надежный и надежный, чем copy / xcopy

...