在 Windows 专业版中,有一个“备份操作员”组允许访问每个文件以进行备份。
在 Windows 10 系列中,我看不到此组(使用命令net localgroup
)。
我想创建一个专门用于自动备份的用户。但如果没有此组,用户就无法备份位于其他用户主目录中的文件(这是所需的行为,即使备份用户是管理员)。
可能有办法实现这个目标,因为商业备份软件可以做到这一点。
有人有想法吗?
答案1
实现所需目标的最简单方法是让备份过程以管理员身份运行。管理员拥有对所有用户配置文件文件夹的完全访问权限,但他们必须以提升的权限运行才能应用此访问控制条目。
如果您无法以提升权限运行备份,请将备份用户设为管理员,以管理员身份登录,然后尝试导航到其他用户的配置文件文件夹。Windows 资源管理器将通知您访问被拒绝,但它会为您提供一个按钮,永久授予当前用户对该文件夹的访问权限。完成后,即使没有提升权限,备份用户也将能够访问该其他用户的配置文件。
有关如何复制备份操作员组的效果的信息如下。
备份操作员组的特殊之处在于,默认情况下,它被授予少数特权:
SeBackupPrivilege
, "备份文件和目录"SeRestorePrivilege
, "恢复文件和目录"SeShutdownPrivilege
, “关闭系统”SeBatchLogonRight
, "以批处理作业形式登录"
可以使用本地安全策略工具的用户权限分配部分分配权限。secpol.msc
不过,该工具可能不存在于非专业版 Windows 中。要调整其他版本的权限,您可以使用国家权利效用来自Windows Server 2003 资源工具包。尽管名称如此,但该套件可以安装在任何现代版本的 Windows 上。您可以使用 NTRights 授予特权,方法是打开管理命令提示符并运行以下命令:
ntrights -u YourBackupUser +r SeSomePrivilege
替换YourBackupUser
为应该能够备份和恢复的用户/组的 SAM 帐户名 — SAM 帐户名列在net user
或的输出中net localgroup
(忽略组名前的星号)。 替换SeSomePrivilege
为要授予的权限的 ID。 如果以后要撤销权限,请运行相同的命令,但使用-r
而不是+r
。
但请注意,只有专门编写的软件才能利用这些权限。即使被授予权限,也必须先在每个进程中启用权限,然后程序必须调用绕过安全检查的特殊读/写 API。这些权限还不足以创建卷影副本;要做到这一点,进程必须以管理员组成员的身份运行 — 即使是真正的备份操作员组的成员身份也不足以做到这一点。
答案2
(抱歉,我没有足够的声誉来对@Ben N 的回复发表评论。)
是的,将SeBackupPrivilege
等添加到常规帐户就足以使用标志FILE_FLAG_BACKUP_SEMANTICS
并CreateFile
使用BackupRead
API 调用。
但是仅仅拍摄 VSS 快照(备份程序想要做的事情)是不够的。
要获取 VSS 快照,用户必须要么
- 本地系统,或
- 本地服务/网络服务(Server 2003 或更高版本),或
- 本地管理员组的成员,或
- 本地备份操作员组的成员,或
- 以某种方式将程序列入注册表的白名单(尽管这在我的测试中不起作用)。