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