gpt4 book ai didi

c++ - 使用 SDDL 或手动创建安全描述符之间的区别?

转载 作者:搜寻专家 更新时间:2023-10-31 02:11:41 24 4
gpt4 key购买 nike

我需要使用 Win32 API 来创建具有特定权限的文件夹。在浏览文档时,我发现了两个看似合理的示例:

  1. 此示例使用 SDDL 创建一个 DACL,将其添加到 SECURITY_ATTRIBUTES 结构,并使用它创建一个文件夹:

    Creating a DACL

  2. 此示例手动指定SID_IDENTIFIER_AUTHORITYPSIDEXPLICIT_ACCESS 结构(包括ACCESS_MASK 等.)、TRUSTEE 等等,直到将生成的 SECURITY_ATTRIBUTES 结构应用于新对象(在本例中为注册表项):

    Modifying the ACLs of an Object in C++

在我看来,一旦您克服了粗糙的语法,使用 SDDL 就更容易使用并且更不容易出错。

这两种方法之间有什么区别(如果有)?工业上哪个更常用?

最佳答案

如今,您可以使用其中任何一种。 SDDL 只是一个供人类查看的“友好”字符串。在某些时候,它们必须先转换为等效的二进制文件,然后才能被大多数安全功能使用。

如果我没记错的话,Windows 2000 中添加了 SDDL 字符串支持。更多 well-known aliases在每个新的 Windows 版本中添加。

除非您支持 Windows NT4,或者需要使用晦涩的别名,否则您可以根据需要使用 SDDL 字符串。

如果速度更重要,经典方式可能更快。

关于c++ - 使用 SDDL 或手动创建安全描述符之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43218910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com