我需要向每个人授予我正在创建的命名管道的访问权限。我理解的方法是创建一个 NULL/空 DACL 并将其传递给CreateNamedPipe
.
如何创建 NULL DACL?有人告诉我,这与传递 NULL 指针不同LPSECURITY_ATTRIBUTES
.
像这样:
SECURITY_DESCRIPTOR SD;
InitializeSecurityDescriptor(&SD, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&SD, TRUE, NULL, FALSE);
为了简洁起见,我省略了错误检查。你不会那样做的。
然后当你打电话时CreateNamedPipe
您可以像这样设置安全属性记录:
SA.nLength = sizeof(SA);
SA.lpSecurityDescriptor = &SD;
SA.bInheritHandle = TRUE;
的文档SetSecurityDescriptorDacl
states:
当 pDacl 参数不指向 DACL 并且 bDaclPresent 标志为 TRUE 时,指定 NULL DACL。允许所有访问。您不应该对对象使用 NULL DACL,因为任何用户都可以更改 DACL 和安全描述符的所有者。这将干扰该对象的使用。
所以,上面是如何做到这一点,但文档确实强调你不应该这样做。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)