Вопрос

Я копирую файл из папки 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.Почему это?Что я здесь делаю не так?

Это было полезно?

Решение

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top