我一直在尝试了解使用 BackupRead 和 BackupWrite 在计算机上备份数据的正确方法,尤其是可靠地恢复数据。
现在我了解了如何使用 API 并且已经成功了。然而,有一件事困扰着我。 除了文件内容本身之外,您还可以备份任何备用数据流以及安全信息 (ACL)。
现在,如果我存储 ACL 数据进行备份,然后,一旦需要在另一台计算机或新设置的计算机上恢复数据,我应该如何处理与 ACL 相关的 SID? SID 很可能对机器不再有效,应该如何选择正确的用户? 现在我正在更大的范围内看待这个问题,假设这是一台具有多个用户和数百或数千个具有不同设置的对象的计算机,如果再次应用安全设置来恢复数据,将会很困惑。
如果软件的用户希望备份安全设置,用户必须采取什么措施并相应地更新它们,或者什么?
此外,BackupRead 和 BackupWrite 将为我提供这些项目的原始二进制数据,这些数据并不是很难使用,但显然这个 API 甚至不打算面对这个问题。
有人知道备份应用程序应如何处理这种情况吗?您的想法是什么,或者对这个特定主题的指导方针有什么建议吗?
非常感谢。
最佳答案
我认为您正确理解了数据备份和恢复的问题。我认为正确认识问题就解决了问题的一半。我想您和 stackoverflow 网站的大多数用户一样,大多是软件开发人员,而不是大型网络的管理员。因此,您可以从软件开发人员的另一面而不是从管理员的角度来看待问题。管理员了解 ACL 备份和恢复的限制并且已经使用它。
一般来说,您应该了解备份的主要目的是保存数据并稍后在同一台计算机或服务器上恢复数据。另一种标准情况是:更换硬件后从一台服务器恢复备份到另一台服务器。在这种情况下,旧服务器将不再存在。大多数情况下,人们会备份服务器并组织在客户端上工作,这样客户端计算机上不会保存任何重要数据。
在大多数情况下,备份数据具有域组 SID、域用户 SID、well-known SIDs或安全描述符中 BUILTIN
域中的 SID 别名。在这种情况下,根本不需要更改 SID。如果管理员确实要对 ACL 进行一些更改,他可以使用不同的现有实用程序,例如 SubInACL.exe .
如果您编写了要用于移动数据的备份/恢复软件,其中包含安全信息,您可以在备份中包含一些有关在备份中使用的帐户/组的本地 SID 的附加元信息。保存的安全描述符。在恢复软件中,您可以提供从保存的安全描述符中替换 SID 的可能性。许多年前,我为一位大客户编写了一些实用程序,用于在域迁移后清除文件系统、注册表和服务中 SD 中的 SID。事情并没有那么复杂。因此,我建议您可以在备份/恢复软件中实现相同的功能。
关于security - Windows 备份读/备份写和 ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4293498/