Pregunta

Estoy copiando un archivo de la carpeta A a la carpeta B y luego intento copiar los permisos del archivo. Aquí están los pasos básicos que estoy usando:

  1. CopyFile (source, target)
  2. GetNamedSecurityInfo (fuente, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  3. Imprime la fuente SD usando ConvertSecurityDescriptorToStringSecurityDescriptor
  4. SetNamedSecurityInfo (target, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  5. GetNamedSecurityInfo (target, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  6. Imprima la SD de destino utilizando ConvertSecurityDescriptorToStringSecurityDescriptor

En el # 3 me sale este 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)

En el # 6 me sale

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

La llamada a SetNamedSecurityInfo devuelve ERROR_SUCCESS, sin embargo, los resultados son el origen y el archivo de destino no tienen las mismas SD. ¿Porqué es eso? ¿Qué estoy haciendo mal aquí?

¿Fue útil?

Solución

SHFileOperation puede copiar archivos junto con sus atributos de seguridad, pero desde su otra pregunta veo que le preocupa que esto no funcione dentro de un servicio. Tal vez las siguientes discusiones de grupos de noticias le proporcionarán información útil:

Otros consejos

Robocopy del kit de herramientas del servidor http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
Copiará todos los ajustes NTFS y ACL, también es más robusto y confiable que copiar / xcopy

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top