我正在將文件從文件夾A複製到文件夾B,然後嘗試複製文件權限。下面是我使用的基本步驟:複製文件安全權限
- 的CopyFile(源,目標)
- GetNamedSecurityInfo(源,GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)使用ConvertSecurityDescriptorToStringSecurityDescriptor
- SetNamedSecurityInfo(目標,GROUP_SECURITY_INFORMATION
- 打印源SD | DACL_SECURITY_INFORMATION)
- GetNamedSecurityInfo(目標,GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
- 打印針對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,但不是因爲你的想法。當它只是從父文件夾繼承它們時,它實際上不會複製文件的安全屬性。至少,這是我的測試顯示的。 – Charles 2008-10-15 22:13:36