On 2017-02-02 05:52, Graham Cobb wrote:
On 02/02/17 00:02, Duncan wrote:
If it's a workaround, then many of the Linux procedures we as admins and
users use every day are equally workarounds. Setting 007 perms on a dir
that doesn't have anything immediately security vulnerable in it, simply
to keep other users from even potentially seeing or being able to write
to something N layers down the subdir tree, is standard practice.
No. There is no need to normally place a read-only snapshot below a
no-execute directory just to prevent write access to it. That is not
part of the admin's expectation.
That depends on the admin. I for example would absolutely expect that
to be needed _while the snapshot is being created_ if the operation
isn't being done by the kernel.
Which is my point. This is no different than standard security practice,
that an admin should be familiar with and using without even having to
think about it. Btrfs is simply making the same assumptions that
everyone else does, that an admin knows what they are doing and sets the
upstream permissions with that in mind. If they don't, how is that
btrfs' fault?
Because btrfs intends the receive snapshot to be read-only. That is the
expectation of the sysadmin. It is an important and useful feature which
makes send/receive very useful for creating
user-readable-but-not-modifiable backups (without it, send/receive are
useful for many things but less useful for creating backups). That
feature has a bug.
If that's your use case, then from a consistency perspective, you should
be receiving into a location the user can't read and then moving the
subvolume into a user readable location once receive is done anyway.
Otherwise, they may see a partial snapshot, and think something has been
deleted that really hasn't. This is a pretty basic method of ensuring
consistency that's used literally all over the place on UNIX systems to
atomically replace or update data sets. Doing so also cleanly avoids
needing to manipulate permissions on the directory the snapshots are in
to prevent users from modifying the snapshots being received.
Just because you don't personally use the feature, doesn't mean it isn't
a bug! Many of us do rely on that feature.
Even though it is security-related, I agree it isn't the highest
priority btrfs bug. It can probably wait until receive is being worked
on for other reasons. But if it isn't going to be fixed any time soon,
it should be documented in the Wiki and the man page, with the suggested
workround for anyone who needs to make sure the receive won't be
tampered with.
I agree that it should be documented. I don't agree that a specific
workaround needs to be stated, as whether or not any particular
workaround is needed is entirely dependent on the use case. For
example, if your users can only access the received snapshots over a
networked filesystem, there's a much simpler option of just exporting
the directories the snapshots are received into as read-only. All that
needs to be stated is that the way to prevent this is to make sure users
can't write to the snapshots while they're being received.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html