windows - 复制文件安全权限

标签 windows security winapi file acl

我正在将文件从文件夹 A 复制到文件夹 B,然后尝试复制文件权限。以下是我正在使用的基本步骤:

  1. 复制文件(源,目标)
  2. GetNamedSecurityInfo(来源,GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  3. 使用 ConvertSecurityDescriptorToStringSecurityDescriptor 打印源 SD
  4. SetNamedSecurityInfo(目标, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  5. GetNamedSecurityInfo(目标, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  6. 使用 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/

相关文章:

linux - 创建的azure funtionapp是linux还是windows

windows - 通过另一个程序向 GUI 应用程序提供输入

windows - SVN客户端错误 "The server at [...] does not support the HTTP/DAV protocol"

ruby-on-rails - rails : How to prevent 2 active-record attributes to be equal with validation?

php - php 中 if 中只允许管理员执行的代码是否受到保护?

security - PGP 和 SMIME 之间的区别

windows - 如何在 ClearType 打开时获得真实的文本尺寸?

javascript - UWP:如何调用WinAPI方法

c# - 在派生的 C# 用户控件中处理 Windows 通知

c++ - 检查是否启用了 DEP