Domanda

Sto copiando un file dalla cartella A alla cartella B e quindi sto provando a copiare le autorizzazioni del file. Ecco i passaggi di base che sto usando:

  1. CopyFile (sorgente, destinazione)
  2. GetNamedSecurityInfo (fonte, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  3. Stampa l'origine SD utilizzando ConvertSecurityDescriptorToStringSecurityDescriptor
  4. SetNamedSecurityInfo (target, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  5. GetNamedSecurityInfo (target, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  6. Stampa SD di destinazione utilizzando ConvertSecurityDescriptorToStringSecurityDescriptor

Al numero 3 ottengo questa 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)

Al numero 6 ottengo

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

La chiamata a SetNamedSecurityInfo restituisce ERROR_SUCCESS, ma i risultati sono il file di origine e di destinazione non hanno le stesse SD. Perché? Cosa sto facendo di sbagliato qui?

È stato utile?

Soluzione

SHFileOperation può copiare i file insieme ai loro attributi di sicurezza, ma da l'altra tua domanda vedo che sei preoccupato che questo non funzioni all'interno di un servizio. Forse le seguenti discussioni sui newsgroup forniranno alcune informazioni utili per te:

Altri suggerimenti

Robocopy dal kit di strumenti del server http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
Copia tutti i settig e gli ACL NTFS, è anche più robusto e affidabile di copia / xcopy

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top