注册表 - 创建密钥 - 安全性

时间:2009-08-04 19:05:29

标签: registry

我正在考虑在HKEY_LOCAL_MACHINE下创建一个密钥。我已经阅读了MDSN,并且知道该怎么做,但我担心注册管理机构安全业务。我希望系统上的任何用户都能够访问密钥。我是否需要在RegCreateKeyEx调用的LPSECURITY_ATTRIBUTES参数中指定一些内容?如果是这样的话?在该参数的描述下,有一个指向SECURITY_ATTRIBUTES的链接,其中显示“这与通过分配NULL自主访问控制列表(DACL)授予对每个人的访问权限不同。”但我无法确切地知道这意味着什么。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您是否希望任何用户能够读取密钥或编写密钥?默认情况下,任何用户都可以在不需要您付出额外努力的情况下阅读密钥。如果要指定其他安全属性(如写访问权限),则需要指定安全属性。

我在这里发现了一篇名为Creating a DACL的文章。使用其中的代码或某些变体,然后执行以下操作:

 SECURITY_ATTRIBUTES  sa;

 sa.nLength = sizeof(SECURITY_ATTRIBUTES);
 sa.bInheritHandle = FALSE;  

 // Call function to set the DACL. The DACL
 // is set in the SECURITY_ATTRIBUTES 
 // lpSecurityDescriptor member.
 if (!CreateMyDACL(&sa))
 {
     // Error encountered; generate message and exit.
     printf("Failed CreateMyDACL\n");
     exit(1);
 }

 RegCreateKeyEx(HKEY_LOCAL_MACHINE, subKey, 0, NULL, 0, KEY_ALL_ACCESS, &sa, &hKey, NULL);