Pergunta

Estou copiando um arquivo de pasta de à pasta B e, em seguida, tentar copiar as permissões de arquivo. Aqui estão os passos básicos que estou usando:

  1. CopyFile (origem, destino)
  2. GetNamedSecurityInfo (fonte, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  3. fonte Imprimir SD utilizando ConvertSecurityDescriptorToStringSecurityDescriptor
  4. SetNamedSecurityInfo (alvo, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  5. GetNamedSecurityInfo (alvo, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  6. alvo Imprimir SD utilizando ConvertSecurityDescriptorToStringSecurityDescriptor

No nº 3 Recebo esta 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)

No nº 6 I get

G:S-1-5-21-1454471165-1482476501-839522115-513D:AI(A;ID;0x1301bf;;;PU)(A;ID;FA;;;BA)(A;ID;FA;;;SY)

A chamada para SetNamedSecurityInfo retorna ERROR_SUCCESS, mas os resultados são a fonte e arquivo de destino não têm os mesmos SDs. Por que é que? O que estou fazendo de errado aqui?

Foi útil?

Solução

SHFileOperation pode copiar arquivos, juntamente com seus atributos de segurança, mas a partir sua outra pergunta vejo que você está preocupado que isso não vai funcionar dentro de um serviço. Talvez as seguintes discussões do grupo de notícias irá fornecer algumas informações úteis para você:

Outras dicas

Robocopy das ferramentas de servidor kit http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
Irá copiar todos os NTFS settigs e ACLs, é também mais robusto e confiável do que copy / xcopy

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top