Hi,
The v1 cover letter is here:
https://lists.nongnu.org/archive/html/qemu-block/2021-06/msg00730.html
In v2, I changed the following:
- default_permissions is now passed always. This is the right thing to
do regardless of whether allow_other is active or not.
- allow_other is no longer a bool, but an off/on/auto enum. `auto` is
the default, in which case we will try to mount the export with
allow_other first, and then fall back to mounting it without.
- Changing the file mode is now possible even without allow_other
(because default_permissions is always active now), but only for the
user/owner. Giving the group or others any permissions only makes
sense with allow_other, the same applies to changing the UID or GID.
Giving a read-only export +w makes no sense and hence yields an EROFS
error now.
- I decided just testing some default_permission quirks is boring. So
the new fuse-allow-other iotest does rely on `sudo -n -u nobody`
working now, and actually tests what allow_other is supposed to do.
(Also, it is skipped if allow_other does not work.)
git-backport-diff against v1:
Key:
[] : patches are identical
[] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively
001/6:[down] 'export/fuse: Pass default_permissions for mount'
002/6:[0089] [FC] 'export/fuse: Add allow-other option'
003/6:[] [--] 'export/fuse: Give SET_ATTR_SIZE its own branch'
004/6:[0039] [FC] 'export/fuse: Let permissions be adjustable'
005/6:[down] 'iotests/308: Test +w on read-only FUSE exports'
006/6:[down] 'iotests/fuse-allow-other: Test allow-other'
Max Reitz (6):
export/fuse: Pass default_permissions for mount
export/fuse: Add allow-other option
export/fuse: Give SET_ATTR_SIZE its own branch
export/fuse: Let permissions be adjustable
iotests/308: Test +w on read-only FUSE exports
iotests/fuse-allow-other: Test allow-other
qapi/block-export.json| 33 +++-
block/export/fuse.c | 121 +---
tests/qemu-iotests/308| 20 +-
tests/qemu-iotests/308.out| 6 +-
tests/qemu-iotests/common.rc | 6 +-
tests/qemu-iotests/tests/fuse-allow-other | 175 ++
tests/qemu-iotests/tests/fuse-allow-other.out | 88 +
7 files changed, 421 insertions(+), 28 deletions(-)
create mode 100755 tests/qemu-iotests/tests/fuse-allow-other
create mode 100644 tests/qemu-iotests/tests/fuse-allow-other.out
--
2.31.1