c - 如何将对象的安全描述符重置为默认值?

标签 c windows security authorization

作为测试实用程序的一部分,我正在创建一些注册表项并向它们应用特定的安全描述符。稍后我想将它重置为“默认”安全描述符(即从父级继承)。执行此操作的正确方法是什么?

我无法保存和恢复原始安全描述符,因为此实用程序可能会在测试人员想要重置它之前运行多次。我想我可以将它保存到临时文件或注册表值中,但我更喜欢更优雅的解决方案。

那么,我必须对父级的安全描述符做些什么吗?我很难弄清楚该怎么做。

差点忘了说我是用 C 语言做的。

更新:我应该补充一点,我还将对文件(以及可能的其他安全对象)执行此操作,因此如果有一种通用的方法来处理安全描述符就更好了他们自己而不是使用特定于对象的东西,如 RegSaveKey。我想这需要使用父级的安全描述符,所以如果我可以执行以下操作,那就太好了:

BOOL WINAPI GetDefaultChildSecurityDescriptorFromParent(LPSECURITY_DESCRIPTOR Parent, LPSECURITY_DESCRIPTOR* Child);

我只是不确定如何以编程方式进行。您可以在安全描述符编辑器中通过使用复选框从父项继承条目来完成此操作,因此显然这是可能的。

最佳答案

我建议使用 RegSavekey 将 key 保存到文件中.要恢复 key ,请使用 RegLoadKey .

关于c - 如何将对象的安全描述符重置为默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3876907/

相关文章:

c - 函数执行在遇到第一个 return 语句时不退出

c - 程序的输出随 printf() 语句而变化

专门用于 Windows 的 java 库

java - jdk-8u191 中修复了 LDAP 条目中毒问题吗?

security - 从应用程序中检测中间人

c - 在 C 和 cython 中使用结构

c - C 预处理器中的 SIGN 宏

c++ - Linux 和 Windows 下混合 cin 和 getline

c++ - 邮寄消息 : How to post a message to a process that does not have a window?

php - 如何验证我的 PHP 应用程序的用户?