From: Kai Krakow <hurikhan77@gmail.com>
To: linux-btrfs@vger.kernel.org
Subject: Re: btrfs receive leaves new subvolume modifiable during operation
Date: Sun, 5 Feb 2017 12:54:58 +0100 [thread overview]
Message-ID: <20170205125458.252c68df@jupiter.sol.kaishome.de> (raw)
In-Reply-To: 7ead5d42-9c00-b2df-3fbf-5b8f287760f6@cobb.uk.net
Am Wed, 1 Feb 2017 17:43:32 +0000
schrieb Graham Cobb <g.btrfs@cobb.uk.net>:
> On 01/02/17 12:28, Austin S. Hemmelgarn wrote:
> > On 2017-02-01 00:09, Duncan wrote:
> >> Christian Lupien posted on Tue, 31 Jan 2017 18:32:58 -0500 as
> >> excerpted:
> [...]
> >>
> >> I'm just a btrfs-using list regular not a dev, but AFAIK, the
> >> behavior is likely to be by design and difficult to change,
> >> because the send stream is simply a stream of userspace-context
> >> commands for receive to act upon, and any other suitably
> >> privileged userspace program could run the same commands. (If
> >> your btrfs-progs is new enough receive even has a dump option,
> >> that prints the metadata operations in human readable form, one
> >> operation per line.)
> >>
> >> So making the receive snapshot read-only during the transfer would
> >> prevent receive itself working.
> > That's correct. Fixing this completely would require implementing
> > receive on the kernel side, which is not a practical option for
> > multiple reasons.
>
> I am with Christian on this. Both the effects he discovered go against
> my expectation of how send/receive would or should work.
>
> This first bug is more serious because it appears to allow a
> non-privileged user to disrupt the correct operation of receive,
> creating a form of denial-of-service of a send/receive based backup
> process. If I decided that I didn't want my pron collection (or my
> incriminating emails) appearing in the backups I could just make sure
> that I removed them from the receive snapshots while they were still
> writeable.
>
> You may be right that fixing this would require receive in the kernel,
> and that is undesirable, although it seems to me that it should be
> possible to do something like allow receive to create the snapshot
> with a special flag that would cause the kernel to treat it as
> read-only to any requests not delivered through the same file
> descriptor, or something like that (or, if that can't be done, at
> least require root access to make any changes). In any case, I
> believe it should be treated as a bug, even if low priority, with an
> explicit warning about the possible corruption of receive-based
> backups in the btrfs-receive man page.
How about mounting the receiver below a directory only traversable by
root (chmod og-rwx)? Backups shouldn't be directly accessible by
ordinary users anyway.
If you want a backup becoming accessible, you can later snapshot it to
an accessible location after send/receive finished without errors.
An in-transit backup, however, should always be protected from possible
disruptive access. This is an issue with any backup software. So place
the receive within an inaccessible directory. This is not something the
backup process should directly bother with for simplicity.
--
Regards,
Kai
Replies to list-only preferred.
next prev parent reply other threads:[~2017-02-05 11:55 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-31 23:32 btrfs receive leaves new subvolume modifiable during operation Christian Lupien
2017-02-01 5:09 ` Duncan
2017-02-01 12:28 ` Austin S. Hemmelgarn
2017-02-01 17:43 ` Graham Cobb
2017-02-01 22:27 ` Duncan
2017-02-01 22:51 ` Graham Cobb
2017-02-02 0:02 ` Duncan
2017-02-02 10:52 ` Graham Cobb
2017-02-02 12:49 ` Austin S. Hemmelgarn
2017-02-03 9:14 ` Duncan
2017-02-03 12:44 ` Austin S. Hemmelgarn
2017-02-03 15:44 ` Graham Cobb
2017-02-03 16:01 ` Austin S. Hemmelgarn
2017-02-03 19:17 ` Graham Cobb
2017-02-03 19:37 ` Austin S. Hemmelgarn
2017-02-05 12:08 ` Kai Krakow
2017-02-06 22:56 ` Graham Cobb
2017-02-05 11:54 ` Kai Krakow [this message]
2017-02-06 12:30 ` Austin S. Hemmelgarn
2017-02-06 21:40 ` Kai Krakow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170205125458.252c68df@jupiter.sol.kaishome.de \
--to=hurikhan77@gmail.com \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).