2006-09-15 12:09:25 +00:00
|
|
|
--- util-linux-2.13-pre6/mount/mount.c.uhelper 2006-09-15 13:23:23.000000000 +0200
|
|
|
|
+++ util-linux-2.13-pre6/mount/mount.c 2006-09-15 13:23:23.000000000 +0200
|
|
|
|
@@ -183,7 +183,7 @@
|
|
|
|
};
|
|
|
|
|
|
|
|
static const char *opt_loopdev, *opt_vfstype, *opt_offset, *opt_encryption,
|
|
|
|
- *opt_speed, *opt_comment;
|
|
|
|
+ *opt_speed, *opt_comment, *opt_uhelper;
|
|
|
|
|
|
|
|
static struct string_opt_map {
|
|
|
|
char *tag;
|
|
|
|
@@ -196,6 +196,7 @@
|
|
|
|
{ "encryption=", 0, &opt_encryption },
|
|
|
|
{ "speed=", 0, &opt_speed },
|
|
|
|
{ "comment=", 1, &opt_comment },
|
|
|
|
+ { "uhelper=", 0, &opt_uhelper },
|
|
|
|
{ NULL, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
--- util-linux-2.13-pre6/mount/umount.8.uhelper 2004-11-10 20:49:37.000000000 +0100
|
|
|
|
+++ util-linux-2.13-pre6/mount/umount.8 2006-09-15 14:02:25.000000000 +0200
|
2006-09-15 09:08:32 +00:00
|
|
|
@@ -122,6 +122,19 @@
|
|
|
|
Any pending loop devices can be freed using `losetup -d', see
|
|
|
|
.BR losetup (8).
|
|
|
|
|
|
|
|
+.SH NOTES
|
|
|
|
+The syntax of external umount helpers is:
|
|
|
|
+
|
|
|
|
+.br
|
|
|
|
+.BI "/sbin/umount.<suffix> [\-nlfvr] " "dir " | " device "
|
|
|
|
+.br
|
|
|
|
+
|
|
|
|
+where the <suffix> is filesystem type or a value from "uhelper=" mtab option.
|
|
|
|
+
|
|
|
|
+The uhelper (unprivileged umount request helper) is possible used when non-root
|
2006-09-15 12:09:25 +00:00
|
|
|
+user wants to umount a mountpoint which is not defined in the /etc/fstab file
|
|
|
|
+(e.g devices mounted by HAL).
|
2006-09-15 09:08:32 +00:00
|
|
|
+
|
|
|
|
.SH FILES
|
|
|
|
.I /etc/mtab
|
|
|
|
table of mounted file systems
|
2006-09-15 12:09:25 +00:00
|
|
|
--- util-linux-2.13-pre6/mount/umount.c.uhelper 2006-09-15 13:23:23.000000000 +0200
|
|
|
|
+++ util-linux-2.13-pre6/mount/umount.c 2006-09-15 13:23:23.000000000 +0200
|
2006-09-15 09:08:32 +00:00
|
|
|
@@ -565,11 +565,24 @@
|
|
|
|
|
|
|
|
if (suid) {
|
|
|
|
char *mtab_user = NULL;
|
|
|
|
+ char *uhelper = NULL;
|
|
|
|
|
|
|
|
if (!mc)
|
|
|
|
die(2,
|
|
|
|
_("umount: %s is not mounted (according to mtab)"),
|
|
|
|
file);
|
|
|
|
+ /*
|
|
|
|
+ * uhelper - unprivileged umount helper
|
|
|
|
+ * -- external umount (for example HAL mounts)
|
|
|
|
+ */
|
|
|
|
+ if (mc->m.mnt_opts)
|
|
|
|
+ uhelper = get_value(mc->m.mnt_opts, "uhelper=");
|
|
|
|
+ if (uhelper) {
|
|
|
|
+ int status = 0;
|
|
|
|
+ if (check_special_umountprog(arg, arg, uhelper, &status))
|
|
|
|
+ return status;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
/* The 2.4 kernel will generally refuse to mount the same
|
|
|
|
filesystem on the same mount point, but will accept NFS.
|
|
|
|
So, unmounting must be possible. */
|