我正在将文件从文件夹 A 复制到文件夹 B,然后尝试复制文件权限。以下是我正在使用的基本步骤:
- 复制文件(源,目标)
- GetNamedSecurityInfo(来源,GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
- 使用 ConvertSecurityDescriptorToStringSecurityDescriptor 打印源 SD
- SetNamedSecurityInfo(目标, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
- GetNamedSecurityInfo(目标, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
- 使用 ConvertSecurityDescriptorToStringSecurityDescriptor 打印目标 SD
在#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
可以复制文件及其安全属性,但来自 your other question我发现您担心这在服务中不起作用。也许以下新闻组讨论将为您提供一些有用的信息:
关于windows - 复制文件安全权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/205668/