From: Zygo Blaxell <ce3g8jdj@umail.furryterror.org>
To: Graham Cobb <g.btrfs@cobb.uk.net>
Cc: Goffredo Baroncelli <kreijack@inwind.it>,
Josef Bacik <josef@toxicpanda.com>,
linux-btrfs@vger.kernel.org
Subject: Re: [RFC][PATCH V5] btrfs: preferred_metadata: preferred device for metadata
Date: Sat, 23 Jan 2021 23:00:25 -0500 [thread overview]
Message-ID: <20210124040025.GK28049@hungrycats.org> (raw)
In-Reply-To: <24522e9a-8cfb-73ab-2332-c7e0c6b9677c@cobb.uk.net>
On Sat, Jan 23, 2021 at 05:44:48PM +0000, Graham Cobb wrote:
> On 23/01/2021 17:21, Zygo Blaxell wrote:
> > On Sat, Jan 23, 2021 at 02:55:52PM +0000, Graham Cobb wrote:
> >> On 22/01/2021 22:42, Zygo Blaxell wrote:
> >> ...
> >>>> So the point is: what happens if the root subvolume is not mounted ?
> >>>
> >>> It's not an onerous requirement to mount the root subvol. You can do (*)
> >>>
> >>> tmp="$(mktemp -d)"
> >>> mount -osubvolid=5 /dev/btrfs "$tmp"
> >>> setfattr -n 'btrfs...' -v... "$tmp"
> >>> umount "$tmp"
> >>> rmdir "$tmp"
> >>
> >> No! I may have other data on that disk which I do NOT want to become
> >> accessible to users on this system (even for a short time). As a simple
> >> example, imagine, a disk I carry around to take emergency backups of
> >> other systems, but I need to change this attribute to make the emergency
> >> backup of this system run as quickly as possible before the system dies.
> >> Or a disk used for audit trails, where users should not be able to
> >> modify their earlier data. Or where I suspect a security breach has
> >> occurred. I need to be able to be confident that the only data
> >> accessible on this system is data in the specific subvolume I have mounted.
> >
> > Those are worthy goals, but to enforce them you'll have to block or filter
> > the mount syscall with one of the usual sandboxing/container methods.
> >
> > If you have that already set up, you can change root subvol xattrs from
> > the supervisor side. No users will have access if you don't give them
> > access to the root subvol or the mount syscall on the restricted side
> > (they might also need a block device FD belonging to the filesystem).
> >
> > If you don't have the sandbox already set up, then root subvol access
> > is a thing your users can already do, and it may be time to revisit the
> > assumptions behind your security architecture.
>
> I'm not talking about root. I mean unpriv'd users (who can't use mount)!
> If I (as root) mount the whole disk, those users may be able to read or
> modify files from parts of that disk to which they should not have
> access. That may be why I am not mounting the whole disk in the first
> place.
So put the temporary mount point behind a mode 700 directory owned
by root, e.g.
umask 077
tmp="$(mktemp -d)"
mkdir "$tmp/mp"
mount -osubvolid=5 /dev/btrfs "$tmp/mp"
setfattr -n 'btrfs...' -v... "$tmp/mp"
umount "$tmp/mp"
rmdir "$tmp/mp" "$tmp"
This doesn't seem like a new problem, or a problem that doesn't already
have lots of good solutions.
Anyway I'm no longer favor of using an xattr this way for a number of
better reasons, so the point is moot.
> I gave a few very simple examples, but I can think of many more cases
> where a disk may contain files which users might be able to access if
> the disk was mounted (maybe the disk has subvols used by many different
> systems but UIDs are not coordinated, or ...). And, of course, if they
> can open a FD during the brief time it is mounted, they can stop it
> being unmounted again.
>
> No. If I have chosen to mount just a subvol, it is because I don't want
> to mount the whole disk.
>
next prev parent reply other threads:[~2021-01-24 4:01 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-17 18:54 [RFC][PATCH V5] btrfs: preferred_metadata: preferred device for metadata Goffredo Baroncelli
2021-01-17 18:54 ` [PATCH 1/5] Add an ioctl to set the device properties Goffredo Baroncelli
2021-01-17 18:54 ` [PATCH 2/5] Add flags for dedicated metadata disks Goffredo Baroncelli
2021-01-17 18:54 ` [PATCH 3/5] Export dev_item.type in sysfs /sys/fs/btrfs/<uuid>/devinfo/<devid>/type Goffredo Baroncelli
2021-01-17 18:54 ` [PATCH 4/5] btrfs: add preferred_metadata option Goffredo Baroncelli
2021-01-17 18:54 ` [PATCH 5/5] btrfs: add preferred_metadata mode mount option Goffredo Baroncelli
2021-01-18 3:05 ` kernel test robot
2021-01-19 23:12 ` [RFC][PATCH V5] btrfs: preferred_metadata: preferred device for metadata Zygo Blaxell
2021-01-21 8:31 ` Martin Svec
2021-01-20 16:02 ` Josef Bacik
2021-01-20 16:15 ` Johannes Thumshirn
2021-01-20 16:17 ` Josef Bacik
2021-01-20 16:20 ` Zygo Blaxell
2021-01-21 18:16 ` Goffredo Baroncelli
2021-01-21 18:54 ` Zygo Blaxell
2021-01-22 18:31 ` Goffredo Baroncelli
2021-01-22 22:42 ` Zygo Blaxell
2021-01-23 14:55 ` Graham Cobb
2021-01-23 17:21 ` Zygo Blaxell
2021-01-23 17:44 ` Graham Cobb
2021-01-24 4:00 ` Zygo Blaxell [this message]
2021-01-24 20:05 ` Goffredo Baroncelli
2021-01-25 15:21 ` Josef Bacik
2023-01-15 17:00 ` Goffredo Baroncelli
2023-01-15 17:05 ` Goffredo Baroncelli
2023-01-16 8:20 ` Paul Jones
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=20210124040025.GK28049@hungrycats.org \
--to=ce3g8jdj@umail.furryterror.org \
--cc=g.btrfs@cobb.uk.net \
--cc=josef@toxicpanda.com \
--cc=kreijack@inwind.it \
--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