diff --git a/qubes/backup.py b/qubes/backup.py index a337c7721..55eff9f7f 100644 --- a/qubes/backup.py +++ b/qubes/backup.py @@ -455,9 +455,10 @@ def get_files_to_backup(self): home_dir = pwd.getpwnam(local_user).pw_dir # Checking if target is not user home directory in dom0 - if self.target_dir in ["", "~"] or Path( - self.target_dir - ).is_relative_to(home_dir): + if self.target_vm == self.app.domains[0] and ( + self.target_dir in ["", "~"] + or Path(self.target_dir).is_relative_to(home_dir) + ): raise qubes.exc.QubesException( "Can not backup dom0 home directory to itself!" ) diff --git a/qubes/tests/integ/backup.py b/qubes/tests/integ/backup.py index f902227fa..9ae0c1bb0 100644 --- a/qubes/tests/integ/backup.py +++ b/qubes/tests/integ/backup.py @@ -584,11 +584,15 @@ def test_101_backup_dom0_to_dom0_home(self): home_dir = pwd.getpwnam(local_user).pw_dir with self.assertRaises(qubes.exc.QubesException): self.make_backup( - [self.app.domains[0]], target=home_dir, expect_failure=True + [self.app.domains[0]], + target_vm=self.app.domains[0], + target=home_dir, + expect_failure=True, ) with self.assertRaises(qubes.exc.QubesException): self.make_backup( [self.app.domains[0]], + target_vm=self.app.domains[0], target=os.path.join(home_dir, "somedir"), expect_failure=True, )