Bug 615719
| Summary: | tmpfs mount fails with 'user' option. | |||
|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Stephen J Alexander <stevea12345> | |
| Component: | util-linux-ng | Assignee: | Karel Zak <kzak> | |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | |
| Severity: | medium | Docs Contact: | ||
| Priority: | low | |||
| Version: | 13 | CC: | bamdad.khan.public, dwalsh, eparis, kzak | |
| Target Milestone: | --- | |||
| Target Release: | --- | |||
| Hardware: | All | |||
| OS: | Linux | |||
| Whiteboard: | ||||
| Fixed In Version: | Doc Type: | Bug Fix | ||
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 616393 (view as bug list) | Environment: | ||
| Last Closed: | 2010-07-29 11:12:56 UTC | Type: | --- | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 616393 | |||
|
Description
Stephen J Alexander
2010-07-18 09:38:24 UTC
i can confirm that the problem is exactly as descibed on fedora 13 (goddard) with the latest updates installed. (In reply to comment #0) > Expected results: > tmpfs should mount at /mnt/ramdisk WITHOUT requiring root privilege. > > Additional info: > This problem results from the correction to bug 476964 > https://bugzilla.redhat.com/show_bug.cgi?id=476964 > The script /sbin/mount.tmpfs is called from mount, and in turn exec's "mount > -i-t tmpfs -o user,...". For obvious reasons the mount command cannot accept > the "-o user" option from the command line. The script solution to 476964 does > not correctly preserve mount functionality. I don't see other way how to fix this problem than move mount.tmpfs functionality to mount(8). The question is if we want to support user-mounts for tmpfs without a context= setting. It would be better if admin specifies context(s) for the mounts. The solution/workaround is to add tmpfs /mnt/ramdisk tmpfs user,noauto,ro,rootcontext=<CXT> 0 0 where <CXT> is for example a context from "ls --scontext -d /mnt/ramdisk". If you do not specify a file context it will default to tmpfs_t. If the script eliminated the user option would it work? (In reply to comment #3) > If you do not specify a file context it will default to tmpfs_t. If the script > eliminated the user option would it work? No, mount(8) checks if the user is root. For non-root users it runs in very restricted mode where all options have be specified in fstab only. (In reply to comment #2) > The solution/workaround is to add > > tmpfs /mnt/ramdisk tmpfs user,noauto,ro,rootcontext=<CXT> 0 0 > > where <CXT> is for example a context from "ls --scontext -d /mnt/ramdisk". Sorry, this is nonsense. The script still calls /bin/mount "$@" -i -t tmpfs so it won't work for non-root users. The mount.tmpfs script has to detect that user= option is used and then call
mount(8) without any option, something like
if ! echo "$@" | grep -q -E '\-o.*user'; then
exec /bin/mount -i "$2"
fi
then you can specify a context in fstab (or default to tmpfs_t). I'll update the script ASAP. (Sorry again for the comment #2.)
Proposed patch:
--- mount.tmpfs 12 Apr 2010 13:19:23 -0000 1.5
+++ mount.tmpfs 20 Jul 2010 07:28:09 -0000
@@ -18,6 +18,24 @@
;;
esac
+restricted=1
+ruid=$(id --user --real)
+euid=$(id --user)
+
+if [ $ruid -eq 0 ] && [ $ruid -eq $euid ]; then
+ restricted=0
+fi
+
+# mount(8) in restricted mode (for non-root users) does not allow to use any
+# mount options, types or so on command line. We have to call mount(8) with
+# mountpoint only. All necessary options have to be defined in /etc/fstab.
+#
+# https://bugzilla.redhat.com/show_bug.cgi?id=615719
+#
+if [ $restricted -eq 1 ]; then
+ exec /bin/mount -i "$2"
+fi
+
# Remount with context mount options is unsupported
# http://bugzilla.redhat.com/show_bug.cgi?id=563267
#
util-linux-ng-2.17.2-6.fc13 has been submitted as an update for Fedora 13. http://admin.fedoraproject.org/updates/util-linux-ng-2.17.2-6.fc13 I've tested util-linux-ng-2.17.2-6.fc13 for x86_64. Works as expected. Please close. util-linux-ng-2.17.2-6.fc13 has been pushed to the Fedora 13 stable repository. If problems still persist, please make note of it in this bug report. util-linux-ng-2.18-2.fc14 has been submitted as an update for Fedora 14. http://admin.fedoraproject.org/updates/util-linux-ng-2.18-2.fc14 |