aboutsummaryrefslogtreecommitdiffstats
path: root/util/mount.fuse
diff options
context:
space:
mode:
Diffstat (limited to 'util/mount.fuse')
-rw-r--r--util/mount.fuse10
1 files changed, 8 insertions, 2 deletions
diff --git a/util/mount.fuse b/util/mount.fuse
index 0b111db..2a74449 100644
--- a/util/mount.fuse
+++ b/util/mount.fuse
@@ -45,8 +45,14 @@ MOUNTPOINT="$2"
shift
shift
-ignore_opts='\(user\|nouser\|users\|auto\|noauto\|_netdev\)'
+eval `echo $@ | sed -n "s/\([^,]*,\)*setuid=\([^,]*\).*/SETUID=\2/p"`
+
+ignore_opts='\(user\|nouser\|users\|auto\|noauto\|_netdev\|setuid=[^,]*\)'
OPTIONS=`echo $@ | sed "s/,${ignore_opts}\|${ignore_opts},//g"`
-${FSTYPE} ${MOUNTPATH} ${MOUNTPOINT} ${OPTIONS}
+if test -z "$SETUID"; then
+ ${FSTYPE} ${MOUNTPATH} ${MOUNTPOINT} ${OPTIONS}
+else
+ su - "$SETUID" -c "${FSTYPE} ${MOUNTPATH} ${MOUNTPOINT} ${OPTIONS}"
+fi