mount ownership and unprivileged mount syscall (v9)
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest11 patches 3 repliesIn review
v8 -> v9 from the cover letter
- new patch: copy mount ownership when cloning the mount namespace
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/11 | unprivileged mounts: add user mounts to the kernelfs/ fs/ include/ +1 more | +36 | 0 replies | |
| 2/11 | unprivileged mounts: allow unprivileged umountfs/ | +22 | 0 replies | |
| 3/11 | unprivileged mounts: propagate error values from clone_mntfs/ fs/ | +51 | 0 replies | |
| 4/11 | unprivileged mounts: account user mountsDocumentation/ fs/ include/ +1 more | +91 | 0 replies | |
| 5/11 | unprivileged mounts: allow unprivileged bind mountsfs/ | +27 | 0 replies | |
| 6/11 | unprivileged mounts: allow unprivileged mountsfs/ fs/ include/ | +67 | 0 replies | |
| 7/11 | unprivileged mounts: add sysctl tunable for "safe" propertyDocumentation/ fs/ include/ | +92 | 0 replies | |
| 8/11 | unprivileged mounts: make fuse safeDocumentation/ fs/ | +103 | 0 replies | |
| 9/11 | unprivileged mounts: propagation: inherit owner from parentfs/ fs/ fs/ +1 more | +43 | 0 replies | |
| 10/11 | unprivileged mounts: add "no submounts" flagfs/ include/ include/ | +10 | 0 replies | |
| 11/11 | unprivileged mounts: copy mount ownership on namespace cloningfs/ fs/ | +7 | 0 replies |
Reviews trailers per patch
10 of 11 patches have a Reviewed-by or Acked-by.
| Patch | Serge Hallyn |
|---|---|
| 1/11 | A-b |
| 2/11 | A-b |
| 3/11 | A-b |
| 4/11 | A-b |
| 5/11 | A-b |
| 6/11 | A-b |
| 7/11 | A-b |
| 8/11 | A-b |
| 9/11 | A-b |
| 10/11 | A-b |
| 11/11 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [patch 00/11] mount ownership and unprivileged mount syscall (v9)
Andrew, Al,
Please consider adding this series to your trees.
I've been using these patches for a while on my laptop to mount fuse filesystems as user, without any suid-root helpers. The setup is as follows:
- link /proc/mounts to /etc/mtab
- patch util-linux-ng with http://lkml.org/lkml/2008/1/16/103
- remove suid from mount, umount and fusermount
- add a line to /etc/fstab to bind mount ~/mnt onto itself owned by the user
- add 'fs.types.fuse.usermount_safe = 1' to /etc/sysctl.conf
Apart from '/dev/sda2' being replaced with '/dev/root' in 'mount' and 'df' outputs, I haven't experienced any problems.
Thanks,
Miklos
v8 -> v9
- new patch: copy mount ownership when cloning the mount namespace
v7 -> v8
- extend documentation of allow_usermount sysctl tunable
- describe new unprivileged mounting in fuse.txt
v6 -> v7:
- add '/proc/sys/fs/types/<type>/usermount_safe' tunable (new patch)
- do not make FUSE safe by default, describe possible problems associated with unprivileged FUSE mounts in patch header
- return EMFILE instead of EPERM, if maximum user mount count is exceeded
- rename option 'nomnt' -> 'nosubmnt'
- clean up error propagation in dup_mnt_ns
- update util-linux-ng patch
v5 -> v6:
- update to latest -mm
- preliminary util-linux-ng support (will post right after this series)
v4 -> v5:
- fold back Andrew's changes
- fold back my update patch:
o use fsuid instead of ruid
o allow forced unpriv. unmounts for "safe" filesystems
o allow mounting over special files, but not over symlinks
o set nosuid and nodev based on lack of specific capability
- patch header updates
- new patch: on propagation inherit owner from parent
- new patch: add "no submounts" mount flag
v3 -> v4:
- simplify interface as much as possible, now only a single option ("user=UID") is used to control everything
- no longer allow/deny mounting based on file/directory permissions, that approach does not always make sense
v1 -> v3:
- add mount flags to set/clear mnt_flags individually
- add "usermnt" mount flag. If it is set, then allow unprivileged submounts under this mount
- make max number of user mounts default to 1024, since now the usermnt flag will prevent user mounts by default
--