diff --git a/src/borg/archiver/mount_cmds.py b/src/borg/archiver/mount_cmds.py index 2acae843e8..d37d8cb47b 100644 --- a/src/borg/archiver/mount_cmds.py +++ b/src/borg/archiver/mount_cmds.py @@ -79,6 +79,11 @@ def build_parser_mount_umount(self, subparsers, common_parser, mid_common_parser archives and the directory structure below these will be loaded on-demand from the repository when entering these directories, so expect some delay. + Care should be taken, as Borg backs up symlinks as-is. When an archive + or repository is mounted, it is possible to “jump” outside the mount point + by following a symlink. If this happens, files or directories (or versions of them) + that are not part of the archive or repository may appear to be within the mount point. + Unless the ``--foreground`` option is given, the command will run in the background until the filesystem is ``unmounted``. diff --git a/src/borg/fuse.py b/src/borg/fuse.py index 4138c430b0..0d6bc13fa3 100644 --- a/src/borg/fuse.py +++ b/src/borg/fuse.py @@ -565,6 +565,11 @@ def pop_option(options, key, present, not_present, wanted_type, int_base=0): ) self._create_filesystem() llfuse.init(self, mountpoint, options) + logger.warning( + "Warning: The mounted archive is capable of containing symlinks that point outside the archive tree. " + "When following such symlinks you may see files and directories within the mountpoint " + "that do not reflect the archive content." + ) if not foreground: if isinstance(self.repository_uncached, RemoteRepository): daemonize()