summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mount/mount.c4
-rw-r--r--mount/umount.89
-rw-r--r--mount/umount.c16
-rw-r--r--shlibs/mount/src/context_umount.c6
-rw-r--r--shlibs/mount/src/libmount.h.in2
-rw-r--r--shlibs/mount/src/optmap.c2
6 files changed, 20 insertions, 19 deletions
diff --git a/mount/mount.c b/mount/mount.c
index dc357a098..b508de674 100644
--- a/mount/mount.c
+++ b/mount/mount.c
@@ -209,7 +209,7 @@ static const struct opt_map opt_map[] = {
static int opt_nofail = 0;
static const char *opt_loopdev, *opt_vfstype, *opt_offset, *opt_sizelimit,
- *opt_encryption, *opt_speed, *opt_comment, *opt_uhelper, *opt_phelper;
+ *opt_encryption, *opt_speed, *opt_comment, *opt_uhelper, *opt_helper;
static int is_readonly(const char *node);
static int mounted (const char *spec0, const char *node0);
@@ -229,7 +229,7 @@ static struct string_opt_map {
{ "speed=", 0, &opt_speed },
{ "comment=", 1, &opt_comment },
{ "uhelper=", 0, &opt_uhelper },
- { "phelper=", 0, &opt_phelper },
+ { "helper=", 0, &opt_helper },
{ NULL, 0, NULL }
};
diff --git a/mount/umount.8 b/mount/umount.8
index 69196e539..4bce485c2 100644
--- a/mount/umount.8
+++ b/mount/umount.8
@@ -151,17 +151,16 @@ The syntax of external umount helpers is:
.IR type.subtype ]
.br
-where the <suffix> is filesystem type or a value from "uhelper=" or "phelper="
+where the <suffix> is filesystem type or a value from "uhelper=" or "helper="
mtab option. The \-t option is used for filesystems with subtypes support
(for example /sbin/mount.fuse -t fuse.sshfs).
-The uhelper (unprivileged umount helper) is possible to used when non-root user
+The uhelper= (unprivileged umount helper) is possible to use when non-root user
wants to umount a mountpoint which is not defined in the /etc/fstab file (e.g
devices mounted by udisk).
-The phelper (privileged umount helper) is possible to used when root user wants
-to umount a mountpoint which should not be directly umounted by umount(8) (e.g.
-devices mounted by pam_mount).
+The helper= mount option redirects all umount requests to the
+/sbin/umount.<helper> independently on UID.
.SH FILES
.I /etc/mtab
diff --git a/mount/umount.c b/mount/umount.c
index f69e5bf33..2e7bd31ce 100644
--- a/mount/umount.c
+++ b/mount/umount.c
@@ -654,6 +654,15 @@ umount_file (char *arg) {
if (!mc && verbose)
printf(_("Could not find %s in mtab\n"), file);
+ if (mc) {
+ /*
+ * helper - umount helper (e.g. pam_mount)
+ */
+ if (check_helper_umountprog(arg, arg, mc->m.mnt_opts,
+ "helper=", &status))
+ return status;
+ }
+
if (restricted) {
char *mtab_user = NULL;
@@ -738,13 +747,6 @@ umount_file (char *arg) {
mtab_user ? mtab_user : "root",
fs->m.mnt_fsname, fs->m.mnt_dir);
- } else if (mc) {
- /*
- * phelper - privileged umount helper (e.g. pam_mount)
- */
- if (check_helper_umountprog(arg, arg, mc->m.mnt_opts,
- "phelper=", &status))
- return status;
}
if (mc)
diff --git a/shlibs/mount/src/context_umount.c b/shlibs/mount/src/context_umount.c
index 08b0fd46c..e10af52f2 100644
--- a/shlibs/mount/src/context_umount.c
+++ b/shlibs/mount/src/context_umount.c
@@ -584,9 +584,9 @@ int mnt_context_prepare_umount(struct libmnt_context *cxt)
if (!rc && !cxt->helper) {
- if (!cxt->restricted && (cxt->user_mountflags & MNT_MS_PHELPER))
- /* on phelper= mount option based helper */
- rc = prepare_helper_from_options(cxt, "phelper");
+ if (cxt->user_mountflags & MNT_MS_HELPER)
+ /* on helper= mount option based helper */
+ rc = prepare_helper_from_options(cxt, "helper");
if (!rc && !cxt->helper)
/* on fstype based helper */
diff --git a/shlibs/mount/src/libmount.h.in b/shlibs/mount/src/libmount.h.in
index 173872699..4eba4c748 100644
--- a/shlibs/mount/src/libmount.h.in
+++ b/shlibs/mount/src/libmount.h.in
@@ -439,7 +439,7 @@ extern int mnt_context_do_umount(struct libmnt_context *cxt);
#define MNT_MS_LOOP (1 << 9)
#define MNT_MS_NOFAIL (1 << 10)
#define MNT_MS_UHELPER (1 << 11)
-#define MNT_MS_PHELPER (1 << 12)
+#define MNT_MS_HELPER (1 << 12)
/*
* mount(2) MS_* masks (MNT_MAP_LINUX map)
diff --git a/shlibs/mount/src/optmap.c b/shlibs/mount/src/optmap.c
index 4924e9ae3..acd76173f 100644
--- a/shlibs/mount/src/optmap.c
+++ b/shlibs/mount/src/optmap.c
@@ -155,7 +155,7 @@ static const struct libmnt_optmap userspace_opts_map[] =
{ "uhelper=", MNT_MS_UHELPER }, /* /sbin/umount.<helper> */
- { "phelper=", MNT_MS_PHELPER }, /* /sbin/umount.<helper> */
+ { "helper=", MNT_MS_HELPER }, /* /sbin/umount.<helper> */
{ NULL, 0, 0 }
};