如何检查 ACL 是否受到保护
How to check if ACL is protected
我有一个工具可以输出文件夹的所有者和ACL用于文档目的。我现在想添加一个标志,指示路径上的继承是否已启用。
到目前为止,我只能找到一个提供该功能的.net类(DirectorySecurity -> AreAccessRulesProtected(。
如何在本机 c++ 中执行此操作?对于其他功能,我使用GetSecurityInfo,但据我所知,我无法从中获取该信息。
谢谢
感谢 RbM 的评论,我已经解决了这个问题。对于未来的读者,这里有一个代码片段(没有错误处理(:
PSECURITY_DESCRIPTOR pSD = NULL;
HANDLE hFile = CreateFile(path.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
...
GetSecurityInfo(hFile, SE_FILE_OBJECT, OWNER_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION, NULL, NULL, NULL, NULL, &pSD);
...
SECURITY_DESCRIPTOR_CONTROL sdc;
DWORD dwRev = 0;
iRC = GetSecurityDescriptorControl(pSD, &sdc, &dwRev);
if (iRC== 0) {} //error
else {
if ((sdc & SE_DACL_PROTECTED) == SE_DACL_PROTECTED) {
daclProtected = true;
}
}
相关文章:
- lock_guard是否保护返回值
- 公共/私有/受保护是否会更改内存中结构的排列?
- 检查nullptr是否100%保护内存布局不受segfault影响
- c++ 编译器是否保护常量内存地址免受任何更改?
- 我们是否应该转向新的自我分配保护方式?
- STL 是否为其标头指定标头保护?
- 在 C++17 中,是否未定义使用无锁原子学保护从信号处理程序传递的数据?
- 如何在Windows上检查EXE是否具有/GS安全保护
- 如何检查 ACL 是否受到保护
- 是否可以基于私有/受保护成员分配类枚举?
- 是否可以解密受 cenc 保护的 MPEG-DASH 文件?
- 锁定的互斥锁是否保护condition_variable和数据?
- Windows 10 是否保护您不访问其他程序正在使用的内存?
- 如何检查是否定义了标头保护
- C++ 我是否需要为嵌套类定义标头保护
- 是否可以使用 static_cast 颠覆受保护成员访问检查?
- 如果目标文件已经具有标头保护,我们是否应该用 #ifndef 来保护 #include
- Boost单元测试夹具继承测试类,是否可以访问受保护的方法
- protected是否保护基类构造函数或继承的类构造函数
- 符号可见性是否保护共享库免遭滥用/破解?